diff options
author | Jakub Jelinek <jakub@redhat.com> | 2007-01-24 21:56:45 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2007-01-24 21:56:45 +0100 |
commit | 4288fea21277dfd56522378ce31ae2461a299303 (patch) | |
tree | 75c43a7ce945db56bb7724178a49aded220ffc57 /gcc/gimplify.c | |
parent | 3d55c64b495dd49e7b91b451837d93a380764af2 (diff) | |
download | gcc-4288fea21277dfd56522378ce31ae2461a299303.zip gcc-4288fea21277dfd56522378ce31ae2461a299303.tar.gz gcc-4288fea21277dfd56522378ce31ae2461a299303.tar.bz2 |
re PR middle-end/30494 (ICE with VLA and openmp)
PR middle-end/30494
* gimplify.c (omp_add_variable): Don't call omp_notice_variable
on TYPE_SIZE_UNIT for GOVD_LOCAL VLAs.
* gcc.dg/gomp/pr30494.c: New test.
* g++.dg/gomp/pr30494.C: New test.
* testsuite/libgomp.c/pr30494.c: New test.
From-SVN: r121132
Diffstat (limited to 'gcc/gimplify.c')
-rw-r--r-- | gcc/gimplify.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/gimplify.c b/gcc/gimplify.c index d14e01e..be02fb2 100644 --- a/gcc/gimplify.c +++ b/gcc/gimplify.c @@ -4505,8 +4505,11 @@ omp_add_variable (struct gimplify_omp_ctx *ctx, tree decl, unsigned int flags) /* We're going to make use of the TYPE_SIZE_UNIT at least in the alloca statement we generate for the variable, so make sure it is available. This isn't automatically needed for the SHARED - case, since we won't be allocating local storage then. */ - else + case, since we won't be allocating local storage then. + For local variables TYPE_SIZE_UNIT might not be gimplified yet, + in this case omp_notice_variable will be called later + on when it is gimplified. */ + else if (! (flags & GOVD_LOCAL)) omp_notice_variable (ctx, TYPE_SIZE_UNIT (TREE_TYPE (decl)), true); } else if (lang_hooks.decls.omp_privatize_by_reference (decl)) |