aboutsummaryrefslogtreecommitdiff
path: root/gcc/c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2017-02-23 12:38:39 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2017-02-23 12:38:39 +0000
commit5d972e66ba61be501c98be1c6aa565d42c1737e5 (patch)
treeeb4ff64f1a5bc2b51736f879d007e709b701437d /gcc/c
parentf3ffa342ea53803bf276207aab5b0b6b1c420b45 (diff)
downloadgcc-5d972e66ba61be501c98be1c6aa565d42c1737e5.zip
gcc-5d972e66ba61be501c98be1c6aa565d42c1737e5.tar.gz
gcc-5d972e66ba61be501c98be1c6aa565d42c1737e5.tar.bz2
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
Diffstat (limited to 'gcc/c')
-rw-r--r--gcc/c/ChangeLog9
-rw-r--r--gcc/c/gimple-parser.c13
2 files changed, 14 insertions, 8 deletions
diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog
index 8283c82..70cfdc2 100644
--- a/gcc/c/ChangeLog
+++ b/gcc/c/ChangeLog
@@ -1,3 +1,12 @@
+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>
PR c/79662
diff --git a/gcc/c/gimple-parser.c b/gcc/c/gimple-parser.c
index cb2b6af..0d6384b 100644
--- a/gcc/c/gimple-parser.c
+++ b/gcc/c/gimple-parser.c
@@ -270,7 +270,7 @@ c_parser_gimple_statement (c_parser *parser, gimple_seq *seq)
lhs = c_parser_gimple_unary_expression (parser);
loc = EXPR_LOCATION (lhs.value);
- rhs.value = error_mark_node;
+ rhs.set_error ();
/* GIMPLE call statement without LHS. */
if (c_parser_next_token_is (parser, CPP_SEMICOLON)
@@ -455,7 +455,7 @@ c_parser_gimple_binary_expression (c_parser *parser)
/* Location of the binary operator. */
struct c_expr ret, lhs, rhs;
enum tree_code code = ERROR_MARK;
- ret.value = error_mark_node;
+ ret.set_error ();
lhs = c_parser_gimple_postfix_expression (parser);
if (c_parser_error (parser))
return ret;
@@ -553,9 +553,7 @@ c_parser_gimple_unary_expression (c_parser *parser)
struct c_expr ret, op;
location_t op_loc = c_parser_peek_token (parser)->location;
location_t finish;
- ret.original_code = ERROR_MARK;
- ret.original_type = NULL;
- ret.value = error_mark_node;
+ ret.set_error ();
switch (c_parser_peek_token (parser)->type)
{
case CPP_AND:
@@ -723,11 +721,10 @@ c_parser_parse_ssa_name (c_parser *parser,
static struct c_expr
c_parser_gimple_postfix_expression (c_parser *parser)
{
- struct c_expr expr;
location_t loc = c_parser_peek_token (parser)->location;
source_range tok_range = c_parser_peek_token (parser)->get_range ();
- expr.original_code = ERROR_MARK;
- expr.original_type = NULL;
+ struct c_expr expr;
+ expr.set_error ();
switch (c_parser_peek_token (parser)->type)
{
case CPP_NUMBER: