https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83992

--- Comment #1 from Ian Lance Taylor <ian at airs dot com> ---
In the 147t.cddce2 dump (as dumped with -fdump-tree-all-lineno) I see this:

  <bb 4> [local count: 1063004407]:
  # j_8 = PHI <[foo.go:6:7] 0(3), [foo.go:6:31] j_5(6)>
  # DEBUG j => j_8
  [foo.go:6:31] j_5 = j_8 + 1;
  [foo.go:6:31] # DEBUG j => j_5
  # DEBUG j => j_5
  [foo.go:6:17] if (j_5 != 2147483647)
    goto <bb 6>; [98.99%]
  else
    goto <bb 5>; [1.01%]

In the subsequent 148t.ivcanon dump I see this:

  <bb 4> [local count: 1063004407]:
  # j_8 = PHI <[foo.go:6:7] 0(3), [foo.go:6:31] j_5(6)>
  # ivtmp_7 = PHI <2147483647(3), ivtmp_1(6)>
  # DEBUG j => j_8
  [foo.go:6:31] j_5 = j_8 + 1;
  [foo.go:6:31] # DEBUG j => j_5
  # DEBUG j => j_5
  ivtmp_1 = ivtmp_7 - 1;
  [foo.go:6:17] if (ivtmp_1 != 0)
    goto <bb 6>; [98.99%]
  else
    goto <bb 5>; [1.01%]

Note that the new insn `ivtmp_1 = ivtmp_7 - 1;` has no location info.  I think
that is the point that leads to the incorrect placement of the
NOTE_INSN_BLOCK_BEG note.

Reply via email to