https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61577
--- Comment #51 from The Written Word <bugzilla-gcc at thewrittenword dot com> --- (In reply to dave.anglin from comment #50) > On 2019-07-05 4:28 p.m., bugzilla-gcc at thewrittenword dot com wrote: > > I am uploading hello.c, hello.s, and hello.c.313r.dfinish. > I'm still puzzled why .LC0 ends up in .rodata. > > (insn 30 2 34 2 (set (reg:DI 120 out0 [+-4 ]) > (minus:DI (symbol_ref/f:SI ("*.LC0") [flags 0x2] <var_decl 776633c8 > *.LC0>) > (reg:DI 1 r1))) "hello.c":5 108 {*gprel64_offset} > (nil)) This is a diff of the RTL between two gcc-8.3.0 versions, one with PR60465 reverted and one without: --- without-PR60465/hello.c.313r.dfinish 2019-07-05 20:37:38 +0000 +++ with-PR60465/hello.c.313r.dfinish 2019-07-05 20:26:13 +0000 @@ -31,16 +31,16 @@ (note 22 21 2 2 NOTE_INSN_PROLOGUE_END) (note 2 22 30 2 NOTE_INSN_FUNCTION_BEG) (insn 30 2 34 2 (set (reg:DI 120 out0 [+-4 ]) - (plus:DI (high:DI (symbol_ref/f:SI ("*.LC0") [flags 0x2] <var_decl 776633c8 *.LC0>)) - (reg:DI 1 r1))) "hello.c":5 110 {*load_symptr_high} + (minus:DI (symbol_ref/f:SI ("*.LC0") [flags 0x2] <var_decl 776633c8 *.LC0>) + (reg:DI 1 r1))) "hello.c":5 108 {*gprel64_offset} (nil)) (insn 34 30 31 2 (unspec_volatile [ (const_int 3 [0x3]) ] UNSPECV_INSN_GROUP_BARRIER) "hello.c":5 364 {insn_group_barrier} (nil)) (insn 31 34 32 2 (set (reg:DI 120 out0 [+-4 ]) - (lo_sum:DI (mem/u/c:DI (reg:DI 120 out0 [+-4 ]) [0 S8 A64]) - (symbol_ref/f:SI ("*.LC0") [flags 0x2] <var_decl 776633c8 *.LC0>))) "hello.c":5 111 {*load_symptr_low} + (plus:DI (reg:DI 1 r1) + (reg:DI 120 out0 [+-4 ]))) "hello.c":5 206 {adddi3} (nil)) (call_insn 32 31 33 2 (parallel [ (set (reg:SI 8 r8)