diff mbox series

[39/40] openacc: Check type for references in reduction lowering

Message ID 20211215155447.19379-40-frederik@codesourcery.com
State New
Headers show
Series OpenACC "kernels" Improvements | expand

Commit Message

Frederik Harwath Dec. 15, 2021, 3:54 p.m. UTC
gcc/ChangeLog:

        * omp-low.c (lower_oacc_reductions): Only create a reference
        if variable has pointer type.
---
 gcc/omp-low.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

--
2.33.0

-----------------
Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955
diff mbox series

Patch

diff --git a/gcc/omp-low.c b/gcc/omp-low.c
index ae5cdfc5e260..2b8b848ec03a 100644
--- a/gcc/omp-low.c
+++ b/gcc/omp-low.c
@@ -7639,9 +7639,10 @@  lower_oacc_reductions (location_t loc, tree clauses, tree level, bool inner,

        if (omp_privatize_by_reference (orig))
          {
-           outgoing = build_simple_mem_ref (outgoing);
+            if (POINTER_TYPE_P (TREE_TYPE (outgoing)))
+             outgoing = build_simple_mem_ref (outgoing);

-           if (!TREE_CONSTANT (incoming))
+            if (POINTER_TYPE_P (TREE_TYPE (incoming)))
              incoming = build_simple_mem_ref (incoming);
          }