[LLVMdev] NULL successors exposed via GraphTraits

Thomas Pani pani at forsyte.tuwien.ac.at
Fri Aug 16 11:17:59 PDT 2013


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

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

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

This is also assigned to the Clang static analyzer folks in Bugzilla #16085
[1].

[1] http://llvm.org/bugs/show_bug.cgi?id=16085

-- 
Thomas Pani                                http://forsyte.at
Vienna University of Technology              pani at forsyte.at
Institute of Information Systems          +43 1 58801-740013
Favoritenstraße 9-11, 1040 Wien, Austria        DVR: 0005886
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130816/b9e78176/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: null_succ_DFSPass.diff
Type: application/octet-stream
Size: 658 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130816/b9e78176/attachment.obj>


More information about the llvm-dev mailing list