aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/trans-openmp.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2007-11-28 20:43:03 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2007-11-28 20:43:03 +0100
commit36cefd39222098287e7bfbcfca5b2450673432fa (patch)
tree983d51c5ea1343eb0959c7bdd9ac398b2bed5efa /gcc/fortran/trans-openmp.c
parent1661473b7f96b42c272b8bf8945ece6b60a2d5b2 (diff)
downloadgcc-36cefd39222098287e7bfbcfca5b2450673432fa.zip
gcc-36cefd39222098287e7bfbcfca5b2450673432fa.tar.gz
gcc-36cefd39222098287e7bfbcfca5b2450673432fa.tar.bz2
re PR fortran/34247 (ICE in omp_add_variable, at gimplify.c:4677)
* trans-expr.c (gfc_trans_string_copy): Convert both dest and src to void *. PR fortran/34247 * trans-openmp.c (gfc_omp_privatize_by_reference): For REFERENCE_TYPE pass by reference only PARM_DECLs or non-artificial decls. From-SVN: r130492
Diffstat (limited to 'gcc/fortran/trans-openmp.c')
-rw-r--r--gcc/fortran/trans-openmp.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/fortran/trans-openmp.c b/gcc/fortran/trans-openmp.c
index 047c2b82..ea595a0 100644
--- a/gcc/fortran/trans-openmp.c
+++ b/gcc/fortran/trans-openmp.c
@@ -44,7 +44,8 @@ gfc_omp_privatize_by_reference (const_tree decl)
{
tree type = TREE_TYPE (decl);
- if (TREE_CODE (type) == REFERENCE_TYPE)
+ if (TREE_CODE (type) == REFERENCE_TYPE
+ && (!DECL_ARTIFICIAL (decl) || TREE_CODE (decl) == PARM_DECL))
return true;
if (TREE_CODE (type) == POINTER_TYPE)