[PATCH] D77229: [Analyzer][WIP] Avoid handling of LazyCompundVals in IteratorModeling
Balogh, Ádám via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Apr 6 04:17:55 PDT 2020
baloghadamsoftware marked 3 inline comments as done.
baloghadamsoftware added inline comments.
================
Comment at: clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp:127
+ const auto *Init = ICC->getCXXCtorInitializer();
+ return getObjectUnderConstruction(State, Init, LCtx);
+ }
----------------
This does not find anything in the map for base initializers.
================
Comment at: clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp:230
const auto *Init = ICC->getCXXCtorInitializer();
assert(Init->isAnyMemberInitializer());
const CXXMethodDecl *CurCtor = cast<CXXMethodDecl>(LCtx->getDecl());
----------------
This assertion seems to be unfounded. What to do with base initializers? However, in our case it seems that this function should never be executed because to the objects under construction are already in the map. However, I do not know how to handle base initializers.
================
Comment at: clang/test/Analysis/iterator-modeling.cpp:1791
struct simple_derived_iterator: public simple_iterator_base {
int& operator*();
----------------
We are crashing here (assertion) on calling the base initializer.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D77229/new/
https://reviews.llvm.org/D77229
More information about the cfe-commits
mailing list