Open Quuxplusone opened 5 years ago
Bugzilla Link | PR38371 |
Status | NEW |
Importance | P normal |
Reported by | Abramo Bagnara (abramo.bagnara@bugseng.com) |
Reported on | 2018-07-30 08:52:44 -0700 |
Last modified on | 2018-07-31 01:28:32 -0700 |
Version | trunk |
Hardware | PC Linux |
CC | adam.balogh@ericsson.com, llvm-bugs@lists.llvm.org, noqnoqneo@gmail.com |
Fixed by commit(s) | |
Attachments | |
Blocks | |
Blocked by | |
See also |
I've bisected the regression to this originating commit:
commit d7888b0fe44112d6620ef66f5d75d859cbace18d (HEAD) Author: Adam Balogh adam.balogh@ericsson.com Date: Mon Jul 16 09:27:27 2018 +0000
[Analyzer] Mark `SymbolData` parts of iterator position as live in program state maps
Marking a symbolic expression as live is non-recursive. In our checkers we
either use conjured symbols or conjured symbols plus/minus integers to
represent abstract position of iterators, so in this latter case we also
must mark the `SymbolData` part of these symbolic expressions as live to
prevent them from getting reaped.
Differential Revision: https://reviews.llvm.org/D48764
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@337151 91177308-0d34-0410-b5e6-96231b3b80d8
The violated assertion is:
clang: /home/abramo/llvm/tools/clang/lib/StaticAnalyzer/Checkers/IteratorChecker.cpp:1176: clang::ento::ProgramStateRef {anonymous}::relateIteratorPositions(clang::ento::ProgramStateRef, const {anonymous}::IteratorPosition&, const {anonymous}::IteratorPosition&, bool): Assertion comparison.getAs<DefinedSVal>() && "Symbol comparison must be a
DefinedSVal`"' failed.
(the message changes in later commits)