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

Patrick Palka <ppalka at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ppalka at gcc dot gnu.org

--- Comment #4 from Patrick Palka <ppalka at gcc dot gnu.org> ---
We also ICE elsewhere with the following modified testcase:

$ cat 94066.C
union U;

constexpr long foo(U *up);

union U {
  long a = foo(this);
  int y;
};

constexpr long foo(U *up) {
  up->y = 11;
  return 42;
}

extern constexpr U u = {};
$ g++ -std=c++17 94066.C
94066.C:15:26: internal compiler error: in output_constructor_regular_field, at
varasm.c:5230
   15 | extern constexpr U u = {};
      |                          ^
0x82f159 output_constructor_regular_field
        /home/patrick/code/gcc/gcc/varasm.c:5230
0x82f159 output_constructor
        /home/patrick/code/gcc/gcc/varasm.c:5536
0x1375894 output_constant
        /home/patrick/code/gcc/gcc/varasm.c:4908
0x1375894 assemble_variable_contents
        /home/patrick/code/gcc/gcc/varasm.c:2148
0x137e152 assemble_variable(tree_node*, int, int, int)
        /home/patrick/code/gcc/gcc/varasm.c:2327
0x1380c79 varpool_node::assemble_decl()
        /home/patrick/code/gcc/gcc/varpool.c:587
0xc209ec output_in_order
        /home/patrick/code/gcc/gcc/cgraphunit.c:2564
0xc209ec symbol_table::compile()
        /home/patrick/code/gcc/gcc/cgraphunit.c:2801
0xc22eec symbol_table::compile()
        /home/patrick/code/gcc/gcc/cgraphunit.c:2717
0xc22eec symbol_table::finalize_compilation_unit()
        /home/patrick/code/gcc/gcc/cgraphunit.c:2984

Reply via email to