re PR bootstrap/79052 (bootstrap-ubsan failures due to warnings)

2017-01-11  Richard Biener  <rguenther@suse.de>

	PR bootstrap/79052
	* gimple-parser.c (c_parser_gimple_switch_stmt): Add missing
	returns on parse errors.

From-SVN: r244310
This commit is contained in:
Richard Biener 2017-01-11 11:26:59 +00:00 committed by Richard Biener
parent f3df0b3cde
commit e325277522
2 changed files with 103 additions and 95 deletions

View file

@ -1,3 +1,9 @@
2017-01-11 Richard Biener <rguenther@suse.de>
PR bootstrap/79052
* gimple-parser.c (c_parser_gimple_switch_stmt): Add missing
returns on parse errors.
2017-01-04 Marek Polacek <polacek@redhat.com> 2017-01-04 Marek Polacek <polacek@redhat.com>
PR c++/64767 PR c++/64767

View file

@ -1259,15 +1259,15 @@ c_parser_gimple_switch_stmt (c_parser *parser, gimple_seq *seq)
gimple_seq switch_body = NULL; gimple_seq switch_body = NULL;
c_parser_consume_token (parser); c_parser_consume_token (parser);
if (c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>")) if (! c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>"))
{ return;
cond_expr = c_parser_gimple_postfix_expression (parser); cond_expr = c_parser_gimple_postfix_expression (parser);
if (! c_parser_require (parser, CPP_CLOSE_PAREN, "expected %<)%>")) if (! c_parser_require (parser, CPP_CLOSE_PAREN, "expected %<)%>"))
return; return;
}
if (c_parser_require (parser, CPP_OPEN_BRACE, "expected %<{%>")) if (! c_parser_require (parser, CPP_OPEN_BRACE, "expected %<{%>"))
{ return;
while (c_parser_next_token_is_not (parser, CPP_CLOSE_BRACE)) while (c_parser_next_token_is_not (parser, CPP_CLOSE_BRACE))
{ {
if (c_parser_next_token_is (parser, CPP_EOF)) if (c_parser_next_token_is (parser, CPP_EOF))
@ -1288,7 +1288,10 @@ c_parser_gimple_switch_stmt (c_parser *parser, gimple_seq *seq)
|| c_parser_peek_token (parser)->type == CPP_NUMBER) || c_parser_peek_token (parser)->type == CPP_NUMBER)
exp1 = c_parser_gimple_postfix_expression (parser); exp1 = c_parser_gimple_postfix_expression (parser);
else else
{
c_parser_error (parser, "expected expression"); c_parser_error (parser, "expected expression");
return;
}
if (c_parser_next_token_is (parser, CPP_COLON)) if (c_parser_next_token_is (parser, CPP_COLON))
{ {
@ -1371,7 +1374,6 @@ c_parser_gimple_switch_stmt (c_parser *parser, gimple_seq *seq)
} }
} }
}
if (! c_parser_require (parser, CPP_CLOSE_BRACE, "expected %<}%>")) if (! c_parser_require (parser, CPP_CLOSE_BRACE, "expected %<}%>"))
return; return;
gimple_seq_add_stmt (seq, gimple_build_switch (cond_expr.value, gimple_seq_add_stmt (seq, gimple_build_switch (cond_expr.value,