diff options
Diffstat (limited to 'gcc/gimplify.cc')
-rw-r--r-- | gcc/gimplify.cc | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/gcc/gimplify.cc b/gcc/gimplify.cc index 91640de..0e24b91 100644 --- a/gcc/gimplify.cc +++ b/gcc/gimplify.cc @@ -12479,7 +12479,7 @@ gimplify_adjust_omp_clauses_1 (splay_tree_node n, void *data) kind = GOMP_MAP_FORCE_PRESENT; break; case GOVD_MAP_FORCE_PRESENT | GOVD_MAP_ALLOC_ONLY: - kind = GOMP_MAP_PRESENT_ALLOC; + kind = GOMP_MAP_FORCE_PRESENT; break; default: gcc_unreachable (); @@ -12797,6 +12797,17 @@ gimplify_adjust_omp_clauses (gimple_seq *pre_p, gimple_seq body, tree *list_p, break; case OMP_CLAUSE_MAP: + switch (OMP_CLAUSE_MAP_KIND (c)) + { + case GOMP_MAP_PRESENT_ALLOC: + case GOMP_MAP_PRESENT_TO: + case GOMP_MAP_PRESENT_FROM: + case GOMP_MAP_PRESENT_TOFROM: + OMP_CLAUSE_SET_MAP_KIND (c, GOMP_MAP_FORCE_PRESENT); + break; + default: + break; + } if (code == OMP_TARGET_EXIT_DATA && OMP_CLAUSE_MAP_KIND (c) == GOMP_MAP_ALWAYS_POINTER) { |