aboutsummaryrefslogtreecommitdiff
path: root/unittests/ASTMatchers/ASTMatchersTest.cpp
diff options
context:
space:
mode:
authorDmitri Gribenko <gribozavr@gmail.com>2012-08-18 00:29:27 +0000
committerDmitri Gribenko <gribozavr@gmail.com>2012-08-18 00:29:27 +0000
commit671a045cc61cabe0b5fee0d8a93337e771156e11 (patch)
tree29f93b877a1f779f4ac010c3c2af2a5ae75ddf72 /unittests/ASTMatchers/ASTMatchersTest.cpp
parent003e7569fd6f5d38aa0f411483ee5ffabddec50f (diff)
AST Matchers tests: test that member() matches member allocation functions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162153 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'unittests/ASTMatchers/ASTMatchersTest.cpp')
-rw-r--r--unittests/ASTMatchers/ASTMatchersTest.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/unittests/ASTMatchers/ASTMatchersTest.cpp b/unittests/ASTMatchers/ASTMatchersTest.cpp
index dcebbc9f3d..7f1f083129 100644
--- a/unittests/ASTMatchers/ASTMatchersTest.cpp
+++ b/unittests/ASTMatchers/ASTMatchersTest.cpp
@@ -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; }",