diff options
| author | 2018-04-06 14:26:03 +0000 | |
|---|---|---|
| committer | 2018-04-06 14:26:03 +0000 | |
| commit | bdabc2f19ffb9e20600dad6e8a300842a7bda50e (patch) | |
| tree | c50e7b2e5449b074651bb82a58517a8ebc4a8cf7 /gnu/llvm/tools/clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp | |
| parent | Print a 'p' flag for file descriptors that were opened after pledge(2). (diff) | |
| download | wireguard-openbsd-bdabc2f19ffb9e20600dad6e8a300842a7bda50e.tar.xz wireguard-openbsd-bdabc2f19ffb9e20600dad6e8a300842a7bda50e.zip | |
Import LLVM 6.0.1 release including clang, lld and lldb.
"where is the kaboom?" deraadt@
Diffstat (limited to 'gnu/llvm/tools/clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp')
| -rw-r--r-- | gnu/llvm/tools/clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp | 38 |
1 files changed, 37 insertions, 1 deletions
diff --git a/gnu/llvm/tools/clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp b/gnu/llvm/tools/clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp index 58c26eafd7e..59fadadbedc 100644 --- a/gnu/llvm/tools/clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp +++ b/gnu/llvm/tools/clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp @@ -1184,6 +1184,10 @@ TEST(TypeMatching, MatchesAutoTypes) { EXPECT_TRUE(matches("int v[] = { 2, 3 }; void f() { for (int i : v) {} }", autoType())); + EXPECT_TRUE(matches("auto i = 2;", varDecl(hasType(isInteger())))); + EXPECT_TRUE(matches("struct X{}; auto x = X{};", + varDecl(hasType(recordDecl(hasName("X")))))); + // FIXME: Matching against the type-as-written can't work here, because the // type as written was not deduced. //EXPECT_TRUE(matches("auto a = 1;", @@ -1586,7 +1590,7 @@ TEST(ObjCMessageExprMatcher, SimpleExprs) { ))); } -TEST(ObjCDeclMacher, CoreDecls) { +TEST(ObjCDeclMatcher, CoreDecls) { std::string ObjCString = "@protocol Proto " "- (void)protoDidThing; " @@ -1601,6 +1605,9 @@ TEST(ObjCDeclMacher, CoreDecls) { "{ id _ivar; } " "- (void)anything {} " "@end " + "@implementation Thing (ABC) " + "- (void)abc_doThing {} " + "@end " ; EXPECT_TRUE(matchesObjC( @@ -1608,9 +1615,15 @@ TEST(ObjCDeclMacher, CoreDecls) { objcProtocolDecl(hasName("Proto")))); EXPECT_TRUE(matchesObjC( ObjCString, + objcImplementationDecl(hasName("Thing")))); + EXPECT_TRUE(matchesObjC( + ObjCString, objcCategoryDecl(hasName("ABC")))); EXPECT_TRUE(matchesObjC( ObjCString, + objcCategoryImplDecl(hasName("ABC")))); + EXPECT_TRUE(matchesObjC( + ObjCString, objcMethodDecl(hasName("protoDidThing")))); EXPECT_TRUE(matchesObjC( ObjCString, @@ -1626,5 +1639,28 @@ TEST(ObjCDeclMacher, CoreDecls) { objcPropertyDecl(hasName("enabled")))); } +TEST(ObjCStmtMatcher, ExceptionStmts) { + std::string ObjCString = + "void f(id obj) {" + " @try {" + " @throw obj;" + " } @catch (...) {" + " } @finally {}" + "}"; + + EXPECT_TRUE(matchesObjC( + ObjCString, + objcTryStmt())); + EXPECT_TRUE(matchesObjC( + ObjCString, + objcThrowStmt())); + EXPECT_TRUE(matchesObjC( + ObjCString, + objcCatchStmt())); + EXPECT_TRUE(matchesObjC( + ObjCString, + objcFinallyStmt())); +} + } // namespace ast_matchers } // namespace clang |
