[Bug debug/104407] New: [10/11/12 Regression] '-fcompare-debug' failure (length) w/ -std=c++17 -O1

asolokha at gmx dot com gcc-bugzilla@gcc.gnu.org
Sun Feb 6 07:32:56 GMT 2022


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])


More information about the Gcc-bugs mailing list