Author: rnk Date: Mon Feb 25 18:22:22 2019 New Revision: 354839 URL: http://llvm.org/viewvc/llvm-project?rev=354839&view=rev Log: Revert r354832 "[ASTImporter] Add support for importing ChooseExpr AST nodes."
Test does not pass on Windows Removed: cfe/trunk/test/ASTMerge/ Modified: cfe/trunk/docs/LibASTMatchersReference.html cfe/trunk/include/clang/ASTMatchers/ASTMatchers.h cfe/trunk/lib/AST/ASTImporter.cpp cfe/trunk/lib/ASTMatchers/ASTMatchersInternal.cpp cfe/trunk/lib/ASTMatchers/Dynamic/Registry.cpp cfe/trunk/unittests/AST/ASTImporterTest.cpp cfe/trunk/unittests/ASTMatchers/ASTMatchersNodeTest.cpp Modified: cfe/trunk/docs/LibASTMatchersReference.html URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/docs/LibASTMatchersReference.html?rev=354839&r1=354838&r2=354839&view=diff ============================================================================== --- cfe/trunk/docs/LibASTMatchersReference.html (original) +++ cfe/trunk/docs/LibASTMatchersReference.html Mon Feb 25 18:22:22 2019 @@ -788,11 +788,6 @@ Example matches 'a', L'a' </pre></td></tr> -<tr><td>Matcher<<a href="https://clang.llvm.org/doxygen/classclang_1_1Stmt.html">Stmt</a>></td><td class="name" onclick="toggle('chooseExpr0')"><a name="chooseExpr0Anchor">chooseExpr</a></td><td>Matcher<<a href="https://clang.llvm.org/doxygen/classclang_1_1ChooseExpr.html">ChooseExpr</a>>...</td></tr> -<tr><td colspan="4" class="doc" id="chooseExpr0"><pre>Matches GNU __builtin_choose_expr. -</pre></td></tr> - - <tr><td>Matcher<<a href="https://clang.llvm.org/doxygen/classclang_1_1Stmt.html">Stmt</a>></td><td class="name" onclick="toggle('compoundLiteralExpr0')"><a name="compoundLiteralExpr0Anchor">compoundLiteralExpr</a></td><td>Matcher<<a href="https://clang.llvm.org/doxygen/classclang_1_1CompoundLiteralExpr.html">CompoundLiteralExpr</a>>...</td></tr> <tr><td colspan="4" class="doc" id="compoundLiteralExpr0"><pre>Matches compound (i.e. non-scalar) literals Modified: cfe/trunk/include/clang/ASTMatchers/ASTMatchers.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/ASTMatchers/ASTMatchers.h?rev=354839&r1=354838&r2=354839&view=diff ============================================================================== --- cfe/trunk/include/clang/ASTMatchers/ASTMatchers.h (original) +++ cfe/trunk/include/clang/ASTMatchers/ASTMatchers.h Mon Feb 25 18:22:22 2019 @@ -2158,10 +2158,6 @@ extern const internal::VariadicDynCastAl extern const internal::VariadicDynCastAllOfMatcher<Stmt, CXXNullPtrLiteralExpr> cxxNullPtrLiteralExpr; -/// Matches GNU __builtin_choose_expr. -extern const internal::VariadicDynCastAllOfMatcher<Stmt, ChooseExpr> - chooseExpr; - /// Matches GNU __null expression. extern const internal::VariadicDynCastAllOfMatcher<Stmt, GNUNullExpr> gnuNullExpr; Modified: cfe/trunk/lib/AST/ASTImporter.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/ASTImporter.cpp?rev=354839&r1=354838&r2=354839&view=diff ============================================================================== --- cfe/trunk/lib/AST/ASTImporter.cpp (original) +++ cfe/trunk/lib/AST/ASTImporter.cpp Mon Feb 25 18:22:22 2019 @@ -552,7 +552,6 @@ namespace clang { // Importing expressions ExpectedStmt VisitExpr(Expr *E); ExpectedStmt VisitVAArgExpr(VAArgExpr *E); - ExpectedStmt VisitChooseExpr(ChooseExpr *E); ExpectedStmt VisitGNUNullExpr(GNUNullExpr *E); ExpectedStmt VisitPredefinedExpr(PredefinedExpr *E); ExpectedStmt VisitDeclRefExpr(DeclRefExpr *E); @@ -6136,33 +6135,6 @@ ExpectedStmt ASTNodeImporter::VisitVAArg E->isMicrosoftABI()); } -ExpectedStmt ASTNodeImporter::VisitChooseExpr(ChooseExpr *E) { - auto Imp = importSeq(E->getCond(), E->getLHS(), E->getRHS(), - E->getBuiltinLoc(), E->getRParenLoc(), E->getType()); - if (!Imp) - return Imp.takeError(); - - Expr *ToCond; - Expr *ToLHS; - Expr *ToRHS; - SourceLocation ToBuiltinLoc, ToRParenLoc; - QualType ToType; - std::tie(ToCond, ToLHS, ToRHS, ToBuiltinLoc, ToRParenLoc, ToType) = *Imp; - - ExprValueKind VK = E->getValueKind(); - ExprObjectKind OK = E->getObjectKind(); - - bool TypeDependent = ToCond->isTypeDependent(); - bool ValueDependent = ToCond->isValueDependent(); - - // The value of CondIsTrue only matters if the value is not - // condition-dependent. - bool CondIsTrue = !E->isConditionDependent() && E->isConditionTrue(); - - return new (Importer.getToContext()) - ChooseExpr(ToBuiltinLoc, ToCond, ToLHS, ToRHS, ToType, VK, OK, - ToRParenLoc, CondIsTrue, TypeDependent, ValueDependent); -} ExpectedStmt ASTNodeImporter::VisitGNUNullExpr(GNUNullExpr *E) { ExpectedType TypeOrErr = import(E->getType()); Modified: cfe/trunk/lib/ASTMatchers/ASTMatchersInternal.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/ASTMatchers/ASTMatchersInternal.cpp?rev=354839&r1=354838&r2=354839&view=diff ============================================================================== --- cfe/trunk/lib/ASTMatchers/ASTMatchersInternal.cpp (original) +++ cfe/trunk/lib/ASTMatchers/ASTMatchersInternal.cpp Mon Feb 25 18:22:22 2019 @@ -727,7 +727,6 @@ const internal::VariadicDynCastAllOfMatc compoundLiteralExpr; const internal::VariadicDynCastAllOfMatcher<Stmt, CXXNullPtrLiteralExpr> cxxNullPtrLiteralExpr; -const internal::VariadicDynCastAllOfMatcher<Stmt, ChooseExpr> chooseExpr; const internal::VariadicDynCastAllOfMatcher<Stmt, GNUNullExpr> gnuNullExpr; const internal::VariadicDynCastAllOfMatcher<Stmt, AtomicExpr> atomicExpr; const internal::VariadicDynCastAllOfMatcher<Stmt, StmtExpr> stmtExpr; Modified: cfe/trunk/lib/ASTMatchers/Dynamic/Registry.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/ASTMatchers/Dynamic/Registry.cpp?rev=354839&r1=354838&r2=354839&view=diff ============================================================================== --- cfe/trunk/lib/ASTMatchers/Dynamic/Registry.cpp (original) +++ cfe/trunk/lib/ASTMatchers/Dynamic/Registry.cpp Mon Feb 25 18:22:22 2019 @@ -147,7 +147,6 @@ RegistryMaps::RegistryMaps() { REGISTER_MATCHER(caseStmt); REGISTER_MATCHER(castExpr); REGISTER_MATCHER(characterLiteral); - REGISTER_MATCHER(chooseExpr); REGISTER_MATCHER(classTemplateDecl); REGISTER_MATCHER(classTemplateSpecializationDecl); REGISTER_MATCHER(complexType); Modified: cfe/trunk/unittests/AST/ASTImporterTest.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/AST/ASTImporterTest.cpp?rev=354839&r1=354838&r2=354839&view=diff ============================================================================== --- cfe/trunk/unittests/AST/ASTImporterTest.cpp (original) +++ cfe/trunk/unittests/AST/ASTImporterTest.cpp Mon Feb 25 18:22:22 2019 @@ -563,34 +563,6 @@ TEST_P(ImportExpr, ImportStringLiteral) stringLiteral(hasType(asString("const char [7]")))))); } -TEST_P(ImportExpr, ImportChooseExpr) { - MatchVerifier<Decl> Verifier; - - // This case tests C code that is not condition-dependent and has a true - // condition. - testImport( - "void declToImport() { (void)__builtin_choose_expr(1, 2, 3); }", - Lang_C, "", Lang_C, Verifier, - functionDecl(hasDescendant(chooseExpr()))); - - ArgVector Args = getExtraArgs(); - BindableMatcher<Decl> Matcher = - functionTemplateDecl(hasDescendant(chooseExpr())); - - // Don't try to match the template contents if template parsing is delayed. - if (llvm::find(Args, "-fdelayed-template-parsing") != Args.end()) { - Matcher = functionTemplateDecl(); - } - - // Make sure that uses of (void)__builtin_choose_expr with dependent types in - // the condition are handled properly. This test triggers an assertion if the - // ASTImporter incorrectly tries to access isConditionTrue() when - // isConditionDependent() is true. - testImport("template<int N> void declToImport() { " - "(void)__builtin_choose_expr(N, 1, 0); }", - Lang_CXX, "", Lang_CXX, Verifier, Matcher); -} - TEST_P(ImportExpr, ImportGNUNullExpr) { MatchVerifier<Decl> Verifier; testImport( @@ -1340,27 +1312,6 @@ TEST_P(ASTImporterOptionSpecificTestBase ASSERT_EQ(ToTemplated1, ToTemplated); } -TEST_P(ASTImporterOptionSpecificTestBase, ImportChooseExpr) { - // This tests the import of isConditionTrue directly to make sure the importer - // gets it right. - Decl *From, *To; - std::tie(From, To) = getImportedDecl( - "void declToImport() { (void)__builtin_choose_expr(1, 0, 1); }", - Lang_C, "", Lang_C); - - auto ToResults = match(chooseExpr().bind("choose"), To->getASTContext()); - auto FromResults = match(chooseExpr().bind("choose"), From->getASTContext()); - - const ChooseExpr *FromChooseExpr = - selectFirst<ChooseExpr>("choose", FromResults); - ASSERT_TRUE(FromChooseExpr); - - const ChooseExpr *ToChooseExpr = selectFirst<ChooseExpr>("choose", ToResults); - ASSERT_TRUE(ToChooseExpr); - - EXPECT_EQ(FromChooseExpr->isConditionTrue(), ToChooseExpr->isConditionTrue()); -} - TEST_P(ASTImporterOptionSpecificTestBase, ImportFunctionWithBackReferringParameter) { Decl *From, *To; Modified: cfe/trunk/unittests/ASTMatchers/ASTMatchersNodeTest.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/ASTMatchers/ASTMatchersNodeTest.cpp?rev=354839&r1=354838&r2=354839&view=diff ============================================================================== --- cfe/trunk/unittests/ASTMatchers/ASTMatchersNodeTest.cpp (original) +++ cfe/trunk/unittests/ASTMatchers/ASTMatchersNodeTest.cpp Mon Feb 25 18:22:22 2019 @@ -754,11 +754,6 @@ TEST(Matcher, NullPtrLiteral) { EXPECT_TRUE(matches("int* i = nullptr;", cxxNullPtrLiteralExpr())); } -TEST(Matcher, ChooseExpr) { - EXPECT_TRUE(matchesC("void f() { (void)__builtin_choose_expr(1, 2, 3); }", - chooseExpr())); -} - TEST(Matcher, GNUNullExpr) { EXPECT_TRUE(matches("int* i = __null;", gnuNullExpr())); } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits