aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/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/cp/decl.c
parent4d6baa57a4398c6cebf196780553cfd9de953e2f (diff)
downloadgcc-b97d81535d07cfb6d1275f9c83d88af0dec96cd0.zip
gcc-b97d81535d07cfb6d1275f9c83d88af0dec96cd0.tar.gz
gcc-b97d81535d07cfb6d1275f9c83d88af0dec96cd0.tar.bz2
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/cp/decl.c')
-rw-r--r--gcc/cp/decl.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index ccdcf37..66e8f42 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -4442,7 +4442,10 @@ layout_var_decl (tree decl)
if (TREE_CODE (DECL_SIZE (decl)) == INTEGER_CST)
constant_expression_warning (DECL_SIZE (decl));
else
- error ("storage size of %qD isn't constant", decl);
+ {
+ error ("storage size of %qD isn't constant", decl);
+ TREE_TYPE (decl) = error_mark_node;
+ }
}
}