aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2015-11-11 16:09:23 +0000
committerJakub Jelinek <jakub@redhat.com>2015-11-11 16:09:23 +0000
commit3337b5d44e5b0769949f26d0750b2edd1e82c6a8 (patch)
treebdc685e2456b814322e0522204427a3436a2214c
parent7aa4572fa939e0ad826c867af32df6fcce794ae3 (diff)
c/
* c-typeck.c (c_finish_omp_clauses): Don't mark GOMP_MAP_FIRSTPRIVATE_POINTER decls addressable. cp/ * semantics.c (finish_omp_clauses): Don't mark GOMP_MAP_FIRSTPRIVATE_POINTER decls addressable. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_5-branch@230180 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/c/ChangeLog.gomp5
-rw-r--r--gcc/c/c-typeck.c5
-rw-r--r--gcc/cp/ChangeLog.gomp5
-rw-r--r--gcc/cp/semantics.c3
4 files changed, 17 insertions, 1 deletions
diff --git a/gcc/c/ChangeLog.gomp b/gcc/c/ChangeLog.gomp
index 4f8bfbb9f23..32f1293c092 100644
--- a/gcc/c/ChangeLog.gomp
+++ b/gcc/c/ChangeLog.gomp
@@ -1,3 +1,8 @@
+2015-11-11 Jakub Jelinek <jakub@redhat.com>
+
+ * c-typeck.c (c_finish_omp_clauses): Don't mark
+ GOMP_MAP_FIRSTPRIVATE_POINTER decls addressable.
+
2015-11-05 Jakub Jelinek <jakub@redhat.com>
* c-typeck.c (c_finish_omp_clauses): Formatting fix.
diff --git a/gcc/c/c-typeck.c b/gcc/c/c-typeck.c
index 2080db95ebc..82de75cc367 100644
--- a/gcc/c/c-typeck.c
+++ b/gcc/c/c-typeck.c
@@ -12855,7 +12855,10 @@ c_finish_omp_clauses (tree clauses, bool is_omp, bool declare_simd)
omp_clause_code_name[OMP_CLAUSE_CODE (c)]);
remove = true;
}
- else if (!c_mark_addressable (t))
+ else if ((OMP_CLAUSE_CODE (c) != OMP_CLAUSE_MAP
+ || (OMP_CLAUSE_MAP_KIND (c)
+ != GOMP_MAP_FIRSTPRIVATE_POINTER))
+ && !c_mark_addressable (t))
remove = true;
else if (!(OMP_CLAUSE_CODE (c) == OMP_CLAUSE_MAP
&& (OMP_CLAUSE_MAP_KIND (c) == GOMP_MAP_POINTER
diff --git a/gcc/cp/ChangeLog.gomp b/gcc/cp/ChangeLog.gomp
index f4756b4a88f..5888fddb660 100644
--- a/gcc/cp/ChangeLog.gomp
+++ b/gcc/cp/ChangeLog.gomp
@@ -1,3 +1,8 @@
+2015-11-11 Jakub Jelinek <jakub@redhat.com>
+
+ * semantics.c (finish_omp_clauses): Don't mark
+ GOMP_MAP_FIRSTPRIVATE_POINTER decls addressable.
+
2015-11-05 Jakub Jelinek <jakub@redhat.com>
* parser.c (cp_parser_omp_target_data,
diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c
index 7702a418b5b..5a1c4ebd672 100644
--- a/gcc/cp/semantics.c
+++ b/gcc/cp/semantics.c
@@ -6566,6 +6566,9 @@ finish_omp_clauses (tree clauses, bool allow_fields, bool declare_simd)
}
else if (!processing_template_decl
&& TREE_CODE (TREE_TYPE (t)) != REFERENCE_TYPE
+ && (OMP_CLAUSE_CODE (c) != OMP_CLAUSE_MAP
+ || (OMP_CLAUSE_MAP_KIND (c)
+ != GOMP_MAP_FIRSTPRIVATE_POINTER))
&& !cxx_mark_addressable (t))
remove = true;
else if (!(OMP_CLAUSE_CODE (c) == OMP_CLAUSE_MAP