From: Richard Biener Date: Mon, 28 Oct 2019 12:25:09 +0000 (+0000) Subject: re PR c/92249 (ICE in c_parser_gimple_compound_statement w/ GIMPLE testcases) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=cb73e4e734e2a3fb8034137806a7c676b5d5f366;p=gcc.git re PR c/92249 (ICE in c_parser_gimple_compound_statement w/ GIMPLE testcases) 2019-10-28 Richard Biener PR c/92249 * gimple-parser.c (c_parser_parse_gimple_body): Make current_bb the entry block initially to easier recover from errors. (c_parser_gimple_compound_statement): Adjust. From-SVN: r277512 --- diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog index e8518f27494..4b0511888b2 100644 --- a/gcc/c/ChangeLog +++ b/gcc/c/ChangeLog @@ -1,3 +1,11 @@ +2019-10-28 Richard Biener + + PR c/92249 + * gimple-parser.c (c_parser_parse_gimple_body): Make + current_bb the entry block initially to easier recover + from errors. + (c_parser_gimple_compound_statement): Adjust. + 2019-10-24 Jakub Jelinek * c-parser.c (c_finish_omp_declare_variant): Use diff --git a/gcc/c/gimple-parser.c b/gcc/c/gimple-parser.c index 3f575992d32..d8588d47462 100644 --- a/gcc/c/gimple-parser.c +++ b/gcc/c/gimple-parser.c @@ -235,6 +235,7 @@ c_parser_parse_gimple_body (c_parser *cparser, char *gimple_pass, /* We have at least cdil_gimple_cfg. */ gimple_register_cfg_hooks (); init_empty_tree_cfg (); + parser.current_bb = ENTRY_BLOCK_PTR_FOR_FN (cfun); /* Initialize the bare loop structure - we are going to only mark headers and leave the rest to fixup. */ set_loops_for_fn (cfun, ggc_cleared_alloc ()); @@ -594,7 +595,7 @@ c_parser_gimple_compound_statement (gimple_parser &parser, gimple_seq *seq) if (last_basic_block_for_fn (cfun) <= index) last_basic_block_for_fn (cfun) = index + 1; n_basic_blocks_for_fn (cfun)++; - if (!parser.current_bb) + if (parser.current_bb->index == ENTRY_BLOCK) parser.push_edge (ENTRY_BLOCK, bb->index, EDGE_FALLTHRU, profile_probability::always ());