<div dir="ltr"><div>Clang's CFG construction introduces NULL successors for infeasible paths.</div><div>These are exposed via GraphTraits iterators, which is currently unhandled in LLVM code, e.g. in llvm::DFSPass(...)</div>

<div><br></div><div>To reproduce:</div><div>    $ echo "int main() { return 0 ? 0 : 0; }" | clang -cc1 -analyze -analyzer-checker=debug.DumpDominators -x c -</div><div>segfaults in llvm::DFSPass()</div><div><br>

</div><div>The question is, should this be fixed in LLVM or Clang?</div><div>I'm attaching a patch for llvm::DFSPass(), but I suppose there are other pieces in LLVM that would need adaption...</div><div><br></div><div>

This is also assigned to the Clang static analyzer folks in Bugzilla #16085 [1].</div><div><br></div><div>[1] <a href="http://llvm.org/bugs/show_bug.cgi?id=16085">http://llvm.org/bugs/show_bug.cgi?id=16085</a></div><div>
<br>
</div><div>-- </div><div>Thomas Pani                                <a href="http://forsyte.at">http://forsyte.at</a></div><div>Vienna University of Technology              <a href="mailto:pani@forsyte.at">pani@forsyte.at</a></div>

<div>Institute of Information Systems          +43 1 58801-740013</div><div>Favoritenstraße 9-11, 1040 Wien, Austria        DVR: 0005886</div></div>