diff options
author | Jakub Jelinek <jakub@redhat.com> | 2007-02-07 13:16:22 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2007-02-07 13:16:22 +0100 |
commit | e02a048f461136c26abbde5e609db372b0b692d6 (patch) | |
tree | 0dbce13b42cdf7ff6f06b7e4a999b86fadffd4f0 /gcc/gimplify.c | |
parent | ca6e5fe99408ffaec70249480e4fb7aaba3cd5a8 (diff) | |
download | gcc-e02a048f461136c26abbde5e609db372b0b692d6.zip gcc-e02a048f461136c26abbde5e609db372b0b692d6.tar.gz gcc-e02a048f461136c26abbde5e609db372b0b692d6.tar.bz2 |
re PR c++/30703 (ICE Segmentation fault on using OpenMP)
PR c++/30703
* gimplify.c (gimplify_scan_omp_clauses): Remove special casing
of INDIRECT_REF <RESULT_DECL>.
* cp-gimplify.c (cp_genericize_r): Don't dereference invisiref
parameters and result decls in omp clauses.
(cxx_omp_privatize_by_reference): Pass also invisiref PARM_DECLs
by reference.
* testsuite/libgomp.c++/pr30703.C: New test.
From-SVN: r121688
Diffstat (limited to 'gcc/gimplify.c')
-rw-r--r-- | gcc/gimplify.c | 10 |
1 files changed, 0 insertions, 10 deletions
diff --git a/gcc/gimplify.c b/gcc/gimplify.c index 1e99757..7ac43f4 100644 --- a/gcc/gimplify.c +++ b/gcc/gimplify.c @@ -4747,11 +4747,6 @@ gimplify_scan_omp_clauses (tree *list_p, tree *pre_p, bool in_parallel, remove = true; break; } - /* Handle NRV results passed by reference. */ - if (TREE_CODE (decl) == INDIRECT_REF - && TREE_CODE (TREE_OPERAND (decl, 0)) == RESULT_DECL - && DECL_BY_REFERENCE (TREE_OPERAND (decl, 0))) - OMP_CLAUSE_DECL (c) = decl = TREE_OPERAND (decl, 0); omp_add_variable (ctx, decl, flags); if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_REDUCTION && OMP_CLAUSE_REDUCTION_PLACEHOLDER (c)) @@ -4779,11 +4774,6 @@ gimplify_scan_omp_clauses (tree *list_p, tree *pre_p, bool in_parallel, remove = true; break; } - /* Handle NRV results passed by reference. */ - if (TREE_CODE (decl) == INDIRECT_REF - && TREE_CODE (TREE_OPERAND (decl, 0)) == RESULT_DECL - && DECL_BY_REFERENCE (TREE_OPERAND (decl, 0))) - OMP_CLAUSE_DECL (c) = decl = TREE_OPERAND (decl, 0); do_notice: if (outer_ctx) omp_notice_variable (outer_ctx, decl, true); |