summaryrefslogtreecommitdiffstats
path: root/clang/unittests/Tooling/RecursiveASTVisitorTest.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2012-05-09 23:51:36 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2012-05-09 23:51:36 +0000
commit6dd62fd99d6e2227de4adfc7429ed14ffca6f180 (patch)
treefedb73c1f3571b3d11ac7973455459363c4f8067 /clang/unittests/Tooling/RecursiveASTVisitorTest.cpp
parent982205bcaeb92b00673008908fdb064fa7f3eedf (diff)
downloadbcm5719-llvm-6dd62fd99d6e2227de4adfc7429ed14ffca6f180.tar.gz
bcm5719-llvm-6dd62fd99d6e2227de4adfc7429ed14ffca6f180.zip
RecursiveASTVisitor:
We don't create any declaration to mark the explicit instantiation of function templates other than the instantiation itself, so visit that when traversing the function template decl. This is a temporary fix, pending the creation of a Decl node to represent the explicit instantiation. Patch by Daniel Jasper! llvm-svn: 156522
Diffstat (limited to 'clang/unittests/Tooling/RecursiveASTVisitorTest.cpp')
-rw-r--r--clang/unittests/Tooling/RecursiveASTVisitorTest.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/clang/unittests/Tooling/RecursiveASTVisitorTest.cpp b/clang/unittests/Tooling/RecursiveASTVisitorTest.cpp
index 953817e61fb..a26c9f3cb73 100644
--- a/clang/unittests/Tooling/RecursiveASTVisitorTest.cpp
+++ b/clang/unittests/Tooling/RecursiveASTVisitorTest.cpp
@@ -301,6 +301,19 @@ TEST(RecursiveASTVisitor, VisitsCallInPartialTemplateSpecialization) {
"}\n"));
}
+TEST(RecursiveASTVisitor, VisitsExplicitTemplateSpecialization) {
+ CXXMemberCallVisitor Visitor;
+ Visitor.ExpectMatch("A::f", 4, 5);
+ EXPECT_TRUE(Visitor.runOver(
+ "struct A {\n"
+ " void f() const {}\n"
+ " template<class T> void g(const T& t) const {\n"
+ " t.f();\n"
+ " }\n"
+ "};\n"
+ "template void A::g(const A& a) const;\n"));
+}
+
TEST(RecursiveASTVisitor, VisitsPartialTemplateSpecialization) {
// From cfe-commits/Week-of-Mon-20100830/033998.html
// Contrary to the approach sugggested in that email, we visit all
OpenPOWER on IntegriCloud