https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62129
Bug ID: 62129
Summary: internal compiler error: in output_constant, at
varasm.c:4755
Product: gcc
Version: 4.9.2
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: brooks at gcc dot gnu.org
Created attachment 33316
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=33316&action=edit
Small example program.
(Google ref: b/17007254)
The following program causes an ICE in output_constant, at varasm.c:4755 on the
4.9 branch at r213772, and a similar ICE on trunk:
$ cat b17007254.cc
class Evaluator
{
int MakeChangelist ();
struct CreatorEntry
{
char *type;
int (Evaluator::*factory) ();
};
static constexpr CreatorEntry kCreators[] = { "",
&Evaluator::MakeChangelist };
};
constexpr Evaluator::CreatorEntry Evaluator::kCreators[];
$ gcc-archive/4.9/213772/bin/g++ --std=c++11 -c b17007254.cc
b17007254.cc:9:82: warning: deprecated conversion from string constant to
‘char*’ [-Wwrite-strings]
static constexpr CreatorEntry kCreators[] = { "",
&Evaluator::MakeChangelist };
^
b17007254.cc:12:57: internal compiler error: in output_constant, at
varasm.c:4755
constexpr Evaluator::CreatorEntry Evaluator::kCreators[];
^
0xb21e2a output_constant
gcc/gcc-4_9-branch/gcc/varasm.c:4755
0xb26102 output_constant
gcc/gcc-4_9-branch/gcc/varasm.c:4611
0xb26102 output_constructor_regular_field
gcc/gcc-4_9-branch/gcc/varasm.c:4952
0xb26102 output_constructor
gcc/gcc-4_9-branch/gcc/varasm.c:5231
0xb26102 output_constant
gcc/gcc-4_9-branch/gcc/varasm.c:4611
0xb26102 output_constructor_regular_field
gcc/gcc-4_9-branch/gcc/varasm.c:4952
0xb26102 output_constructor
gcc/gcc-4_9-branch/gcc/varasm.c:5231
0xb2581e assemble_variable(tree_node*, int, int, int)
gcc/gcc-4_9-branch/gcc/varasm.c:2139
0xb27455 varpool_assemble_decl(varpool_node*)
gcc/gcc-4_9-branch/gcc/varpool.c:466
0x6df31d output_in_order
gcc/gcc-4_9-branch/gcc/cgraphunit.c:2011
0x6df31d compile()
gcc/gcc-4_9-branch/gcc/cgraphunit.c:2248
0x6df5e4 finalize_compilation_unit()
gcc/gcc-4_9-branch/gcc/cgraphunit.c:2330
0x5946db cp_write_global_declarations()
gcc/gcc-4_9-branch/gcc/cp/decl2.c:4611
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.
$ gcc-archive/trunk/213772/bin/g++ --std=c++11 -c b17007254.cc
b17007254.cc:9:82: warning: deprecated conversion from string constant to
‘char*’ [-Wwrite-strings]
static constexpr CreatorEntry kCreators[] = { "",
&Evaluator::MakeChangelist };
^
b17007254.cc:12:57: internal compiler error: in output_constant, at
varasm.c:4734
constexpr Evaluator::CreatorEntry Evaluator::kCreators[];
^
0xe19a5a output_constant
gcc/gcc-trunk/gcc/varasm.c:4734
0xe206a3 output_constructor_regular_field
gcc/gcc-trunk/gcc/varasm.c:4929
0xe206a3 output_constructor
gcc/gcc-trunk/gcc/varasm.c:5195
0xe19a87 output_constant
gcc/gcc-trunk/gcc/varasm.c:4735
0xe206a3 output_constructor_regular_field
gcc/gcc-trunk/gcc/varasm.c:4929
0xe206a3 output_constructor
gcc/gcc-trunk/gcc/varasm.c:5195
0xe19a87 output_constant
gcc/gcc-trunk/gcc/varasm.c:4735
0xe22235 assemble_variable(tree_node*, int, int, int)
gcc/gcc-trunk/gcc/varasm.c:2175
0xe23d03 varpool_node::assemble_decl()
gcc/gcc-trunk/gcc/varpool.c:553
0x8475ae output_in_order
gcc/gcc-trunk/gcc/cgraphunit.c:2012
0x8475ae compile()
gcc/gcc-trunk/gcc/cgraphunit.c:2249
0x848bc4 finalize_compilation_unit()
gcc/gcc-trunk/gcc/cgraphunit.c:2331
0x638155 cp_write_global_declarations()
gcc/gcc-trunk/gcc/cp/decl2.c:4644
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.