Author: Stephen Kelly
Date: 2020-05-23T01:29:39+01:00
New Revision: 64356b6d94eac13780cc36ea12053d61a027561e

URL: 
https://github.com/llvm/llvm-project/commit/64356b6d94eac13780cc36ea12053d61a027561e
DIFF: 
https://github.com/llvm/llvm-project/commit/64356b6d94eac13780cc36ea12053d61a027561e.diff

LOG: Add missing unit test

Added: 
    

Modified: 
    clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp

Removed: 
    


################################################################################
diff  --git a/clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp 
b/clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp
index 8fcaeac9cb5e..e8b0a312d0a3 100644
--- a/clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp
+++ b/clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp
@@ -1830,6 +1830,43 @@ void stringConstruct()
                                           hasDescendant(cxxOperatorCallExpr(
                                               isAssignmentOperator(),
                                               hasArgument(1, 
stringLiteral())))))));
+
+  Code = R"cpp(
+
+struct C1 {};
+struct C2 { operator C1(); };
+
+void conversionOperator()
+{
+    C2* c2;
+    C1 c1 = (*c2);
+}
+
+)cpp";
+  EXPECT_TRUE(matches(
+      Code,
+      traverse(
+          TK_AsIs,
+          functionDecl(
+              hasName("conversionOperator"),
+              hasDescendant(
+                  varDecl(
+                      hasName("c1"),
+                      hasInitializer(
+                          ignoringImplicit(cxxConstructExpr(hasArgument(
+                              0, ignoringImplicit(
+                                     
cxxMemberCallExpr(onImplicitObjectArgument(
+                                         ignoringParenImpCasts(unaryOperator(
+                                             hasOperatorName("*")))))))))))
+                      .bind("c1"))))));
+
+  EXPECT_TRUE(matches(
+      Code,
+      traverse(TK_IgnoreUnlessSpelledInSource,
+               functionDecl(hasName("conversionOperator"),
+                            hasDescendant(varDecl(
+                                hasName("c1"), hasInitializer(unaryOperator(
+                                                   
hasOperatorName("*")))))))));
 }
 
 template <typename MatcherT>


        
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to