]> granicus.if.org Git - clang/commitdiff
AST Matchers tests: test that member() matches member allocation functions.
authorDmitri Gribenko <gribozavr@gmail.com>
Sat, 18 Aug 2012 00:29:27 +0000 (00:29 +0000)
committerDmitri Gribenko <gribozavr@gmail.com>
Sat, 18 Aug 2012 00:29:27 +0000 (00:29 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162153 91177308-0d34-0410-b5e6-96231b3b80d8

unittests/ASTMatchers/ASTMatchersTest.cpp

index dcebbc9f3d6e290129259242c1b46bb79bf1fa56..7f1f08312921bfebb6ad721f906ffec62addc0a3 100644 (file)
@@ -2013,6 +2013,19 @@ TEST(Member, MatchesInMemberFunctionCall) {
                       memberExpression(member(hasName("first")))));
 }
 
+TEST(Member, MatchesMemberAllocationFunction) {
+  EXPECT_TRUE(matches("namespace std { typedef unsigned long size_t; }"
+                      "class X { void *operator new(std::size_t); };",
+                      method(ofClass(hasName("X")))));
+
+  EXPECT_TRUE(matches("class X { void operator delete(void*); };",
+                      method(ofClass(hasName("X")))));
+
+  EXPECT_TRUE(matches("namespace std { typedef unsigned long size_t; }"
+                      "class X { void operator delete[](void*, std::size_t); };",
+                      method(ofClass(hasName("X")))));
+}
+
 TEST(HasObjectExpression, DoesNotMatchMember) {
   EXPECT_TRUE(notMatches(
       "class X {}; struct Z { X m; }; void f(Z z) { z.m; }",