[PATCH] D37187: [Analyzer] Fix Bug 25609 - Assertion UNREACHABLE: 'Unexpected ProgramPoint' with widen-loops=true
Devin Coughlin via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Sat Nov 18 15:42:21 PST 2017
dcoughlin added inline comments.
================
Comment at: lib/StaticAnalyzer/Core/PathDiagnostic.cpp:694
+ } else if (Optional<BlockEntrance> BE = P.getAs<BlockEntrance>()) {
+ CFGElement BlockFront = BE->getBlock()->front();
+ if (BlockFront.getKind() == CFGElement::Statement) {
----------------
MTC wrote:
> szepet wrote:
> > I think it would be more correct to use the location what is used in case of the BlockEdge. (So on the entranced block terminator condition.) The reason is because the BlockEntrance display message will be displayed before the message of the BlockEdge (since it is an "earlier" node in the ExplodedGraph). So it would result that if check these notes in a viewer then the earlier note would belong to the later location which could be confusing.
> Yes, it would be better to use the location of the TerminatorCondition :D.
Thanks for looking into fixing this.
I don't think using the terminator condition of the entered block is the right thing to do. The terminator is at the *end* of a basic block and this program point represents the entrance to the block. I think it is better to use the location corresponding to the first element in in the entered block.
https://reviews.llvm.org/D37187
More information about the cfe-commits
mailing list