[PATCH] D159479: [ASTImport]CXXBoolLiteralExpr should be handled explicitly in statement comparation
Wang Pengcheng via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Sep 7 23:57:55 PDT 2023
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rGb0ea2790c41d: [ASTImport]CXXBoolLiteralExpr should be handled explicitly in statement… (authored by jcsxky, committed by wangpc).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D159479/new/
https://reviews.llvm.org/D159479
Files:
clang/lib/AST/ASTStructuralEquivalence.cpp
clang/unittests/AST/StructuralEquivalenceTest.cpp
Index: clang/unittests/AST/StructuralEquivalenceTest.cpp
===================================================================
--- clang/unittests/AST/StructuralEquivalenceTest.cpp
+++ clang/unittests/AST/StructuralEquivalenceTest.cpp
@@ -1798,6 +1798,25 @@
TU, cxxRecordDecl(hasName("B"), unless(isImplicit())))));
}
+TEST_F(StructuralEquivalenceCacheTest, ReturnStmtNonEq) {
+ auto TU = makeTuDecls(
+ R"(
+ bool x(){ return true; }
+ )",
+ R"(
+ bool x(){ return false; }
+ )",
+ Lang_CXX03);
+
+ StructuralEquivalenceContext Ctx(
+ get<0>(TU)->getASTContext(), get<1>(TU)->getASTContext(),
+ NonEquivalentDecls, StructuralEquivalenceKind::Default, false, false);
+
+ auto X = findDeclPair<FunctionDecl>(TU, functionDecl(hasName("x")));
+ EXPECT_FALSE(Ctx.IsEquivalent(X.first->getBody(), X.second->getBody()));
+
+}
+
TEST_F(StructuralEquivalenceCacheTest, SpecialNonEq) {
auto TU = makeTuDecls(
R"(
Index: clang/lib/AST/ASTStructuralEquivalence.cpp
===================================================================
--- clang/lib/AST/ASTStructuralEquivalence.cpp
+++ clang/lib/AST/ASTStructuralEquivalence.cpp
@@ -366,6 +366,10 @@
return true;
}
+ bool IsStmtEquivalent(const CXXBoolLiteralExpr *E1, const CXXBoolLiteralExpr *E2) {
+ return E1->getValue() == E2->getValue();
+ }
+
/// End point of the traversal chain.
bool TraverseStmt(const Stmt *S1, const Stmt *S2) { return true; }
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D159479.556232.patch
Type: text/x-patch
Size: 1483 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20230908/af1969eb/attachment-0001.bin>
More information about the cfe-commits
mailing list