[Bug c++/79681] New: ICE with constexpr and bitfield
reichelt at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Feb 22 22:56:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79681
Bug ID: 79681
Summary: ICE with constexpr and bitfield
Product: gcc
Version: 7.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: reichelt at gcc dot gnu.org
Target Milestone: ---
The following valid code snippet triggers an ICE since GCC 5.1.0:
========================
struct A
{
int i : 4;
};
constexpr bool foo()
{
A x[] = { 1 };
return x[0].i;
}
bool b = foo();
========================
bug.cc:12:13: in constexpr expansion of 'foo()'
bug.cc:12:14: internal compiler error: tree check: expected field_decl, have
integer_cst in bit_position, at tree.c:3022
bool b = foo();
^
0xffc41c tree_check_failed(tree_node const*, char const*, int, char const*,
...)
../../gcc/gcc/tree.c:9813
0xffc5b8 tree_check(tree_node const*, char const*, int, char const*, tree_code)
../../gcc/gcc/tree.h:3320
0xffc5b8 bit_position(tree_node const*)
../../gcc/gcc/tree.c:3022
0x83a8c3 cxx_eval_bit_field_ref
../../gcc/gcc/cp/constexpr.c:2472
0x83a8c3 cxx_eval_constant_expression
../../gcc/gcc/cp/constexpr.c:4276
0x844b12 cxx_eval_binary_expression
../../gcc/gcc/cp/constexpr.c:1935
0x83a59a cxx_eval_constant_expression
../../gcc/gcc/cp/constexpr.c:4233
0x844b12 cxx_eval_binary_expression
../../gcc/gcc/cp/constexpr.c:1935
0x83a59a cxx_eval_constant_expression
../../gcc/gcc/cp/constexpr.c:4233
0x83e5ed cxx_eval_store_expression
../../gcc/gcc/cp/constexpr.c:3530
0x83a1b8 cxx_eval_constant_expression
../../gcc/gcc/cp/constexpr.c:4051
0x83c629 cxx_eval_constant_expression
../../gcc/gcc/cp/constexpr.c:4063
0x83ab94 cxx_eval_statement_list
../../gcc/gcc/cp/constexpr.c:3738
0x83ab94 cxx_eval_constant_expression
../../gcc/gcc/cp/constexpr.c:4434
0x83ad22 cxx_eval_constant_expression
../../gcc/gcc/cp/constexpr.c:4440
0x8390f2 cxx_eval_call_expression
../../gcc/gcc/cp/constexpr.c:1641
0x83ad43 cxx_eval_constant_expression
../../gcc/gcc/cp/constexpr.c:3973
0x840ace cxx_eval_outermost_constant_expr
../../gcc/gcc/cp/constexpr.c:4615
0x844194 maybe_constant_init(tree_node*, tree_node*)
../../gcc/gcc/cp/constexpr.c:4938
0x6b4c64 store_init_value(tree_node*, tree_node*, vec<tree_node*, va_gc,
vl_embed>**, int)
../../gcc/gcc/cp/typeck2.c:819
Please submit a full bug report, [etc.]
More information about the Gcc-bugs
mailing list