On Wed, Jun 19, 2019 at 09:39:01AM -0600, Jeff Law wrote:
> A label used as a value, but which is not a jump target will have an
> indeterminate value -- it'll end up somewhere in its containing
> function,  that's all we guarantee in that case.

In gimple it was fine and expected, and expand *did* make a code_label,
it was just immediately optimised away:

===
;; Generating RTL for gimple basic block 3

;; label1:

(code_label/s 14 13 15 2 ("label1") [0 uses])

(note 15 14 0 NOTE_INSN_BASIC_BLOCK)
===

and then we get

===
Merging block 3 into block 2...
Merged blocks 2 and 3.
Merged 2 and 3 without moving.
===

leaving

===
(note/s 14 13 16 2 ("label1") NOTE_INSN_DELETED_LABEL 2)
===

Do we want this to work as expected?


Segher

Reply via email to