summaryrefslogtreecommitdiff
path: root/gcc/c-decl.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@gcc.gnu.org>2008-04-15 17:09:42 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2008-04-15 17:09:42 +0200
commitb97d81535d07cfb6d1275f9c83d88af0dec96cd0 (patch)
tree4c40e08625acb5638671b72992b7c2e32dd985b5 /gcc/c-decl.c
parent4d6baa57a4398c6cebf196780553cfd9de953e2f (diff)
downloadgcc-b97d81535d07cfb6d1275f9c83d88af0dec96cd0.tar.gz
re PR c/35751 (ICE with invalid variable after #pragma omp parallel)
PR c/35751 * c-decl.c (finish_decl): If extern or static var has variable size, set TREE_TYPE (decl) to error_mark_node. * decl.c (layout_var_decl): If extern or static var has variable size, set TREE_TYPE (decl) to error_mark_node. * gcc.dg/gomp/pr35751.c: New test. * g++.dg/gomp/pr35751.C: New test. From-SVN: r134317
Diffstat (limited to 'gcc/c-decl.c')
-rw-r--r--gcc/c-decl.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/c-decl.c b/gcc/c-decl.c
index 22491aaec6a..872fb8af30b 100644
--- a/gcc/c-decl.c
+++ b/gcc/c-decl.c
@@ -3481,7 +3481,10 @@ finish_decl (tree decl, tree init, tree asmspec_tree)
if (TREE_CODE (DECL_SIZE (decl)) == INTEGER_CST)
constant_expression_warning (DECL_SIZE (decl));
else
- error ("storage size of %q+D isn%'t constant", decl);
+ {
+ error ("storage size of %q+D isn%'t constant", decl);
+ TREE_TYPE (decl) = error_mark_node;
+ }
}
if (TREE_USED (type))