https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81055
Bug ID: 81055 Summary: [5/6/7/8 Regression] ICE with invalid initializer for array new Product: gcc Version: 8.0 Status: UNCONFIRMED Keywords: error-recovery, ice-on-invalid-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 invalid code snippet (compiled with -std=c++0x) triggers an ICE since GCC 4.7.0: ============================== int** p = new int*[1]{q}; ============================== bug.cc:1:23: error: 'q' was not declared in this scope int** p = new int*[1]{q}; ^ bug.cc: In function 'void __static_initialization_and_destruction_0(int, int)': bug.cc:1:24: internal compiler error: tree check: expected class 'type', have 'exceptional' (error_mark) in useless_type_conversion_p, at gimple-expr.c:84 int** p = new int*[1]{q}; ^ 0x5d3be5 tree_class_check_failed(tree_node const*, tree_code_class, char const*, int, char const*) ../../gcc/gcc/tree.c:9909 0xacd134 tree_class_check(tree_node*, tree_code_class, char const*, int, char const*) ../../gcc/gcc/tree.h:3206 0xacd134 useless_type_conversion_p(tree_node*, tree_node*) ../../gcc/gcc/gimple-expr.c:84 0xb0c901 gimplify_modify_expr ../../gcc/gcc/gimplify.c:5443 0xafaee2 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../gcc/gcc/gimplify.c:11297 0xafdc08 gimplify_stmt(tree_node**, gimple**) ../../gcc/gcc/gimplify.c:6521 0xafa6ca gimplify_cleanup_point_expr ../../gcc/gcc/gimplify.c:6265 0xafa6ca gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../gcc/gcc/gimplify.c:11673 0xafdc08 gimplify_stmt(tree_node**, gimple**) ../../gcc/gcc/gimplify.c:6521 0xaf944b gimplify_statement_list ../../gcc/gcc/gimplify.c:1721 0xaf944b gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../gcc/gcc/gimplify.c:11725 0xafdc08 gimplify_stmt(tree_node**, gimple**) ../../gcc/gcc/gimplify.c:6521 0xaf977c gimplify_and_add(tree_node*, gimple**) ../../gcc/gcc/gimplify.c:438 0xaf977c gimplify_loop_expr ../../gcc/gcc/gimplify.c:1695 0xaf977c gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../gcc/gcc/gimplify.c:11501 0xafdc08 gimplify_stmt(tree_node**, gimple**) ../../gcc/gcc/gimplify.c:6521 0xaf944b gimplify_statement_list ../../gcc/gcc/gimplify.c:1721 0xaf944b gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../gcc/gcc/gimplify.c:11725 0xafdc08 gimplify_stmt(tree_node**, gimple**) ../../gcc/gcc/gimplify.c:6521 0xaf944b gimplify_statement_list ../../gcc/gcc/gimplify.c:1721 Please submit a full bug report, [etc.]