Commit 5d972e66 by Richard Biener Committed by Richard Biener

re PR c/79684 (Conditional jump or move depends on uninitialised value in GIMPLE FE)

2017-02-23  Richard Biener  <rguenther@suse.de>

	PR c/79684
	* gimple-parser.c (c_parser_gimple_statement): Use set_error
	to initialize c_exprs to return.
	(c_parser_gimple_binary_expression): Likewise.
	(c_parser_gimple_unary_expression): Likewise.
	(c_parser_gimple_postfix_expression): Likewise.

From-SVN: r245681
parent f3ffa342
2017-02-23 Richard Biener <rguenther@suse.de>
PR c/79684
* gimple-parser.c (c_parser_gimple_statement): Use set_error
to initialize c_exprs to return.
(c_parser_gimple_binary_expression): Likewise.
(c_parser_gimple_unary_expression): Likewise.
(c_parser_gimple_postfix_expression): Likewise.
2017-02-22 Marek Polacek <polacek@redhat.com> 2017-02-22 Marek Polacek <polacek@redhat.com>
PR c/79662 PR c/79662
......
...@@ -270,7 +270,7 @@ c_parser_gimple_statement (c_parser *parser, gimple_seq *seq) ...@@ -270,7 +270,7 @@ c_parser_gimple_statement (c_parser *parser, gimple_seq *seq)
lhs = c_parser_gimple_unary_expression (parser); lhs = c_parser_gimple_unary_expression (parser);
loc = EXPR_LOCATION (lhs.value); loc = EXPR_LOCATION (lhs.value);
rhs.value = error_mark_node; rhs.set_error ();
/* GIMPLE call statement without LHS. */ /* GIMPLE call statement without LHS. */
if (c_parser_next_token_is (parser, CPP_SEMICOLON) if (c_parser_next_token_is (parser, CPP_SEMICOLON)
...@@ -455,7 +455,7 @@ c_parser_gimple_binary_expression (c_parser *parser) ...@@ -455,7 +455,7 @@ c_parser_gimple_binary_expression (c_parser *parser)
/* Location of the binary operator. */ /* Location of the binary operator. */
struct c_expr ret, lhs, rhs; struct c_expr ret, lhs, rhs;
enum tree_code code = ERROR_MARK; enum tree_code code = ERROR_MARK;
ret.value = error_mark_node; ret.set_error ();
lhs = c_parser_gimple_postfix_expression (parser); lhs = c_parser_gimple_postfix_expression (parser);
if (c_parser_error (parser)) if (c_parser_error (parser))
return ret; return ret;
...@@ -553,9 +553,7 @@ c_parser_gimple_unary_expression (c_parser *parser) ...@@ -553,9 +553,7 @@ c_parser_gimple_unary_expression (c_parser *parser)
struct c_expr ret, op; struct c_expr ret, op;
location_t op_loc = c_parser_peek_token (parser)->location; location_t op_loc = c_parser_peek_token (parser)->location;
location_t finish; location_t finish;
ret.original_code = ERROR_MARK; ret.set_error ();
ret.original_type = NULL;
ret.value = error_mark_node;
switch (c_parser_peek_token (parser)->type) switch (c_parser_peek_token (parser)->type)
{ {
case CPP_AND: case CPP_AND:
...@@ -723,11 +721,10 @@ c_parser_parse_ssa_name (c_parser *parser, ...@@ -723,11 +721,10 @@ c_parser_parse_ssa_name (c_parser *parser,
static struct c_expr static struct c_expr
c_parser_gimple_postfix_expression (c_parser *parser) c_parser_gimple_postfix_expression (c_parser *parser)
{ {
struct c_expr expr;
location_t loc = c_parser_peek_token (parser)->location; location_t loc = c_parser_peek_token (parser)->location;
source_range tok_range = c_parser_peek_token (parser)->get_range (); source_range tok_range = c_parser_peek_token (parser)->get_range ();
expr.original_code = ERROR_MARK; struct c_expr expr;
expr.original_type = NULL; expr.set_error ();
switch (c_parser_peek_token (parser)->type) switch (c_parser_peek_token (parser)->type)
{ {
case CPP_NUMBER: case CPP_NUMBER:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment