Author: jonastoth Date: Mon Jan 21 05:26:18 2019 New Revision: 351743 URL: http://llvm.org/viewvc/llvm-project?rev=351743&view=rev Log: [clang] add tests to ExprMutAnalyzer that reproduced a crash in ASTMatchers
Summary: This patch adds two unit-tests that are the result of reducing a crashing TU when running ExprMutAnalyzer over it. They are added only to ensure the regression that has been fixed with https://reviews.llvm.org/D56444 don't creep back. Reviewers: aaron.ballman, sammccall, rsmith, george.karpenkov Reviewed By: sammccall Subscribers: baloghadamsoftware, a.sidorin, Szelethus, donat.nagy, dkrupp, cfe-commits Differential Revision: https://reviews.llvm.org/D56917 Modified: cfe/trunk/unittests/Analysis/ExprMutationAnalyzerTest.cpp Modified: cfe/trunk/unittests/Analysis/ExprMutationAnalyzerTest.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Analysis/ExprMutationAnalyzerTest.cpp?rev=351743&r1=351742&r2=351743&view=diff ============================================================================== --- cfe/trunk/unittests/Analysis/ExprMutationAnalyzerTest.cpp (original) +++ cfe/trunk/unittests/Analysis/ExprMutationAnalyzerTest.cpp Mon Jan 21 05:26:18 2019 @@ -1108,4 +1108,23 @@ TEST(ExprMutationAnalyzerTest, UniquePtr EXPECT_THAT(mutatedBy(Results, AST.get()), ElementsAre("x->mf()")); } +TEST(ExprMutationAnalyzerTest, ReproduceFailureMinimal) { + const std::string Reproducer = + "namespace std {" + "template <class T> T forward(T & A) { return static_cast<T&&>(A); }" + "template <class T> struct __bind {" + " T f;" + " template <class V> __bind(T v, V &&) : f(forward(v)) {}" + "};" + "}" + "void f() {" + " int x = 42;" + " auto Lambda = [] {};" + " std::__bind<decltype(Lambda)>(Lambda, x);" + "}"; + auto AST11 = buildASTFromCodeWithArgs(Reproducer, {"-std=c++11"}); + auto Results11 = + match(withEnclosingCompound(declRefTo("x")), AST11->getASTContext()); + EXPECT_FALSE(isMutated(Results11, AST11.get())); +} } // namespace clang _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits