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