Commit ad97f4be by Joseph Myers Committed by Joseph Myers

re PR c/17424 (ICE with sizeof an undeclared variable)

	PR c/17424
	* c-typeck.c (c_expr_sizeof_expr): Check for error_mark_node.

testsuite:
	* gcc.dg/pr17424-1.c: New test.

From-SVN: r87705
parent 5995ebfb
2004-09-18 Joseph S. Myers <jsm@polyomino.org.uk>
PR c/17424
* c-typeck.c (c_expr_sizeof_expr): Check for error_mark_node.
2004-09-18 Diego Novillo <dnovillo@redhat.com> 2004-09-18 Diego Novillo <dnovillo@redhat.com>
* tree-ssa-alias.c (setup_pointers_and_addressables): Don't * tree-ssa-alias.c (setup_pointers_and_addressables): Don't
......
...@@ -1855,9 +1855,18 @@ struct c_expr ...@@ -1855,9 +1855,18 @@ struct c_expr
c_expr_sizeof_expr (struct c_expr expr) c_expr_sizeof_expr (struct c_expr expr)
{ {
struct c_expr ret; struct c_expr ret;
ret.value = c_sizeof (TREE_TYPE (expr.value)); if (expr.value == error_mark_node)
ret.original_code = ERROR_MARK; {
pop_maybe_used (C_TYPE_VARIABLE_SIZE (TREE_TYPE (expr.value))); ret.value = error_mark_node;
ret.original_code = ERROR_MARK;
pop_maybe_used (false);
}
else
{
ret.value = c_sizeof (TREE_TYPE (expr.value));
ret.original_code = ERROR_MARK;
pop_maybe_used (C_TYPE_VARIABLE_SIZE (TREE_TYPE (expr.value)));
}
return ret; return ret;
} }
......
2004-09-18 Joseph S. Myers <jsm@polyomino.org.uk>
PR c/17424
* gcc.dg/pr17424-1.c: New test.
2004-09-18 Diego Novillo <dnovillo@redhat.com> 2004-09-18 Diego Novillo <dnovillo@redhat.com>
* g++.dg/tree-ssa/pr17153.C: New test. * g++.dg/tree-ssa/pr17153.C: New test.
......
/* Test for bug 17424: ICE for sizeof an undeclared variable. */
/* { dg-do compile } */
/* { dg-options "" } */
;int foezis = sizeof tni; /* { dg-error "'tni' undeclared" } */
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