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)