[Bug middle-end/90982] [9/10 Regression] ICE in make_decl_rtl, at varasm.c:1344

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Jun 24 17:31:00 GMT 2019


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90982

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |needs-bisection
           Priority|P3                          |P2
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2019-06-24
          Component|c++                         |middle-end
   Target Milestone|---                         |9.2
     Ever confirmed|0                           |1

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed.

#1  0x000000000191fad2 in make_decl_rtl (decl=<var_decl 0x7ffff6dbebd0 d>)
    at ../../src/trunk/gcc/varasm.c:1343
1343      gcc_assert (!VAR_P (decl)
(gdb) l
1338      /* Check that we are not being given an automatic variable.  */
1339      gcc_assert (TREE_CODE (decl) != PARM_DECL
1340                  && TREE_CODE (decl) != RESULT_DECL);
1341
1342      /* A weak alias has TREE_PUBLIC set but not the other bits.  */
1343      gcc_assert (!VAR_P (decl)
1344                  || TREE_STATIC (decl)
1345                  || TREE_PUBLIC (decl)
1346                  || DECL_EXTERNAL (decl)
1347                  || DECL_REGISTER (decl));
(gdb) p debug_tree (decl)
 <var_decl 0x7ffff6dbebd0 d
    type <record_type 0x7ffff6daaa80 S sizes-gimplified type_5 type_6 BLK
        size <integer_cst 0x7ffff6c5e2e8 constant 192>
        unit-size <integer_cst 0x7ffff6c5e2b8 constant 24>
        align:64 warn_if_not_align:0 symtab:0 alias-set 2 canonical-type
0x7ffff6daaa80
        fields <function_decl 0x7ffff6db3500 __dt  type <method_type
0x7ffff6dafa80>
            public abstract external autoinline decl_3 QI t.ii:1:25 align:16
warn_if_not_align:0 context <record_type 0x7ffff6daaa80 S>
            full-name "S<3>::~S() noexcept (<uninstantiated>)"
            not-really-extern chain <function_decl 0x7ffff6db3700 __dt_base >>
context <translation_unit_decl 0x7ffff6c4a168 t.ii>
        full-name "struct S<3>"
        X() X(constX&) this=(X&) n_parents=0 use_template=1 interface-unknown
        pointer_to_this <pointer_type 0x7ffff6daad20> reference_to_this
<reference_type 0x7ffff6daf2a0> chain <type_decl 0x7ffff6d61c78 S>>
    used BLK t.ii:13:12 size <integer_cst 0x7ffff6c5e2e8 192> unit-size
<integer_cst 0x7ffff6c5e2b8 24>
    align:64 warn_if_not_align:0 context <function_decl 0x7ffff6d98700 g>
abstract_origin <parm_decl 0x7ffff6c66b00 d>>

d is an automatic var but somehow it got no RTL assigned during expansion.


More information about the Gcc-bugs mailing list