https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100326
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Keywords| |ice-on-invalid-code Status|UNCONFIRMED |NEW Last reconfirmed| |2021-04-29 --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- Confirmed. #0 0x0000000000d66842 in cp_parser_pragma_unroll (parser=0x7ffff65977b8, pragma_tok=0x7ffff7f2f0c8) at /home/rguenther/src/gcc3/gcc/cp/parser.c:44896 44896 if (!INTEGRAL_TYPE_P (TREE_TYPE (expr)) (gdb) l 44891 location_t location = cp_lexer_peek_token (parser->lexer)->location; 44892 tree expr = cp_parser_constant_expression (parser); 44893 unsigned short unroll; 44894 expr = maybe_constant_value (expr); 44895 HOST_WIDE_INT lunroll = 0; 44896 if (!INTEGRAL_TYPE_P (TREE_TYPE (expr)) 44897 || TREE_CODE (expr) != INTEGER_CST 44898 || (lunroll = tree_to_shwi (expr)) < 0 44899 || lunroll >= USHRT_MAX) 44900 { (gdb) p debug_tree (expr) <call_expr 0x7ffff66dc990 fn <parm_decl 0x7ffff66de000 v type <template_type_parm 0x7ffff66ccf18 T type_0 type_6 VOID align:8 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0x7ffff66ccf18 index 0 level 1 orig_level 1 chain <type_decl 0x7ffff6597850 T>> used VOID t.ii:1:31 align:8 warn_if_not_align:0 context <function_decl 0x7ffff66cde00 f>> t.ii:2:25 start: t.ii:2:24 finish: t.ii:2:26> so we parsed this to an invalid GENERIC CALL_EXPR with a NULL TREE_TYPE (gdb) p expr->typed.type $3 = <tree 0x0> it should have at least been error_mark_node (or void_type_node).