http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58609
Bug ID: 58609 Summary: [4.9 Regression] [c++11] ICE with uninitialized variable in constexpr Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: reichelt at gcc dot gnu.org The following invalid code snippet (compiled with "-std=c++11") triggers an ICE on trunk (since at least GCC 4.9.0 20130920): =================================== struct A { static constexpr int&& i = 0; }; int j = A::i; =================================== bug.cc:3:30: error: non-constant in-class initialization invalid for static member 'A::i' static constexpr int&& i = 0; ^ bug.cc:3:30: error: (an out of class initialization is required) cc1plus: internal compiler error: in record_reference, at cgraphbuild.c:66 0x7ff843 record_reference ../../gcc/gcc/cgraphbuild.c:66 0xcf44ab walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*), void*, pointer_set_t*, tree_node* (*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*, pointer_set_t*)) ../../gcc/gcc/tree.c:10928 0xcf48e5 walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*), void*, pointer_set_t*, tree_node* (*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*, pointer_set_t*)) ../../gcc/gcc/tree.c:11191 0x8001fd record_references_in_initializer(tree_node*, bool) ../../gcc/gcc/cgraphbuild.c:427 0xd2ce67 varpool_analyze_node(varpool_node*) ../../gcc/gcc/varpool.c:398 0x804147 analyze_functions ../../gcc/gcc/cgraphunit.c:1035 0x805669 finalize_compilation_unit() ../../gcc/gcc/cgraphunit.c:2260 0x6188a0 cp_write_global_declarations() ../../gcc/gcc/cp/decl2.c:4360 Please submit a full bug report, [etc.]