Assertion failure in clang::ento::ExprEngine::elideDestructor #37420
Description
| Bugzilla Link | 38072 |
| Resolution | FIXED |
| Resolved on | Aug 01, 2018 07:12 |
| Version | unspecified |
| OS | Linux |
| Reporter | LLVM Bugzilla Contributor |
| CC | @devincoughlin |
Extended Description
$ cat test-ento__ExprEngine__elideDestructor.cc
struct a {
~a();
};
struct F {
a d;
F(char , a = a());
};
void g() {
char h[1];
for (int i = 0;;) F j(i ? j : h);
}
$ ./clang-tidy -checks=-,clang-analyzer* test-ento__ExprEngine__elideDestructor.cc -- -std=c++11
assert.h assertion failed at llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp:485 in static clang::ento::ProgramStateRef clang::ento::ExprEngine::elideDestructor(clang::ento::ProgramStateRef, const clang::CXXBindTemporaryExpr *, const clang::LocationContext *): !State->contains(I)
@ 0x559134e889d6 __assert_fail
@ 0x559132b8a025 clang::ento::ExprEngine::elideDestructor()
@ 0x559132bb9722 clang::ento::ExprEngine::prepareForObjectConstruction()
@ 0x559132bb962d clang::ento::ExprEngine::prepareForObjectConstruction()
@ 0x559132bb962d clang::ento::ExprEngine::prepareForObjectConstruction()
@ 0x559132bba6eb clang::ento::ExprEngine::VisitCXXConstructExpr()
@ 0x559132b8e30d clang::ento::ExprEngine::Visit()
@ 0x559132b8b52e clang::ento::ExprEngine::ProcessStmt()
@ 0x559132b8b24b clang::ento::ExprEngine::processCFGElement()
@ 0x559132bac965 clang::ento::CoreEngine::HandlePostStmt()
@ 0x559132babdbd clang::ento::CoreEngine::ExecuteWorkList()
@ 0x5591328dbc66 (anonymous namespace)::AnalysisConsumer::ActionExprEngine()
@ 0x5591328db7e6 (anonymous namespace)::AnalysisConsumer::HandleCode()
@ 0x5591328c73b4 (anonymous namespace)::AnalysisConsumer::HandleTranslationUnit()
This is most likely caused by r335800.
Activity