]> granicus.if.org Git - clang/commit
Changes to CFGBuilder:
authorTed Kremenek <kremenek@apple.com>
Mon, 27 Aug 2007 19:46:09 +0000 (19:46 +0000)
committerTed Kremenek <kremenek@apple.com>
Mon, 27 Aug 2007 19:46:09 +0000 (19:46 +0000)
commit49af7cb8a3aca79783e7a0708b97a8f856f0da22
treea91c3240ad9be8c257d819390dbca13213d5755c
parentfb071532de6ebd5685de34d65a5440604ee570bb
Changes to CFGBuilder:
+ Added the creation of an empty Entry block at the end of CFG
  construction if the Entry block in the CFG contains multiple
  predecessors (which can happen with labels and do loops).

+ Fixed bug in the creation of an empty Exit block with functions where not
  all paths end in a return statement (but some do).  Basic blocks with
  return statements were jumping to a (sometimes) non-empty block.

+ FinishBlock no longer checks for labels at the beginning of a basic
  block before reversing the statements in the block.  This is because
  the recursion invariants of the builder methods have been cleaned up,
  and blocks are only passed to FinishBlock at most once.

+ Modified handling of "if", "for", "while", "do", and "switch" to allow
  condition expressions that can span multiple basic blocks.  This allows
  such conditions to contain short-circuit expressions (which span multiple
  blocks in the CFG).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41508 91177308-0d34-0410-b5e6-96231b3b80d8
AST/CFG.cpp