1d488daa0SDavid Zarzycki //===- unittest/Tooling/RecursiveASTVisitorTests/IntegerLiteral.cpp -------===// 2d488daa0SDavid Zarzycki // 3*2946cd70SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*2946cd70SChandler Carruth // See https://llvm.org/LICENSE.txt for license information. 5*2946cd70SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6d488daa0SDavid Zarzycki // 7d488daa0SDavid Zarzycki //===----------------------------------------------------------------------===// 8d488daa0SDavid Zarzycki 9d488daa0SDavid Zarzycki #include "TestVisitor.h" 10d488daa0SDavid Zarzycki 11d488daa0SDavid Zarzycki using namespace clang; 12d488daa0SDavid Zarzycki 13d488daa0SDavid Zarzycki namespace { 14d488daa0SDavid Zarzycki 15d488daa0SDavid Zarzycki // Check to ensure that implicit default argument expressions are visited. 16d488daa0SDavid Zarzycki class IntegerLiteralVisitor 17d488daa0SDavid Zarzycki : public ExpectedLocationVisitor<IntegerLiteralVisitor> { 18d488daa0SDavid Zarzycki public: VisitIntegerLiteral(const IntegerLiteral * IL)19d488daa0SDavid Zarzycki bool VisitIntegerLiteral(const IntegerLiteral *IL) { 20d488daa0SDavid Zarzycki Match("literal", IL->getLocation()); 21d488daa0SDavid Zarzycki return true; 22d488daa0SDavid Zarzycki } 23d488daa0SDavid Zarzycki }; 24d488daa0SDavid Zarzycki TEST(RecursiveASTVisitor,DefaultArgumentsAreVisited)25d488daa0SDavid ZarzyckiTEST(RecursiveASTVisitor, DefaultArgumentsAreVisited) { 26d488daa0SDavid Zarzycki IntegerLiteralVisitor Visitor; 27d488daa0SDavid Zarzycki Visitor.ExpectMatch("literal", 1, 15, 2); 28d488daa0SDavid Zarzycki EXPECT_TRUE(Visitor.runOver("int f(int i = 1);\n" 29d488daa0SDavid Zarzycki "static int k = f();\n")); 30d488daa0SDavid Zarzycki } 31d488daa0SDavid Zarzycki 32d488daa0SDavid Zarzycki } // end anonymous namespace 33