[LLVMbugs] [Bug 10805] Control flow graph has possibly incorrect statements with missing source location.

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Tue Aug 30 10:41:34 PDT 2011


DeLesley Hutchins <delesley at google.com> changed:

           What    |Removed                     |Added
             Status|RESOLVED                    |REOPENED
         Resolution|INVALID                     |

--- Comment #2 from DeLesley Hutchins <delesley at google.com> 2011-08-30 12:41:34 CDT ---

> As for the "first" statement, are you talking about the "do"?

No, I am talking about the "this" in "this->f".  

> FWIW, the completely linearized CFG (that the static analyzer sees) is:

That would be reasonable, but that is not the CFG that I am seeing.  The CFG
that I am seeing, as shown by CFG::dump(), is as follows:

 [ B4 (ENTRY) ]
    Predecessors (0):
    Successors (1): B2

 [ B1 ]
      1: this->done()
      2: ![B1.1]
      T: do ... while [B1.2]
    Predecessors (1): B2
    Successors (2): B3 B0

 [ B2 ]
      1: operator++
      2: [B2.1]
      3: ++ this->f (OperatorCall)
    Predecessors (2): B3 B4
    Successors (1): B1

 [ B3 ]
    Predecessors (1): B1
    Successors (1): B2

 [ B0 (EXIT) ]
    Predecessors (1): B1
    Successors (0):

Notice that Block B2 is missing the first two lines from your example:

  1: this
  2: [B2.1]->f

If these two lines were present, then the first statement would have a source
location.  However, although the lack of source location is how I discovered
the issue, it is perhaps misleading.  My apologies for not including the actual
CFG dump in the initial bug report.


Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.

More information about the llvm-bugs mailing list