https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104407
Bug ID: 104407 Summary: [10/11/12 Regression] '-fcompare-debug' failure (length) w/ -std=c++17 -O1 Product: gcc Version: 12.0 Status: UNCONFIRMED Keywords: compare-debug-failure Severity: normal Priority: P3 Component: debug Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- Target: x86_64-unknown-linux-gnu gcc 12.0.1 20220130 snapshot (g:baf98320ac6cd56da0c0b460fb94e3b87a79220d) fails -fcompare-debug check when compiling the following testcase, extracted from gcc/testsuite/g++.dg/cpp1z/decomp13.C, w/ -O1: struct A { int i; long j; int k : 2; char l; } a; auto [ aa, bb, cc, dd ] = a; namespace N { auto & [ m, n, o, ppp ] = a; } % x86_64-unknown-linux-gnu-g++-12.0.1 -O1 -fcompare-debug -c t3pwb1uu.C x86_64-unknown-linux-gnu-g++-12.0.1: error: t3pwb1uu.C: '-fcompare-debug' failure (length) --- t3pwb1uu.C.gkd 2022-02-06 14:31:15.936434434 +0700 +++ t3pwb1uu.gk.C.gkd 2022-02-06 14:31:15.996430437 +0700 @@ -11,7 +11,7 @@ (note # 0 0 NOTE_INSN_FUNCTION_BEG) (note # 0 0 NOTE_INSN_DELETED) (insn # 0 0 2 (set (reg:TI 20 xmm0 [89]) - (mem/c:TI (symbol_ref:DI ("a") [flags 0x2] <var_decl # a>) [ a+0 S16 A128])) "t3pwb1uu.C":3:6# {*movti_internal} + (mem/c:TI (symbol_ref:DI ("a") [flags 0x2] <var_decl # a>) [ a+0 S16 A64])) "t3pwb1uu.C":3:6# {*movti_internal} (nil)) (insn # 0 0 2 (set (mem/c:TI (symbol_ref:DI ("_ZDC2aa2bb2cc2ddE") [flags 0x2] <var_decl # D.xxxx>) [ D.xxxx+0 S16 A128]) (reg:TI 20 xmm0 [89])) "t3pwb1uu.C":3:6# {*movti_internal} @@ -19,9 +19,9 @@ (nil))) (insn # 0 0 2 (set (reg:DI 0 ax [orig:87 a+16 ] [87]) (mem/c:DI (const:DI (plus:DI (symbol_ref:DI ("a") [flags 0x2] <var_decl # a>) - (const_int 16 [0x10]))) [ a+16 S8 A128])) "t3pwb1uu.C":3:6# {*movdi_internal} + (const_int 16 [0x10]))) [ a+16 S8 A64])) "t3pwb1uu.C":3:6# {*movdi_internal} (expr_list:REG_EQUIV (mem/c:DI (const:DI (plus:DI (symbol_ref:DI ("a") [flags 0x2] <var_decl # a>) - (const_int 16 [0x10]))) [ a+16 S8 A128]) + (const_int 16 [0x10]))) [ a+16 S8 A64]) (nil))) (insn # 0 0 2 (set (mem/c:DI (const:DI (plus:DI (symbol_ref:DI ("_ZDC2aa2bb2cc2ddE") [flags 0x2] <var_decl # D.xxxx>) (const_int 16 [0x10]))) [ D.xxxx+16 S8 A128])