diff --git gcc/ChangeLog.gomp gcc/ChangeLog.gomp
index 77c7899..e858e78 100644
--- gcc/ChangeLog.gomp
+++ gcc/ChangeLog.gomp
@@ -1,3 +1,8 @@
+2017-05-17  Thomas Schwinge  <thomas@codesourcery.com>
+
+	* gimplify.c (gimplify_oacc_declare_1) <GOMP_MAP_ALLOC>: Use
+	"GOMP_MAP_RELEASE".
+
 2017-05-16  Cesar Philippidis  <cesar@codesourcery.com>
 
 	* doc/include/texinfo.tex: Backport @title linewrap changes from
diff --git gcc/c/ChangeLog.gomp gcc/c/ChangeLog.gomp
index eca8379..c70003f 100644
--- gcc/c/ChangeLog.gomp
+++ gcc/c/ChangeLog.gomp
@@ -1,3 +1,8 @@
+2017-05-17  Thomas Schwinge  <thomas@codesourcery.com>
+
+	* c-parser.c (c_parser_oacc_data_clause)
+	<PRAGMA_OACC_CLAUSE_DELETE>: Use "GOMP_MAP_RELEASE".
+
 2017-05-16  Chung-Lin Tang  <cltang@codesourcery.com>
 
 	* c-parser.c (c_parser_omp_clause_name):  Handle 'finalize' clause.
diff --git gcc/c/c-parser.c gcc/c/c-parser.c
index 17045ef..34f8b17 100644
--- gcc/c/c-parser.c
+++ gcc/c/c-parser.c
@@ -10805,7 +10805,7 @@ c_parser_oacc_data_clause (c_parser *parser, pragma_omp_clause c_kind,
       kind = GOMP_MAP_ALLOC;
       break;
     case PRAGMA_OACC_CLAUSE_DELETE:
-      kind = GOMP_MAP_DELETE;
+      kind = GOMP_MAP_RELEASE;
       break;
     case PRAGMA_OACC_CLAUSE_DEVICE:
       kind = GOMP_MAP_FORCE_TO;
diff --git gcc/cp/ChangeLog.gomp gcc/cp/ChangeLog.gomp
index 3fa64ee..9a68194 100644
--- gcc/cp/ChangeLog.gomp
+++ gcc/cp/ChangeLog.gomp
@@ -1,3 +1,8 @@
+2017-05-17  Thomas Schwinge  <thomas@codesourcery.com>
+
+	* parser.c (cp_parser_oacc_data_clause)
+	<PRAGMA_OACC_CLAUSE_DELETE>: Use "GOMP_MAP_RELEASE".
+
 2017-05-16  Chung-Lin Tang  <cltang@codesourcery.com>
 
 	* parser.c (cp_parser_omp_clause_name): Handle 'finalize' clause.
diff --git gcc/cp/parser.c gcc/cp/parser.c
index c0fe65d..cbb11d0 100644
--- gcc/cp/parser.c
+++ gcc/cp/parser.c
@@ -30222,7 +30222,7 @@ cp_parser_oacc_data_clause (cp_parser *parser, pragma_omp_clause c_kind,
       kind = GOMP_MAP_ALLOC;
       break;
     case PRAGMA_OACC_CLAUSE_DELETE:
-      kind = GOMP_MAP_DELETE;
+      kind = GOMP_MAP_RELEASE;
       break;
     case PRAGMA_OACC_CLAUSE_DEVICE:
       kind = GOMP_MAP_FORCE_TO;
diff --git gcc/fortran/ChangeLog.gomp gcc/fortran/ChangeLog.gomp
index 03bc82e..b3e4f8d 100644
--- gcc/fortran/ChangeLog.gomp
+++ gcc/fortran/ChangeLog.gomp
@@ -1,5 +1,8 @@
 2017-05-17  Thomas Schwinge  <thomas@codesourcery.com>
 
+	* openmp.c (gfc_match_omp_clauses) <OMP_CLAUSE_DELETE>: Use
+	"OMP_MAP_RELEASE".
+
 	* openmp.c (gfc_match_omp_clauses): Handle "OMP_CLAUSE_DELETE"
 	just once.
 
diff --git gcc/fortran/openmp.c gcc/fortran/openmp.c
index 0992f0a..1d191d2 100644
--- gcc/fortran/openmp.c
+++ gcc/fortran/openmp.c
@@ -1149,7 +1149,7 @@ gfc_match_omp_clauses (gfc_omp_clauses **cp, omp_mask mask,
 	  if ((mask & OMP_CLAUSE_DELETE)
 	      && gfc_match ("delete ( ") == MATCH_YES
 	      && gfc_match_omp_map_clause (&c->lists[OMP_LIST_MAP],
-					   OMP_MAP_DELETE, true,
+					   OMP_MAP_RELEASE, true,
 					   allow_derived))
 	    continue;
 	  if ((mask & OMP_CLAUSE_DEPEND)
diff --git gcc/gimplify.c gcc/gimplify.c
index e6cdadc..7812471 100644
--- gcc/gimplify.c
+++ gcc/gimplify.c
@@ -8593,7 +8593,7 @@ gimplify_oacc_declare_1 (tree clause)
   switch (kind)
     {
       case GOMP_MAP_ALLOC:
-	new_op = GOMP_MAP_DELETE;
+	new_op = GOMP_MAP_RELEASE;
 	ret = true;
 	break;
 
diff --git libgomp/ChangeLog.gomp libgomp/ChangeLog.gomp
index 856bdf2..61d0358 100644
--- libgomp/ChangeLog.gomp
+++ libgomp/ChangeLog.gomp
@@ -1,3 +1,8 @@
+2017-05-17  Thomas Schwinge  <thomas@codesourcery.com>
+
+	* oacc-parallel.c (GOACC_enter_exit_data, GOACC_declare): Handle
+	"GOMP_MAP_RELEASE".
+
 2017-05-16  Cesar Philippidis  <cesar@codesourcery.com>
 
 	* libgomp.texi: Update OpenACC references to version 2.5. Add entries
diff --git libgomp/oacc-parallel.c libgomp/oacc-parallel.c
index a042aac..5b8435b 100644
--- libgomp/oacc-parallel.c
+++ libgomp/oacc-parallel.c
@@ -628,7 +628,8 @@ GOACC_enter_exit_data (int device, size_t mapnum,
 	  break;
 	}
 
-      if (kind == GOMP_MAP_DELETE
+      if (kind == GOMP_MAP_RELEASE
+	  || kind == GOMP_MAP_DELETE
 	  || kind == GOMP_MAP_FROM
 	  || kind == GOMP_MAP_FORCE_FROM
 	  || kind == GOMP_MAP_DECLARE_DEALLOCATE)
@@ -786,6 +787,7 @@ GOACC_enter_exit_data (int device, size_t mapnum,
 	  {
 	    switch (kind)
 	      {
+	      case GOMP_MAP_RELEASE:
 	      case GOMP_MAP_DELETE:
 		if (acc_is_present (hostaddrs[i], sizes[i]))
 		  {
@@ -1097,6 +1099,7 @@ GOACC_declare (int device, size_t mapnum,
 	  case GOMP_MAP_FORCE_FROM:
 	  case GOMP_MAP_FORCE_TO:
 	  case GOMP_MAP_POINTER:
+	  case GOMP_MAP_RELEASE:
 	  case GOMP_MAP_DELETE:
 	    GOACC_enter_exit_data (device, 1, &hostaddrs[i], &sizes[i],
 				   &kinds[i], 0, 0, 0);
