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