diff options
author | martinboehme <mboehme@google.com> | 2024-06-26 15:40:42 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-06-26 15:40:42 +0200 |
commit | 6e96e5ab8a0e40fba0302a5c32574be41ef57354 (patch) | |
tree | b7bcef3b1d4f02cc1ebfffc8db7e3f755d00add2 /clang/unittests/Analysis/FlowSensitive/TransferTest.cpp | |
parent | 00ae6bb6c27b5ca89fb22dff99a34d6b45e3e0b0 (diff) | |
download | llvm-6e96e5ab8a0e40fba0302a5c32574be41ef57354.zip llvm-6e96e5ab8a0e40fba0302a5c32574be41ef57354.tar.gz llvm-6e96e5ab8a0e40fba0302a5c32574be41ef57354.tar.bz2 |
Revert "[clang][dataflow] Teach `AnalysisASTVisitor` that `typeid()` can be evaluated." (#96766)
Reverts llvm/llvm-project#96731
It causes CI failures.
Diffstat (limited to 'clang/unittests/Analysis/FlowSensitive/TransferTest.cpp')
-rw-r--r-- | clang/unittests/Analysis/FlowSensitive/TransferTest.cpp | 43 |
1 files changed, 0 insertions, 43 deletions
diff --git a/clang/unittests/Analysis/FlowSensitive/TransferTest.cpp b/clang/unittests/Analysis/FlowSensitive/TransferTest.cpp index 39e7001..e743eef 100644 --- a/clang/unittests/Analysis/FlowSensitive/TransferTest.cpp +++ b/clang/unittests/Analysis/FlowSensitive/TransferTest.cpp @@ -1637,49 +1637,6 @@ TEST(TransferTest, StructModeledFieldsWithAccessor) { }); } -TEST(TransferTest, StructModeledFieldsInTypeid) { - // Test that we model fields mentioned inside a `typeid()` expression only if - // that expression is potentially evaluated -- i.e. if the expression inside - // `typeid()` is a glvalue of polymorphic type (see - // `CXXTypeidExpr::isPotentiallyEvaluated()` and [expr.typeid]p3). - std::string Code = R"( - // Definitions needed for `typeid`. - namespace std { - class type_info {}; - class bad_typeid {}; - } // namespace std - - struct NonPolymorphic {}; - - struct Polymorphic { - virtual ~Polymorphic() = default; - }; - - struct S { - NonPolymorphic *NonPoly; - Polymorphic *Poly; - }; - - void target(S &s) { - typeid(*s.NonPoly); - typeid(*s.Poly); - // [[p]] - } - )"; - runDataflow( - Code, - [](const llvm::StringMap<DataflowAnalysisState<NoopLattice>> &Results, - ASTContext &ASTCtx) { - const Environment &Env = getEnvironmentAtAnnotation(Results, "p"); - auto &SLoc = getLocForDecl<RecordStorageLocation>(ASTCtx, Env, "s"); - std::vector<const ValueDecl *> Fields; - for (auto [Field, _] : SLoc.children()) - Fields.push_back(Field); - EXPECT_THAT(Fields, - UnorderedElementsAre(findValueDecl(ASTCtx, "Poly"))); - }); -} - TEST(TransferTest, StructModeledFieldsWithComplicatedInheritance) { std::string Code = R"( struct Base1 { |