https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93314
Bug ID: 93314 Summary: Invalid use of non-static data member causes ICE in gimplify_expr Product: gcc Version: 10.0 Status: UNCONFIRMED Keywords: ice-on-invalid-code Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: language.lawyer at gmail dot com Target Milestone: --- int main() { struct S { int m; }; return sizeof(char[S::m]); } $ g++ prog.cc prog.cc: In function 'int main()': prog.cc:4:27: internal compiler error: in gimplify_expr, at gimplify.c:14581 4 | return sizeof(char[S::m]); | ~~~^ 0x5c6160 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../source/gcc/gimplify.c:14581 0x9a7434 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../source/gcc/gimplify.c:13885 0x9a7de0 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../source/gcc/gimplify.c:13702 0x9aa19f gimplify_compound_lval ../../source/gcc/gimplify.c:3064 0x9a6c00 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../source/gcc/gimplify.c:13533 0x9a7434 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../source/gcc/gimplify.c:13885 0x9a7129 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../source/gcc/gimplify.c:14348 0x9abfb0 internal_get_tmp_var ../../source/gcc/gimplify.c:619 0x9ac749 get_initialized_tmp_var(tree_node*, gimple**, gimple**, bool) ../../source/gcc/gimplify.c:674 0x9ac749 gimplify_save_expr ../../source/gcc/gimplify.c:6072 0x9a7621 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../source/gcc/gimplify.c:13881 0x9a7434 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../source/gcc/gimplify.c:13885 0x9a7129 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../source/gcc/gimplify.c:14348 0x9a7434 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../source/gcc/gimplify.c:13885 0x9b1ecb gimplify_modify_expr ../../source/gcc/gimplify.c:5765 0x9a73a2 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../source/gcc/gimplify.c:13581 0x9acc8e gimplify_stmt(tree_node**, gimple**) ../../source/gcc/gimplify.c:6822 0x9acc8e gimplify_and_add(tree_node*, gimple**) ../../source/gcc/gimplify.c:486 0x9acc8e gimplify_return_expr ../../source/gcc/gimplify.c:1667 0x9a8303 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../source/gcc/gimplify.c:13842 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions. (https://wandbox.org/permlink/GNNTjXAK2pQ5clUt) I've selectively checked about some of g++ versions, from 4.4.7 to HEAD, on wandbox.org. They're all crashing, just segfaulting before 5.1.0 and ICEing in gimplify_expr starting from 5.1.0.