diff options
author | Jakub Jelinek <jakub@gcc.gnu.org> | 2008-04-15 17:09:42 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2008-04-15 17:09:42 +0200 |
commit | b97d81535d07cfb6d1275f9c83d88af0dec96cd0 (patch) | |
tree | 4c40e08625acb5638671b72992b7c2e32dd985b5 /gcc/c-decl.c | |
parent | 4d6baa57a4398c6cebf196780553cfd9de953e2f (diff) | |
download | gcc-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.c | 5 |
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)) |