diff --git a/gcc/gimplify.c b/gcc/gimplify.c
index d60fc95db0100e96a274ab78b17968022b1a18b8..3ca29cedad89f06e2afbe758bcc9836c9e4be2fa 100644
--- a/gcc/gimplify.c
+++ b/gcc/gimplify.c
@@ -9014,6 +9014,7 @@ gimplify_scan_omp_clauses (tree *list_p, gimple_seq *pre_p,
 		 lastprivate and perhaps firstprivate too on the
 		 parallel.  Similarly for #pragma omp for simd.  */
 	      struct gimplify_omp_ctx *octx = outer_ctx;
+	      bool taskloop_seen = false;
 	      decl = NULL_TREE;
 	      do
 		{
@@ -9045,11 +9046,12 @@ gimplify_scan_omp_clauses (tree *list_p, gimple_seq *pre_p,
 		  else if (octx
 			   && (octx->region_type & ORT_TASK) != 0
 			   && octx->combined_loop)
-		    ;
+		    taskloop_seen = true;
 		  else if (octx
 			   && octx->region_type == ORT_COMBINED_PARALLEL
-			   && ctx->region_type == ORT_WORKSHARE
-			   && octx == outer_ctx)
+			   && ((ctx->region_type == ORT_WORKSHARE
+				&& octx == outer_ctx)
+			       || taskloop_seen))
 		    flags = GOVD_SEEN | GOVD_SHARED;
 		  else if (octx
 			   && ((octx->region_type & ORT_COMBINED_TEAMS)
diff --git a/gcc/testsuite/c-c++-common/gomp/pr99928-1.c b/gcc/testsuite/c-c++-common/gomp/pr99928-1.c
index 37181fdeaa81b287b7aff6c560d8dfe691e71ef7..b4aa8dd61ecd07ec93410d30f697e85d172bdc30 100644
--- a/gcc/testsuite/c-c++-common/gomp/pr99928-1.c
+++ b/gcc/testsuite/c-c++-common/gomp/pr99928-1.c
@@ -12,14 +12,14 @@ foo (void)
   /* { dg-final { scan-tree-dump "omp distribute\[^\n\r]*firstprivate\\(f00\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f00\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f00\\)" "gimple" } } *//* FIXME.  */
-  #pragma omp distribute parallel for firstprivate (f00)
+  #pragma omp distribute parallel for firstprivate (f00) default(none)
   for (int i = 0; i < 64; i++)
     f00++;
   /* { dg-final { scan-tree-dump "omp distribute\[^\n\r]*firstprivate\\(f01\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f01\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f01\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(f01\\)" "gimple" } } */
-  #pragma omp distribute parallel for simd firstprivate (f01)
+  #pragma omp distribute parallel for simd firstprivate (f01) default(none)
   for (int i = 0; i < 64; i++)
     f01++;
   /* { dg-final { scan-tree-dump "omp distribute\[^\n\r]*firstprivate\\(f02\\)" "gimple" } } */
@@ -40,53 +40,53 @@ bar (void)
     f03++;
   /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*firstprivate\\(f04\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*firstprivate\\(f04\\)" "gimple" } } */
-  #pragma omp master taskloop firstprivate (f04)
+  #pragma omp master taskloop firstprivate (f04) default(none)
   for (int i = 0; i < 64; i++)
     f04++;
   /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*firstprivate\\(f05\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*firstprivate\\(f05\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(f05\\)" "gimple" } } */
-  #pragma omp master taskloop simd firstprivate (f05)
+  #pragma omp master taskloop simd firstprivate (f05) default(none)
   for (int i = 0; i < 64; i++)
     f05++;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f06\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f06\\)" "gimple" } } *//* FIXME.  */
-  #pragma omp parallel for firstprivate (f06)
+  #pragma omp parallel for firstprivate (f06) default(none)
   for (int i = 0; i < 64; i++)
     f06++;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f07\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f07\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(f07\\)" "gimple" } } */
-  #pragma omp parallel for simd firstprivate (f07)
+  #pragma omp parallel for simd firstprivate (f07) default(none)
   for (int i = 0; i < 64; i++)
     f07++;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f08\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f08\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(f08\\)" "gimple" } } */
-  #pragma omp parallel loop firstprivate (f08)
+  #pragma omp parallel loop firstprivate (f08) default(none)
   for (int i = 0; i < 64; i++)
     f08++;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f09\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*firstprivate\\(f09\\)" "gimple" } } */
-  #pragma omp parallel master firstprivate (f09)
+  #pragma omp parallel master firstprivate (f09) default(none)
   f09++;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(f10\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*firstprivate\\(f10\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*firstprivate\\(f10\\)" "gimple" } } */
-  #pragma omp parallel master taskloop firstprivate (f10)
+  #pragma omp parallel master taskloop firstprivate (f10) default(none)
   for (int i = 0; i < 64; i++)
     f10++;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(f11\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*firstprivate\\(f11\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*firstprivate\\(f11\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(f11\\)" "gimple" } } */
-  #pragma omp parallel master taskloop simd firstprivate (f11)
+  #pragma omp parallel master taskloop simd firstprivate (f11) default(none)
   for (int i = 0; i < 64; i++)
     f11++;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f12\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp sections\[^\n\r]*firstprivate\\(f12\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp section \[^\n\r]*firstprivate\\(f12\\)" "gimple" } } */
-  #pragma omp parallel sections firstprivate (f12)
+  #pragma omp parallel sections firstprivate (f12) default(none)
   {
     f12++;
     #pragma omp section
@@ -94,36 +94,36 @@ bar (void)
   }
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*firstprivate\\(f13\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f13\\)" "gimple" } } */
-  #pragma omp target parallel firstprivate (f13)
+  #pragma omp target parallel firstprivate (f13) default(none) defaultmap(none)
   f13++;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*firstprivate\\(f14\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f14\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f14\\)" "gimple" } } *//* FIXME.  */
-  #pragma omp target parallel for firstprivate (f14)
+  #pragma omp target parallel for firstprivate (f14) default(none) defaultmap(none)
   for (int i = 0; i < 64; i++)
     f14++;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*firstprivate\\(f15\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f15\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f15\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(f15\\)" "gimple" } } */
-  #pragma omp target parallel for simd firstprivate (f15)
+  #pragma omp target parallel for simd firstprivate (f15) default(none) defaultmap(none)
   for (int i = 0; i < 64; i++)
     f15++;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*firstprivate\\(f16\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f16\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f16\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(f16\\)" "gimple" } } */
-  #pragma omp target parallel loop firstprivate (f16)
+  #pragma omp target parallel loop firstprivate (f16) default(none) defaultmap(none)
   for (int i = 0; i < 64; i++)
     f16++;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*firstprivate\\(f17\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*firstprivate\\(f17\\)" "gimple" } } */
-  #pragma omp target teams firstprivate (f17)
+  #pragma omp target teams firstprivate (f17) default(none) defaultmap(none)
   f17++;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*firstprivate\\(f18\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*firstprivate\\(f18\\)" "gimple" } } *//* FIXME: This should be on distribute instead.  */
   /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*firstprivate\\(f18\\)" "gimple" } } *//* FIXME.  */
-  #pragma omp target teams distribute firstprivate (f18)
+  #pragma omp target teams distribute firstprivate (f18) default(none) defaultmap(none)
   for (int i = 0; i < 64; i++)
     f18++;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*firstprivate\\(f19\\)" "gimple" } } */
@@ -131,7 +131,7 @@ bar (void)
   /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*firstprivate\\(f19\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f19\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f19\\)" "gimple" } } *//* FIXME.  */
-  #pragma omp target teams distribute parallel for firstprivate (f19)
+  #pragma omp target teams distribute parallel for firstprivate (f19) default(none) defaultmap(none)
   for (int i = 0; i < 64; i++)
     f19++;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*firstprivate\\(f20\\)" "gimple" } } */
@@ -140,14 +140,14 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f20\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f20\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(f20\\)" "gimple" } } */
-  #pragma omp target teams distribute parallel for simd firstprivate (f20)
+  #pragma omp target teams distribute parallel for simd firstprivate (f20) default(none) defaultmap(none)
   for (int i = 0; i < 64; i++)
     f20++;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*firstprivate\\(f21\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*firstprivate\\(f21\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*firstprivate\\(f21\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(f21\\)" "gimple" } } */
-  #pragma omp target teams distribute simd firstprivate (f21)
+  #pragma omp target teams distribute simd firstprivate (f21) default(none) defaultmap(none)
   for (int i = 0; i < 64; i++)
     f21++;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*firstprivate\\(f22\\)" "gimple" } } */
@@ -156,29 +156,29 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(f22\\)" "gimple" } } *//* NOTE: This is an implementation detail.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f22\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(f22\\)" "gimple" } } */
-  #pragma omp target teams loop firstprivate (f22)
+  #pragma omp target teams loop firstprivate (f22) default(none) defaultmap(none)
   for (int i = 0; i < 64; i++)
     f22++;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*firstprivate\\(f23\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(f23\\)" "gimple" } } */
-  #pragma omp target simd firstprivate (f23)
+  #pragma omp target simd firstprivate (f23) defaultmap(none)
   for (int i = 0; i < 64; i++)
     f23++;
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*firstprivate\\(f24\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(f24\\)" "gimple" } } */
-  #pragma omp taskloop simd firstprivate (f24)
+  #pragma omp taskloop simd firstprivate (f24) default(none)
   for (int i = 0; i < 64; i++)
     f24++;
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*firstprivate\\(f25\\)" "gimple" } } *//* FIXME: This should be on distribute instead.  */
   /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*firstprivate\\(f25\\)" "gimple" } } *//* FIXME.  */
-  #pragma omp teams distribute firstprivate (f25)
+  #pragma omp teams distribute firstprivate (f25) default(none)
   for (int i = 0; i < 64; i++)
     f25++;
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*firstprivate\\(f26\\)" "gimple" } } *//* FIXME: This should be on distribute instead.  */
   /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*firstprivate\\(f26\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f26\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f26\\)" "gimple" } } *//* FIXME.  */
-  #pragma omp teams distribute parallel for firstprivate (f26)
+  #pragma omp teams distribute parallel for firstprivate (f26) default(none)
   for (int i = 0; i < 64; i++)
     f26++;
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*firstprivate\\(f27\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
@@ -186,13 +186,13 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f27\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f27\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(f27\\)" "gimple" } } */
-  #pragma omp teams distribute parallel for simd firstprivate (f27)
+  #pragma omp teams distribute parallel for simd firstprivate (f27) default(none)
   for (int i = 0; i < 64; i++)
     f27++;
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*firstprivate\\(f28\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*firstprivate\\(f28\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(f28\\)" "gimple" } } */
-  #pragma omp teams distribute simd firstprivate (f28)
+  #pragma omp teams distribute simd firstprivate (f28) default(none)
   for (int i = 0; i < 64; i++)
     f28++;
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*firstprivate\\(f29\\)" "gimple" } } */
@@ -200,7 +200,7 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(f29\\)" "gimple" } } *//* NOTE: This is an implementation detail.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f29\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(f29\\)" "gimple" } } */
-  #pragma omp teams loop firstprivate (f29)
+  #pragma omp teams loop firstprivate (f29) default(none)
   for (int i = 0; i < 64; i++)
     f29++;
 }
diff --git a/gcc/testsuite/c-c++-common/gomp/pr99928-10.c b/gcc/testsuite/c-c++-common/gomp/pr99928-10.c
index 6c44600b07e42a0e0a68641d31ac6e5df1f6fa81..4366863c5793b1dbcefbca8f4f9bff3ddf206e88 100644
--- a/gcc/testsuite/c-c++-common/gomp/pr99928-10.c
+++ b/gcc/testsuite/c-c++-common/gomp/pr99928-10.c
@@ -13,14 +13,14 @@ foo (void)
   /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r00 \\+ 4" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r00 \\+ 4" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r00 \\+ 4" "gimple" } } *//* FIXME.  */
-  #pragma omp distribute parallel for reduction(+:r00[1:2])
+  #pragma omp distribute parallel for reduction(+:r00[1:2]) default(none)
   for (int i = 0; i < 64; i++)
     r00[1]++;
   /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r01 \\+ 4" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r01 \\+ 4" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r01 \\+ 4" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r01 \\+ 4" "gimple" } } */
-  #pragma omp distribute parallel for simd reduction(+:r01[1:3])
+  #pragma omp distribute parallel for simd reduction(+:r01[1:3]) default(none)
   for (int i = 0; i < 64; i++)
     r01[1]++;
   /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r02 \\+ 4" "gimple" } } */
@@ -43,53 +43,53 @@ bar (void)
     r03[1]++;
   /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r04 \\+ 4" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r04 \\+ 4" "gimple" } } */
-  #pragma omp master taskloop reduction(+:r04[1:6])
+  #pragma omp master taskloop reduction(+:r04[1:6]) default(none)
   for (int i = 0; i < 64; i++)
     r04[1]++;
   /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r05 \\+ 4" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r05 \\+ 4" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r05 \\+ 4" "gimple" } } */
-  #pragma omp master taskloop simd reduction(+:r05[1:7])
+  #pragma omp master taskloop simd reduction(+:r05[1:7]) default(none)
   for (int i = 0; i < 64; i++)
     r05[1]++;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r06 \\+ 4" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r06 \\+ 4" "gimple" } } *//* FIXME.  */
-  #pragma omp parallel for reduction(+:r06[1:8])
+  #pragma omp parallel for reduction(+:r06[1:8]) default(none)
   for (int i = 0; i < 64; i++)
     r06[1]++;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r07 \\+ 4" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r07 \\+ 4" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r07 \\+ 4" "gimple" } } */
-  #pragma omp parallel for simd reduction(+:r07[1:9])
+  #pragma omp parallel for simd reduction(+:r07[1:9]) default(none)
   for (int i = 0; i < 64; i++)
     r07[1]++;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(r08\\)" "gimple" } } *//* FIXME: Should be shared, but firstprivate is an optimization.  */
   /* { dg-final { scan-tree-dump "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r08 \\+ 4" "gimple" } } *//* NOTE: This is implementation detail.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r08 \\+ 4" "gimple" } } *//* NOTE: This is implementation detail.  */
-  #pragma omp parallel loop reduction(+:r08[1:10])
+  #pragma omp parallel loop reduction(+:r08[1:10]) default(none)
   for (int i = 0; i < 64; i++)
     r08[1]++;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r09 \\+ 4" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r09 \\+ 4" "gimple" } } */
-  #pragma omp parallel master reduction(+:r09[1:11])
+  #pragma omp parallel master reduction(+:r09[1:11]) default(none)
   r09[1]++;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(r10\\)" "gimple" } } *//* FIXME: Should be shared, but firstprivate is an optimization.  */
   /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r10 \\+ 4" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r10 \\+ 4" "gimple" } } */
-  #pragma omp parallel master taskloop reduction(+:r10[1:12])
+  #pragma omp parallel master taskloop reduction(+:r10[1:12]) default(none)
   for (int i = 0; i < 64; i++)
     r10[1]++;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(r11\\)" "gimple" } } *//* FIXME: Should be shared, but firstprivate is an optimization.  */
   /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r11 \\+ 4" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r11 \\+ 4" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r11 \\+ 4" "gimple" } } */
-  #pragma omp parallel master taskloop simd reduction(+:r11[1:13])
+  #pragma omp parallel master taskloop simd reduction(+:r11[1:13]) default(none)
   for (int i = 0; i < 64; i++)
     r11[1]++;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r12 \\+ 4" "gimple" } } *//* FIXME: This should be on sections instead.  */
   /* { dg-final { scan-tree-dump-not "omp sections\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r12 \\+ 4" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump-not "omp section \[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r12 \\+ 4" "gimple" } } */
-  #pragma omp parallel sections reduction(+:r12[1:14])
+  #pragma omp parallel sections reduction(+:r12[1:14]) default(none)
   {
     r12[1]++;
     #pragma omp section
@@ -99,14 +99,14 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(firstprivate:r13 \\\[pointer assign, bias: 4\\\]\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(r13\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r13 \\+ 4" "gimple" } } */
-  #pragma omp target parallel reduction(+:r13[1:15])
+  #pragma omp target parallel reduction(+:r13[1:15]) default(none) defaultmap(none)
   r13[1]++;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:\\\*_\[0-9]* \\\[len: 64\\\]" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(firstprivate:r14 \\\[pointer assign, bias: 4\\\]\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(r14" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r14 \\+ 4" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r14 \\+ 4" "gimple" } } *//* FIXME.  */
-  #pragma omp target parallel for reduction(+:r14[1:16])
+  #pragma omp target parallel for reduction(+:r14[1:16]) default(none) defaultmap(none)
   for (int i = 0; i < 64; i++)
     r14[1]++;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:\\\*_\[0-9]* \\\[len: 68\\\]" "gimple" } } */
@@ -115,7 +115,7 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r15 \\+ 4" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r15 \\+ 4" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r15 \\+ 4" "gimple" } } */
-  #pragma omp target parallel for simd reduction(+:r15[1:17])
+  #pragma omp target parallel for simd reduction(+:r15[1:17]) default(none) defaultmap(none)
   for (int i = 0; i < 64; i++)
     r15[1]++;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:\\\*_\[0-9]* \\\[len: 72\\\]" "gimple" } } */
@@ -124,21 +124,21 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(r16\\)" "gimple" } } *//* FIXME: Should be shared, but firstprivate is an optimization.  */
   /* { dg-final { scan-tree-dump "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r16 \\+ 4" "gimple" } } *//* NOTE: This is implementation detail.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r16 \\+ 4" "gimple" } } *//* NOTE: This is implementation detail.  */
-  #pragma omp target parallel loop reduction(+:r16[1:18])
+  #pragma omp target parallel loop reduction(+:r16[1:18]) default(none) defaultmap(none)
   for (int i = 0; i < 64; i++)
     r16[1]++;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:\\\*_\[0-9]* \\\[len: 76\\\]" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(firstprivate:r17 \\\[pointer assign, bias: 4\\\]\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(r17\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r17 \\+ 4" "gimple" } } */
-  #pragma omp target teams reduction(+:r17[1:19])
+  #pragma omp target teams reduction(+:r17[1:19]) default(none) defaultmap(none)
   r17[1]++;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:\\\*_\[0-9]* \\\[len: 80\\\]" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(firstprivate:r18 \\\[pointer assign, bias: 4\\\]\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(r18\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r18 \\+ 4" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r18 \\+ 4" "gimple" } } */
-  #pragma omp target teams distribute reduction(+:r18[1:20])
+  #pragma omp target teams distribute reduction(+:r18[1:20]) default(none) defaultmap(none)
   for (int i = 0; i < 64; i++)
     r18[1]++;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:\\\*_\[0-9]* \\\[len: 84\\\]" "gimple" } } */
@@ -148,7 +148,7 @@ bar (void)
   /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r19 \\+ 4" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r19 \\+ 4" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r19 \\+ 4" "gimple" } } *//* FIXME.  */
-  #pragma omp target teams distribute parallel for reduction(+:r19[1:21])
+  #pragma omp target teams distribute parallel for reduction(+:r19[1:21]) default(none) defaultmap(none)
   for (int i = 0; i < 64; i++)
     r19[1]++;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:\\\*_\[0-9]* \\\[len: 88\\\]" "gimple" } } */
@@ -159,7 +159,7 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r20 \\+ 4" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r20 \\+ 4" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r20 \\+ 4" "gimple" } } */
-  #pragma omp target teams distribute parallel for simd reduction(+:r20[1:22])
+  #pragma omp target teams distribute parallel for simd reduction(+:r20[1:22]) default(none) defaultmap(none)
   for (int i = 0; i < 64; i++)
     r20[1]++;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:\\\*_\[0-9]* \\\[len: 92\\\]" "gimple" } } */
@@ -168,7 +168,7 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r21 \\+ 4" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r21 \\+ 4" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r21 \\+ 4" "gimple" } } */
-  #pragma omp target teams distribute simd reduction(+:r21[1:23])
+  #pragma omp target teams distribute simd reduction(+:r21[1:23]) default(none) defaultmap(none)
   for (int i = 0; i < 64; i++)
     r21[1]++;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:\\\*_\[0-9]* \\\[len: 96\\\]" "gimple" } } */
@@ -179,31 +179,31 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(r22\\)" "gimple" } } *//* NOTE: This is implementation detail.  */
   /* { dg-final { scan-tree-dump "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r22 \\+ 4" "gimple" } } *//* NOTE: This is implementation detail.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r22 \\+ 4" "gimple" } } *//* NOTE: This is implementation detail.  */
-  #pragma omp target teams loop reduction(+:r22[1:24])
+  #pragma omp target teams loop reduction(+:r22[1:24]) default(none) defaultmap(none)
   for (int i = 0; i < 64; i++)
     r22[1]++;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:\\\*_\[0-9]* \\\[len: 100\\\]" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(firstprivate:r23 \\\[pointer assign, bias: 4\\\]\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(r23\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r23 \\+ 4" "gimple" } } */
-  #pragma omp target simd reduction(+:r23[1:25])
+  #pragma omp target simd reduction(+:r23[1:25]) defaultmap(none)
   for (int i = 0; i < 64; i++)
     r23[1]++;
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r24 \\+ 4" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r24 \\+ 4" "gimple" } } */
-  #pragma omp taskloop simd reduction(+:r24[1:26])
+  #pragma omp taskloop simd reduction(+:r24[1:26]) default(none)
   for (int i = 0; i < 64; i++)
     r24[1]++;
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r25 \\+ 4" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r25 \\+ 4" "gimple" } } */
-  #pragma omp teams distribute reduction(+:r25[1:27])
+  #pragma omp teams distribute reduction(+:r25[1:27]) default(none)
   for (int i = 0; i < 64; i++)
     r25[1]++;
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r26 \\+ 4" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r26 \\+ 4" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r26 \\+ 4" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r26 \\+ 4" "gimple" } } *//* FIXME.  */
-  #pragma omp teams distribute parallel for reduction(+:r26[1:28])
+  #pragma omp teams distribute parallel for reduction(+:r26[1:28]) default(none)
   for (int i = 0; i < 64; i++)
     r26[1]++;
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r27 \\+ 4" "gimple" } } */
@@ -211,13 +211,13 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r27 \\+ 4" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r27 \\+ 4" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r27 \\+ 4" "gimple" } } */
-  #pragma omp teams distribute parallel for simd reduction(+:r27[1:29])
+  #pragma omp teams distribute parallel for simd reduction(+:r27[1:29]) default(none)
   for (int i = 0; i < 64; i++)
     r27[1]++;
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r28 \\+ 4" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r28 \\+ 4" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r28 \\+ 4" "gimple" } } */
-  #pragma omp teams distribute simd reduction(+:r28[1:30])
+  #pragma omp teams distribute simd reduction(+:r28[1:30]) default(none)
   for (int i = 0; i < 64; i++)
     r28[1]++;
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*firstprivate\\(r29\\)" "gimple" } } *//* FIXME: Should be shared, but firstprivate is an optimization.  */
@@ -225,7 +225,7 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(r29\\)" "gimple" } } *//* NOTE: This is implementation detail.  */
   /* { dg-final { scan-tree-dump "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r29 \\+ 4" "gimple" } } *//* NOTE: This is implementation detail.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r29 \\+ 4" "gimple" } } *//* NOTE: This is implementation detail.  */
-  #pragma omp teams loop reduction(+:r29[1:31])
+  #pragma omp teams loop reduction(+:r29[1:31]) default(none)
   for (int i = 0; i < 64; i++)
     r29[1]++;
 }
diff --git a/gcc/testsuite/c-c++-common/gomp/pr99928-13.c b/gcc/testsuite/c-c++-common/gomp/pr99928-13.c
index d5d8d789adf73ed5526274a1dffcd17980e4462c..d45417fec8aaa5ea1f50571c6173e00504d8d94a 100644
--- a/gcc/testsuite/c-c++-common/gomp/pr99928-13.c
+++ b/gcc/testsuite/c-c++-common/gomp/pr99928-13.c
@@ -16,7 +16,7 @@ foo (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(j00b\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp for\[^\n\r]*lastprivate\\(j00b\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j00b\\)" "gimple" } } */
-  #pragma omp distribute parallel for simd collapse(2) lastprivate (j00a, j00b)
+  #pragma omp distribute parallel for simd collapse(2) lastprivate (j00a, j00b) default(none)
   for (j00a = 0; j00a < 64; j00a++)
     for (j00b = 0; j00b < 4; j00b++)
       ;
@@ -50,7 +50,7 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(j03b\\)" "gimple" } } *//* NOTE: This is implementation detail.  */
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(j03b\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j03b\\)" "gimple" } } */
-  #pragma omp master taskloop simd collapse(2) lastprivate (j03a, j03b)
+  #pragma omp master taskloop simd collapse(2) lastprivate (j03a, j03b) default(none)
   for (j03a = 0; j03a < 64; j03a++)
     for (j03b = 0; j03b < 4; j03b++)
       ;
@@ -60,7 +60,7 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(j04b\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp for\[^\n\r]*lastprivate\\(j04b\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j04b\\)" "gimple" } } */
-  #pragma omp parallel for simd collapse(2) lastprivate (j04a, j04b)
+  #pragma omp parallel for simd collapse(2) lastprivate (j04a, j04b) default(none)
   for (j04a = 0; j04a < 64; j04a++)
     for (j04b = 0; j04b < 4; j04b++)
       ;
@@ -74,7 +74,7 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(j05b\\)" "gimple" } } *//* NOTE: This is implementation detail.  */
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(j05b\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j05b\\)" "gimple" } } */
-  #pragma omp parallel master taskloop simd collapse(2) lastprivate (j05a, j05b)
+  #pragma omp parallel master taskloop simd collapse(2) lastprivate (j05a, j05b) default(none)
   for (j05a = 0; j05a < 64; j05a++)
     for (j05b = 0; j05b < 4; j05b++)
       ;
@@ -88,7 +88,7 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(j06b\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp for\[^\n\r]*lastprivate\\(j06b\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j06b\\)" "gimple" } } */
-  #pragma omp target parallel for simd collapse(2) lastprivate (j06a, j06b)
+  #pragma omp target parallel for simd collapse(2) lastprivate (j06a, j06b) default(none) defaultmap(none)
   for (j06a = 0; j06a < 64; j06a++)
     for (j06b = 0; j06b < 4; j06b++)
       ;
@@ -98,7 +98,7 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:j07b" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(j07b\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j07b\\)" "gimple" } } */
-  #pragma omp target simd collapse(2) lastprivate (j07a, j07b)
+  #pragma omp target simd collapse(2) lastprivate (j07a, j07b) defaultmap(none)
   for (j07a = 0; j07a < 64; j07a++)
     for (j07b = 0; j07b < 4; j07b++)
       ;
@@ -116,7 +116,7 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(j08b\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp for\[^\n\r]*lastprivate\\(j08b\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j08b\\)" "gimple" } } */
-  #pragma omp target teams distribute parallel for simd collapse(2) lastprivate (j08a, j08b)
+  #pragma omp target teams distribute parallel for simd collapse(2) lastprivate (j08a, j08b) default(none) defaultmap(none)
   for (j08a = 0; j08a < 64; j08a++)
     for (j08b = 0; j08b < 4; j08b++)
       ;
@@ -130,7 +130,7 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(j09b\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(j09b\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j09b\\)" "gimple" } } */
-  #pragma omp target teams distribute simd collapse(2) lastprivate (j09a, j09b)
+  #pragma omp target teams distribute simd collapse(2) lastprivate (j09a, j09b) default(none) defaultmap(none)
   for (j09a = 0; j09a < 64; j09a++)
     for (j09b = 0; j09b < 4; j09b++)
       ;
@@ -140,7 +140,7 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(j10b\\)" "gimple" } } *//* NOTE: This is implementation detail.  */
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(j10b\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j10b\\)" "gimple" } } */
-  #pragma omp taskloop simd collapse(2) lastprivate (j10a, j10b)
+  #pragma omp taskloop simd collapse(2) lastprivate (j10a, j10b) default(none)
   for (j10a = 0; j10a < 64; j10a++)
     for (j10b = 0; j10b < 4; j10b++)
       ;
@@ -154,7 +154,7 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(j11b\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp for\[^\n\r]*lastprivate\\(j11b\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j11b\\)" "gimple" } } */
-  #pragma omp teams distribute parallel for simd collapse(2) lastprivate (j11a, j11b)
+  #pragma omp teams distribute parallel for simd collapse(2) lastprivate (j11a, j11b) default(none)
   for (j11a = 0; j11a < 64; j11a++)
     for (j11b = 0; j11b < 4; j11b++)
       ;
@@ -164,7 +164,7 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(j12b\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(j12b\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j12b\\)" "gimple" } } */
-  #pragma omp teams distribute simd collapse(2) lastprivate (j12a, j12b)
+  #pragma omp teams distribute simd collapse(2) lastprivate (j12a, j12b) default(none)
   for (j12a = 0; j12a < 64; j12a++)
     for (j12b = 0; j12b < 4; j12b++)
       ;
diff --git a/gcc/testsuite/c-c++-common/gomp/pr99928-14.c b/gcc/testsuite/c-c++-common/gomp/pr99928-14.c
index 2d9e0be5d885bffece72791d2c0b0025f3d5ffb6..2df78919de94938ec6d8f6f32a19814ceb115ab3 100644
--- a/gcc/testsuite/c-c++-common/gomp/pr99928-14.c
+++ b/gcc/testsuite/c-c++-common/gomp/pr99928-14.c
@@ -16,7 +16,7 @@ foo (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j00b\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j00b\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j00b\\)" "gimple" } } */
-  #pragma omp distribute parallel for simd collapse(2)
+  #pragma omp distribute parallel for simd collapse(2) default(none)
   for (j00a = 0; j00a < 64; j00a++)
     for (j00b = 0; j00b < 4; j00b++)
       ;
@@ -50,7 +50,7 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(j03b\\)" "gimple" } } *//* NOTE: This is implementation detail.  */
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(j03b\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j03b\\)" "gimple" } } */
-  #pragma omp master taskloop simd collapse(2)
+  #pragma omp master taskloop simd collapse(2) default(none)
   for (j03a = 0; j03a < 64; j03a++)
     for (j03b = 0; j03b < 4; j03b++)
       ;
@@ -60,7 +60,7 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j04b\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j04b\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j04b\\)" "gimple" } } */
-  #pragma omp parallel for simd collapse(2)
+  #pragma omp parallel for simd collapse(2) default(none)
   for (j04a = 0; j04a < 64; j04a++)
     for (j04b = 0; j04b < 4; j04b++)
       ;
@@ -74,7 +74,7 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(j05b\\)" "gimple" } } *//* NOTE: This is implementation detail.  */
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(j05b\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j05b\\)" "gimple" } } */
-  #pragma omp parallel master taskloop simd collapse(2)
+  #pragma omp parallel master taskloop simd collapse(2) default(none)
   for (j05a = 0; j05a < 64; j05a++)
     for (j05b = 0; j05b < 4; j05b++)
       ;
@@ -88,7 +88,7 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j06b\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j06b\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j06b\\)" "gimple" } } */
-  #pragma omp target parallel for simd collapse(2)
+  #pragma omp target parallel for simd collapse(2) default(none) defaultmap(none)
   for (j06a = 0; j06a < 64; j06a++)
     for (j06b = 0; j06b < 4; j06b++)
       ;
@@ -98,7 +98,7 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:j07b" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(j07b\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j07b\\)" "gimple" } } */
-  #pragma omp target simd collapse(2)
+  #pragma omp target simd collapse(2) defaultmap(none)
   for (j07a = 0; j07a < 64; j07a++)
     for (j07b = 0; j07b < 4; j07b++)
       ;
@@ -116,7 +116,7 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j08b\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j08b\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j08b\\)" "gimple" } } */
-  #pragma omp target teams distribute parallel for simd collapse(2)
+  #pragma omp target teams distribute parallel for simd collapse(2) default(none) defaultmap(none)
   for (j08a = 0; j08a < 64; j08a++)
     for (j08b = 0; j08b < 4; j08b++)
       ;
@@ -130,7 +130,7 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(j09b\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(j09b\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j09b\\)" "gimple" } } */
-  #pragma omp target teams distribute simd collapse(2)
+  #pragma omp target teams distribute simd collapse(2) default(none) defaultmap(none)
   for (j09a = 0; j09a < 64; j09a++)
     for (j09b = 0; j09b < 4; j09b++)
       ;
@@ -140,7 +140,7 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(j10b\\)" "gimple" } } *//* NOTE: This is implementation detail.  */
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(j10b\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j10b\\)" "gimple" } } */
-  #pragma omp taskloop simd collapse(2)
+  #pragma omp taskloop simd collapse(2) default(none)
   for (j10a = 0; j10a < 64; j10a++)
     for (j10b = 0; j10b < 4; j10b++)
       ;
@@ -154,7 +154,7 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j11b\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j11b\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j11b\\)" "gimple" } } */
-  #pragma omp teams distribute parallel for simd collapse(2)
+  #pragma omp teams distribute parallel for simd collapse(2) default(none)
   for (j11a = 0; j11a < 64; j11a++)
     for (j11b = 0; j11b < 4; j11b++)
       ;
@@ -164,7 +164,7 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(j12b\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(j12b\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j12b\\)" "gimple" } } */
-  #pragma omp teams distribute simd collapse(2)
+  #pragma omp teams distribute simd collapse(2) default(none)
   for (j12a = 0; j12a < 64; j12a++)
     for (j12b = 0; j12b < 4; j12b++)
       ;
diff --git a/gcc/testsuite/c-c++-common/gomp/pr99928-2.c b/gcc/testsuite/c-c++-common/gomp/pr99928-2.c
index 6ba3d46907c662a16d632badb064bd698e8a604d..1af9bd2c4be245636de1dbdf199a8c8a627607f0 100644
--- a/gcc/testsuite/c-c++-common/gomp/pr99928-2.c
+++ b/gcc/testsuite/c-c++-common/gomp/pr99928-2.c
@@ -11,14 +11,14 @@ foo (void)
   /* { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(l00\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l00\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l00\\)" "gimple" } } *//* FIXME.  */
-  #pragma omp distribute parallel for lastprivate (l00)
+  #pragma omp distribute parallel for lastprivate (l00) default(none)
   for (int i = 0; i < 64; i++)
     l00 = i;
   /* { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(l01\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l01\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l01\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(l01\\)" "gimple" } } */
-  #pragma omp distribute parallel for simd lastprivate (l01)
+  #pragma omp distribute parallel for simd lastprivate (l01) default(none)
   for (int i = 0; i < 64; i++)
     l01 = i;
   /* { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(l02\\)" "gimple" } } */
@@ -41,38 +41,38 @@ bar (void)
   /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*lastprivate\\(l04\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(l04\\)" "gimple" } } *//* NOTE: This is implementation detail.  */
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(l04\\)" "gimple" } } */
-  #pragma omp master taskloop lastprivate (l04)
+  #pragma omp master taskloop lastprivate (l04) default(none)
   for (int i = 0; i < 64; i++)
     l04 = i;
   /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*lastprivate\\(l05\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(l05\\)" "gimple" } } *//* NOTE: This is implementation detail.  */
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(l05\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(l05\\)" "gimple" } } */
-  #pragma omp master taskloop simd lastprivate (l05)
+  #pragma omp master taskloop simd lastprivate (l05) default(none)
   for (int i = 0; i < 64; i++)
     l05 = i;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l06\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l06\\)" "gimple" } } *//* FIXME.  */
-  #pragma omp parallel for lastprivate (l06)
+  #pragma omp parallel for lastprivate (l06) default(none)
   for (int i = 0; i < 64; i++)
     l06 = i;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l07\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l07\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(l07\\)" "gimple" } } */
-  #pragma omp parallel for simd lastprivate (l07)
+  #pragma omp parallel for simd lastprivate (l07) default(none)
   for (int i = 0; i < 64; i++)
     l07 = i;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(j00\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp for\[^\n\r]*lastprivate\\(j00\\)" "gimple" } } *//* NOTE: This is implementation detail.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j00\\)" "gimple" } } *//* NOTE: This is implementation detail.  */
-  #pragma omp parallel loop lastprivate (j00)
+  #pragma omp parallel loop lastprivate (j00) default(none)
   for (j00 = 0; j00 < 64; j00++)
     ;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(l08\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*lastprivate\\(l08\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(l08\\)" "gimple" } } *//* NOTE: This is implementation detail.  */
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(l08\\)" "gimple" } } */
-  #pragma omp parallel master taskloop lastprivate (l08)
+  #pragma omp parallel master taskloop lastprivate (l08) default(none)
   for (int i = 0; i < 64; i++)
     l08 = i;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(l09\\)" "gimple" } } */
@@ -80,13 +80,13 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(l09\\)" "gimple" } } *//* NOTE: This is implementation detail.  */
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(l09\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(l09\\)" "gimple" } } */
-  #pragma omp parallel master taskloop simd lastprivate (l09)
+  #pragma omp parallel master taskloop simd lastprivate (l09) default(none)
   for (int i = 0; i < 64; i++)
     l09 = i;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l10\\)" "gimple" } } *//* FIXME: This should be on sections instead.  */
   /* { dg-final { scan-tree-dump-not "omp sections\[^\n\r]*lastprivate\\(l10\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump-not "omp section \[^\n\r]*lastprivate\\(l10\\)" "gimple" } } */
-  #pragma omp parallel sections lastprivate (l10)
+  #pragma omp parallel sections lastprivate (l10) default(none)
   {
     l10 = 1;
     #pragma omp section
@@ -96,7 +96,7 @@ bar (void)
   /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(l11\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l11\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l11\\)" "gimple" } } *//* FIXME.  */
-  #pragma omp target parallel for lastprivate (l11)
+  #pragma omp target parallel for lastprivate (l11) default(none) defaultmap(none)
   for (int i = 0; i < 64; i++)
     l11 = i;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:l12" "gimple" } } */
@@ -104,7 +104,7 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l12\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l12\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(l12\\)" "gimple" } } */
-  #pragma omp target parallel for simd lastprivate (l12)
+  #pragma omp target parallel for simd lastprivate (l12) default(none) defaultmap(none)
   for (int i = 0; i < 64; i++)
     l12 = i;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:j01" "gimple" } } */
@@ -112,14 +112,14 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(j01\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp for\[^\n\r]*lastprivate\\(j01\\)" "gimple" } } *//* NOTE: This is implementation detail.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j01\\)" "gimple" } } *//* NOTE: This is implementation detail.  */
-  #pragma omp target parallel loop lastprivate (j01)
+  #pragma omp target parallel loop lastprivate (j01) default(none) defaultmap(none)
   for (j01 = 0; j01 < 64; j01++)
     ;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:l13" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(l13\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(l13\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(l13\\)" "gimple" } } */
-  #pragma omp target teams distribute lastprivate (l13)
+  #pragma omp target teams distribute lastprivate (l13) default(none) defaultmap(none)
   for (int i = 0; i < 64; i++)
     l13 = i;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:l14" "gimple" } } */
@@ -128,7 +128,7 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(l14\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l14\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l14\\)" "gimple" } } *//* FIXME.  */
-  #pragma omp target teams distribute parallel for lastprivate (l14)
+  #pragma omp target teams distribute parallel for lastprivate (l14) default(none) defaultmap(none)
   for (int i = 0; i < 64; i++)
     l14 = i;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:l15" "gimple" } } */
@@ -138,7 +138,7 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l15\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l15\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(l15\\)" "gimple" } } */
-  #pragma omp target teams distribute parallel for simd lastprivate (l15)
+  #pragma omp target teams distribute parallel for simd lastprivate (l15) default(none) defaultmap(none)
   for (int i = 0; i < 64; i++)
     l15 = i;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:l16" "gimple" } } */
@@ -146,7 +146,7 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(l16\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(l16\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(l16\\)" "gimple" } } */
-  #pragma omp target teams distribute simd lastprivate (l16)
+  #pragma omp target teams distribute simd lastprivate (l16) default(none) defaultmap(none)
   for (int i = 0; i < 64; i++)
     l16 = i;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:j02" "gimple" } } */
@@ -156,31 +156,31 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(j02\\)" "gimple" } } *//* NOTE: This is implementation detail.  */
   /* { dg-final { scan-tree-dump "omp for\[^\n\r]*lastprivate\\(j02\\)" "gimple" } } *//* NOTE: This is implementation detail.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j02\\)" "gimple" } } *//* NOTE: This is implementation detail.  */
-  #pragma omp target teams loop lastprivate (j02)
+  #pragma omp target teams loop lastprivate (j02) default(none) defaultmap(none)
   for (j02 = 0; j02 < 64; j02++)
     ;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:l17" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(l17\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(l17\\)" "gimple" } } */
-  #pragma omp target simd lastprivate (l17)
+  #pragma omp target simd lastprivate (l17) defaultmap(none)
   for (int i = 0; i < 64; i++)
     l17 = i;
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(l18\\)" "gimple" } } *//* NOTE: This is implementation detail.  */
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(l18\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(l18\\)" "gimple" } } */
-  #pragma omp taskloop simd lastprivate (l18)
+  #pragma omp taskloop simd lastprivate (l18) default(none)
   for (int i = 0; i < 64; i++)
     l18 = i;
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(l19\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(l19\\)" "gimple" } } */
-  #pragma omp teams distribute lastprivate (l19)
+  #pragma omp teams distribute lastprivate (l19) default(none)
   for (int i = 0; i < 64; i++)
     l19 = i;
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(l20\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(l20\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l20\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l20\\)" "gimple" } } *//* FIXME.  */
- #pragma omp teams distribute parallel for lastprivate (l20)
+ #pragma omp teams distribute parallel for lastprivate (l20) default(none)
   for (int i = 0; i < 64; i++)
     l20 = i;
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(l21\\)" "gimple" } } */
@@ -188,13 +188,13 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l21\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l21\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(l21\\)" "gimple" } } */
- #pragma omp teams distribute parallel for simd lastprivate (l21)
+ #pragma omp teams distribute parallel for simd lastprivate (l21) default(none)
   for (int i = 0; i < 64; i++)
     l21 = i;
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(l22\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(l22\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(l22\\)" "gimple" } } */
-  #pragma omp teams distribute simd lastprivate (l22)
+  #pragma omp teams distribute simd lastprivate (l22) default(none)
   for (int i = 0; i < 64; i++)
     l22 = i;
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(j03\\)" "gimple" } } */
@@ -202,7 +202,7 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(j03\\)" "gimple" } } *//* NOTE: This is implementation detail.  */
   /* { dg-final { scan-tree-dump "omp for\[^\n\r]*lastprivate\\(j03\\)" "gimple" } } *//* NOTE: This is implementation detail.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j03\\)" "gimple" } } *//* NOTE: This is implementation detail.  */
-  #pragma omp teams loop lastprivate (j03)
+  #pragma omp teams loop lastprivate (j03) default(none)
   for (j03 = 0; j03 < 64; j03++)
     ;
 }
diff --git a/gcc/testsuite/c-c++-common/gomp/pr99928-3.c b/gcc/testsuite/c-c++-common/gomp/pr99928-3.c
index cf9c72d75b88f06c9df740d04e5915f75fae70ab..8e8cf938ef6c5bd805a922fb5f45601c521ed18f 100644
--- a/gcc/testsuite/c-c++-common/gomp/pr99928-3.c
+++ b/gcc/testsuite/c-c++-common/gomp/pr99928-3.c
@@ -20,7 +20,7 @@ bar (void)
   /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*lastprivate\\(l01\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*firstprivate\\(l01\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(l01\\)" "gimple" } } */
-  #pragma omp master taskloop firstprivate (l01) lastprivate (l01)
+  #pragma omp master taskloop firstprivate (l01) lastprivate (l01) default(none)
   for (int i = 0; i < 64; i++)
     l01 = i;
   /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*firstprivate\\(l02\\)" "gimple" } } */
@@ -29,14 +29,14 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(l02\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(l02\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(l02\\)" "gimple" } } */
-  #pragma omp master taskloop simd firstprivate (l02) lastprivate (l02)
+  #pragma omp master taskloop simd firstprivate (l02) lastprivate (l02) default(none)
   for (int i = 0; i < 64; i++)
     l02 = i;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(l03\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l03\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(l03\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l03\\)" "gimple" } } *//* FIXME.  */
-  #pragma omp parallel for firstprivate (l03) lastprivate (l03)
+  #pragma omp parallel for firstprivate (l03) lastprivate (l03) default(none)
   for (int i = 0; i < 64; i++)
     l03 = i;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(l04\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
@@ -45,7 +45,7 @@ bar (void)
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l04\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(l04\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(l04\\)" "gimple" } } */
-  #pragma omp parallel for simd firstprivate (l04) lastprivate (l04)
+  #pragma omp parallel for simd firstprivate (l04) lastprivate (l04) default(none)
   for (int i = 0; i < 64; i++)
     l04 = i;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(l05\\)" "gimple" } } */
@@ -53,7 +53,7 @@ bar (void)
   /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*lastprivate\\(l05\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*firstprivate\\(l05\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(l05\\)" "gimple" } } */
-  #pragma omp parallel master taskloop firstprivate (l05) lastprivate (l05)
+  #pragma omp parallel master taskloop firstprivate (l05) lastprivate (l05) default(none)
   for (int i = 0; i < 64; i++)
     l05 = i;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(l06\\)" "gimple" } } */
@@ -63,7 +63,7 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(l06\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(l06\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(l06\\)" "gimple" } } */
-  #pragma omp parallel master taskloop simd firstprivate (l06) lastprivate (l06)
+  #pragma omp parallel master taskloop simd firstprivate (l06) lastprivate (l06) default(none)
   for (int i = 0; i < 64; i++)
     l06 = i;
   /* FIXME: OpenMP 5.0/5.1 broken here, conceptually it should be shared on parallel and
@@ -76,7 +76,7 @@ bar (void)
   /* { dg-final { scan-tree-dump-not "omp sections\[^\n\r]*lastprivate\\(l07\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp section \[^\n\r]*firstprivate\\(l07\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp section \[^\n\r]*lastprivate\\(l07\\)" "gimple" } } */
-  #pragma omp parallel sections firstprivate (l07) lastprivate (l07)
+  #pragma omp parallel sections firstprivate (l07) lastprivate (l07) default(none)
   {
     l07 = 1;
     #pragma omp section
@@ -88,7 +88,7 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l08\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(l08\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l08\\)" "gimple" } } *//* FIXME.  */
-  #pragma omp target parallel for firstprivate (l08) lastprivate (l08)
+  #pragma omp target parallel for firstprivate (l08) lastprivate (l08) default(none) defaultmap(none)
   for (int i = 0; i < 64; i++)
     l08 = i;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:l09" "gimple" } } */
@@ -99,21 +99,21 @@ bar (void)
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l09\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(l09\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(l09\\)" "gimple" } } */
-  #pragma omp target parallel for simd firstprivate (l09) lastprivate (l09)
+  #pragma omp target parallel for simd firstprivate (l09) lastprivate (l09) default(none) defaultmap(none)
   for (int i = 0; i < 64; i++)
     l09 = i;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:l10" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(l10\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(l10\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(l10\\)" "gimple" } } */
-  #pragma omp target simd firstprivate (l10) lastprivate (l10)
+  #pragma omp target simd firstprivate (l10) lastprivate (l10) defaultmap(none)
   for (int i = 0; i < 64; i++)
     l10 = i;
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*firstprivate\\(l11\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(l11\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(l11\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(l11\\)" "gimple" } } */
- #pragma omp taskloop simd firstprivate (l11) lastprivate (l11)
+ #pragma omp taskloop simd firstprivate (l11) lastprivate (l11) default(none)
   for (int i = 0; i < 64; i++)
     l11 = i;
 }
diff --git a/gcc/testsuite/c-c++-common/gomp/pr99928-4.c b/gcc/testsuite/c-c++-common/gomp/pr99928-4.c
index f35e7343db49da060c8e1d29b5deb574c9990765..915a8657b91f5e2e659b263b5984469b57100b40 100644
--- a/gcc/testsuite/c-c++-common/gomp/pr99928-4.c
+++ b/gcc/testsuite/c-c++-common/gomp/pr99928-4.c
@@ -19,12 +19,12 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*firstprivate\\(l01\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(l01\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(l01:1\\)" "gimple" } } */
-  #pragma omp master taskloop simd linear (l01)
+  #pragma omp master taskloop simd linear (l01) default(none)
   for (int i = 0; i < 64; i++)
     l01++;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(l02\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp for\[^\n\r]*linear\\(l02:1\\)" "gimple" } } */
-  #pragma omp parallel for linear (l02)
+  #pragma omp parallel for linear (l02) default(none)
   for (int i = 0; i < 64; i++)
     l02++;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(l03\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
@@ -32,7 +32,7 @@ bar (void)
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(l03\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l03\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(l03:1\\)" "gimple" } } */
-  #pragma omp parallel for simd linear (l03)
+  #pragma omp parallel for simd linear (l03) default(none)
   for (int i = 0; i < 64; i++)
     l03++;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(l04\\)" "gimple" } } */
@@ -41,14 +41,14 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*firstprivate\\(l04\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(l04\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(l04:1\\)" "gimple" } } */
-  #pragma omp parallel master taskloop simd linear (l04)
+  #pragma omp parallel master taskloop simd linear (l04) default(none)
   for (int i = 0; i < 64; i++)
     l04++;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:l05" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(l05\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(l05\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp for\[^\n\r]*linear\\(l05:1\\)" "gimple" } } */
-  #pragma omp target parallel for linear (l05)
+  #pragma omp target parallel for linear (l05) default(none) defaultmap(none)
   for (int i = 0; i < 64; i++)
     l05++;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:l06" "gimple" } } */
@@ -58,19 +58,19 @@ bar (void)
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(l06\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l06\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(l06:1\\)" "gimple" } } */
-  #pragma omp target parallel for simd linear (l06)
+  #pragma omp target parallel for simd linear (l06) default(none) defaultmap(none)
   for (int i = 0; i < 64; i++)
     l06++;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:l07" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(l07\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(l07:1\\)" "gimple" } } */
-  #pragma omp target simd linear (l07)
+  #pragma omp target simd linear (l07) defaultmap(none)
   for (int i = 0; i < 64; i++)
     l07++;
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*firstprivate\\(l08\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(l08\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(l08:1\\)" "gimple" } } */
-  #pragma omp taskloop simd linear (l08)
+  #pragma omp taskloop simd linear (l08) default(none)
   for (int i = 0; i < 64; i++)
     l08++;
 }
diff --git a/gcc/testsuite/c-c++-common/gomp/pr99928-5.c b/gcc/testsuite/c-c++-common/gomp/pr99928-5.c
index 7405188556ee59e5a21bf763619c94ad7ba598a6..26da0ac433a1c6a7f1bc3109af41e448635ff809 100644
--- a/gcc/testsuite/c-c++-common/gomp/pr99928-5.c
+++ b/gcc/testsuite/c-c++-common/gomp/pr99928-5.c
@@ -12,7 +12,7 @@ foo (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j00\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j00\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j00:1\\)" "gimple" } } */
-  #pragma omp distribute parallel for simd linear (j00)
+  #pragma omp distribute parallel for simd linear (j00) default(none)
   for (j00 = 0; j00 < 64; j00++)
     ;
   /* { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(j01\\)" "gimple" } } */
@@ -35,13 +35,13 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(j03\\)" "gimple" } } *//* NOTE: This is implementation detail.  */
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(j03\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j03:1\\)" "gimple" } } */
-  #pragma omp master taskloop simd linear (j03)
+  #pragma omp master taskloop simd linear (j03) default(none)
   for (j03 = 0; j03 < 64; j03++)
     ;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j04\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j04\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j04:1\\)" "gimple" } } */
-  #pragma omp parallel for simd linear (j04)
+  #pragma omp parallel for simd linear (j04) default(none)
   for (j04 = 0; j04 < 64; j04++)
     ;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(j05\\)" "gimple" } } */
@@ -49,7 +49,7 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(j05\\)" "gimple" } } *//* NOTE: This is implementation detail.  */
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(j05\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j05:1\\)" "gimple" } } */
-  #pragma omp parallel master taskloop simd linear (j05)
+  #pragma omp parallel master taskloop simd linear (j05) default(none)
   for (j05 = 0; j05 < 64; j05++)
     ;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:j06" "gimple" } } */
@@ -57,13 +57,13 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j06\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j06\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j06:1\\)" "gimple" } } */
-  #pragma omp target parallel for simd linear (j06)
+  #pragma omp target parallel for simd linear (j06) default(none) defaultmap(none)
   for (j06 = 0; j06 < 64; j06++)
     ;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:j07" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(j07\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j07:1\\)" "gimple" } } */
-  #pragma omp target simd linear (j07)
+  #pragma omp target simd linear (j07) defaultmap(none)
   for (j07 = 0; j07 < 64; j07++)
     ;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:j08" "gimple" } } */
@@ -73,7 +73,7 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j08\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j08\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j08:1\\)" "gimple" } } */
-  #pragma omp target teams distribute parallel for simd linear (j08)
+  #pragma omp target teams distribute parallel for simd linear (j08) default(none) defaultmap(none)
   for (j08 = 0; j08 < 64; j08++)
     ;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:j09" "gimple" } } */
@@ -81,13 +81,13 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(j09\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(j09\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j09:1\\)" "gimple" } } */
-  #pragma omp target teams distribute simd linear (j09)
+  #pragma omp target teams distribute simd linear (j09) default(none) defaultmap(none)
   for (j09 = 0; j09 < 64; j09++)
     ;
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(j10\\)" "gimple" } } *//* NOTE: This is implementation detail.  */
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(j10\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j10:1\\)" "gimple" } } */
-  #pragma omp taskloop simd linear (j10)
+  #pragma omp taskloop simd linear (j10) default(none)
   for (j10 = 0; j10 < 64; j10++)
     ;
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(j11\\)" "gimple" } } */
@@ -95,13 +95,13 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j11\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j11\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j11:1\\)" "gimple" } } */
-  #pragma omp teams distribute parallel for simd linear (j11)
+  #pragma omp teams distribute parallel for simd linear (j11) default(none)
   for (j11 = 0; j11 < 64; j11++)
     ;
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(j12\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(j12\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j12:1\\)" "gimple" } } */
-  #pragma omp teams distribute simd linear (j12)
+  #pragma omp teams distribute simd linear (j12) default(none)
   for (j12 = 0; j12 < 64; j12++)
     ;
 }
diff --git a/gcc/testsuite/c-c++-common/gomp/pr99928-6.c b/gcc/testsuite/c-c++-common/gomp/pr99928-6.c
index 918a97e8167f536f7ba6b9c642e031bbf515f889..d37587c13133167b450915a64356efd38b2f7038 100644
--- a/gcc/testsuite/c-c++-common/gomp/pr99928-6.c
+++ b/gcc/testsuite/c-c++-common/gomp/pr99928-6.c
@@ -12,7 +12,7 @@ foo (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j00\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j00\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j00:1\\)" "gimple" } } */
-  #pragma omp distribute parallel for simd
+  #pragma omp distribute parallel for simd default(none)
   for (j00 = 0; j00 < 64; j00++)
     ;
   /* { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(j01\\)" "gimple" } } */
@@ -35,13 +35,13 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(j03\\)" "gimple" } } *//* NOTE: This is implementation detail.  */
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(j03\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j03:1\\)" "gimple" } } */
-  #pragma omp master taskloop simd
+  #pragma omp master taskloop simd default(none)
   for (j03 = 0; j03 < 64; j03++)
     ;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j04\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j04\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j04:1\\)" "gimple" } } */
-  #pragma omp parallel for simd
+  #pragma omp parallel for simd default(none)
   for (j04 = 0; j04 < 64; j04++)
     ;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(j05\\)" "gimple" } } */
@@ -49,7 +49,7 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(j05\\)" "gimple" } } *//* NOTE: This is implementation detail.  */
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(j05\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j05:1\\)" "gimple" } } */
-  #pragma omp parallel master taskloop simd
+  #pragma omp parallel master taskloop simd default(none)
   for (j05 = 0; j05 < 64; j05++)
     ;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:j06" "gimple" } } */
@@ -57,13 +57,13 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j06\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j06\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j06:1\\)" "gimple" } } */
-  #pragma omp target parallel for simd
+  #pragma omp target parallel for simd default(none) defaultmap(none)
   for (j06 = 0; j06 < 64; j06++)
     ;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:j07" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(j07\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j07:1\\)" "gimple" } } */
-  #pragma omp target simd
+  #pragma omp target simd defaultmap(none)
   for (j07 = 0; j07 < 64; j07++)
     ;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:j08" "gimple" } } */
@@ -73,7 +73,7 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j08\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j08\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j08:1\\)" "gimple" } } */
-  #pragma omp target teams distribute parallel for simd
+  #pragma omp target teams distribute parallel for simd default(none) defaultmap(none)
   for (j08 = 0; j08 < 64; j08++)
     ;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:j09" "gimple" } } */
@@ -81,13 +81,13 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(j09\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(j09\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j09:1\\)" "gimple" } } */
-  #pragma omp target teams distribute simd
+  #pragma omp target teams distribute simd default(none) defaultmap(none)
   for (j09 = 0; j09 < 64; j09++)
     ;
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(j10\\)" "gimple" } } *//* NOTE: This is implementation detail.  */
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(j10\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j10:1\\)" "gimple" } } */
-  #pragma omp taskloop simd
+  #pragma omp taskloop simd default(none)
   for (j10 = 0; j10 < 64; j10++)
     ;
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(j11\\)" "gimple" } } */
@@ -95,13 +95,13 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j11\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j11\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j11:1\\)" "gimple" } } */
-  #pragma omp teams distribute parallel for simd
+  #pragma omp teams distribute parallel for simd default(none)
   for (j11 = 0; j11 < 64; j11++)
     ;
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(j12\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(j12\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j12:1\\)" "gimple" } } */
-  #pragma omp teams distribute simd
+  #pragma omp teams distribute simd default(none)
   for (j12 = 0; j12 < 64; j12++)
     ;
 }
diff --git a/gcc/testsuite/c-c++-common/gomp/pr99928-7.c b/gcc/testsuite/c-c++-common/gomp/pr99928-7.c
index 5db1101e23bdf9e4e995a656aab1dab94defd8aa..e6e0e929dd23c0f518b0228f440a9b4cf9080bdd 100644
--- a/gcc/testsuite/c-c++-common/gomp/pr99928-7.c
+++ b/gcc/testsuite/c-c++-common/gomp/pr99928-7.c
@@ -9,7 +9,7 @@ foo (void)
   /* { dg-final { scan-tree-dump-not "omp parallel\[^\n\r]*lastprivate\\(j00\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j00\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j00:1\\)" "gimple" } } */
-  #pragma omp distribute parallel for simd
+  #pragma omp distribute parallel for simd default(none)
   for (int j00 = 0; j00 < 64; j00++)
     ;
   /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*lastprivate\\(j01\\)" "gimple" } } */
@@ -30,20 +30,20 @@ bar (void)
   /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*lastprivate\\(j03\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp taskloop\[^\n\r]*lastprivate\\(j03\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j03:1\\)" "gimple" } } */
-  #pragma omp master taskloop simd
+  #pragma omp master taskloop simd default(none)
   for (int j03 = 0; j03 < 64; j03++)
     ;
   /* { dg-final { scan-tree-dump-not "omp parallel\[^\n\r]*lastprivate\\(j04\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j04\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j04:1\\)" "gimple" } } */
-  #pragma omp parallel for simd
+  #pragma omp parallel for simd default(none)
   for (int j04 = 0; j04 < 64; j04++)
     ;
   /* { dg-final { scan-tree-dump-not "omp parallel\[^\n\r]*shared\\(j05\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*lastprivate\\(j05\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp taskloop\[^\n\r]*lastprivate\\(j05\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j05:1\\)" "gimple" } } */
-  #pragma omp parallel master taskloop simd
+  #pragma omp parallel master taskloop simd default(none)
   for (int j05 = 0; j05 < 64; j05++)
     ;
   /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*map\\(tofrom:j06" "gimple" } } */
@@ -52,13 +52,13 @@ bar (void)
   /* { dg-final { scan-tree-dump-not "omp parallel\[^\n\r]*lastprivate\\(j06\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j06\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j06:1\\)" "gimple" } } */
-  #pragma omp target parallel for simd
+  #pragma omp target parallel for simd default(none) defaultmap(none)
   for (int j06 = 0; j06 < 64; j06++)
     ;
   /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*map\\(tofrom:j07" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(j07\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j07:1\\)" "gimple" } } */
-  #pragma omp target simd
+  #pragma omp target simd defaultmap(none)
   for (int j07 = 0; j07 < 64; j07++)
     ;
   /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*map\\(tofrom:j08" "gimple" } } */
@@ -69,7 +69,7 @@ bar (void)
   /* { dg-final { scan-tree-dump-not "omp parallel\[^\n\r]*lastprivate\\(j08\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j08\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j08:1\\)" "gimple" } } */
-  #pragma omp target teams distribute parallel for simd
+  #pragma omp target teams distribute parallel for simd default(none) defaultmap(none)
   for (int j08 = 0; j08 < 64; j08++)
     ;
   /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*map\\(tofrom:j09" "gimple" } } */
@@ -77,12 +77,12 @@ bar (void)
   /* { dg-final { scan-tree-dump-not "omp teams\[^\n\r]*shared\\(j09\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*lastprivate\\(j09\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j09:1\\)" "gimple" } } */
-  #pragma omp target teams distribute simd
+  #pragma omp target teams distribute simd default(none) defaultmap(none)
   for (int j09 = 0; j09 < 64; j09++)
     ;
   /* { dg-final { scan-tree-dump-not "omp taskloop\[^\n\r]*lastprivate\\(j10\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j10:1\\)" "gimple" } } */
-  #pragma omp taskloop simd
+  #pragma omp taskloop simd default(none)
   for (int j10 = 0; j10 < 64; j10++)
     ;
   /* { dg-final { scan-tree-dump-not "omp teams\[^\n\r]*shared\\(j11\\)" "gimple" } } */
@@ -91,13 +91,13 @@ bar (void)
   /* { dg-final { scan-tree-dump-not "omp parallel\[^\n\r]*lastprivate\\(j11\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j11\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j11:1\\)" "gimple" } } */
-  #pragma omp teams distribute parallel for simd
+  #pragma omp teams distribute parallel for simd default(none)
   for (int j11 = 0; j11 < 64; j11++)
     ;
   /* { dg-final { scan-tree-dump-not "omp teams\[^\n\r]*shared\\(j12\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*lastprivate\\(j12\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j12:1\\)" "gimple" } } */
-  #pragma omp teams distribute simd
+  #pragma omp teams distribute simd default(none)
   for (int j12 = 0; j12 < 64; j12++)
     ;
 }
diff --git a/gcc/testsuite/c-c++-common/gomp/pr99928-8.c b/gcc/testsuite/c-c++-common/gomp/pr99928-8.c
index 27e6ad1eb36d479b51f401b30540cc1b817fd32b..ad36f3ede542a3ed82e063b0e124abb04dc61851 100644
--- a/gcc/testsuite/c-c++-common/gomp/pr99928-8.c
+++ b/gcc/testsuite/c-c++-common/gomp/pr99928-8.c
@@ -12,14 +12,14 @@ foo (void)
   /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:r00\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r00\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:r00\\)" "gimple" } } *//* FIXME.  */
-  #pragma omp distribute parallel for reduction(+:r00)
+  #pragma omp distribute parallel for reduction(+:r00) default(none)
   for (int i = 0; i < 64; i++)
     r00++;
   /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:r01\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r01\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:r01\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:r01\\)" "gimple" } } */
-  #pragma omp distribute parallel for simd reduction(+:r01)
+  #pragma omp distribute parallel for simd reduction(+:r01) default(none)
   for (int i = 0; i < 64; i++)
     r01++;
   /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:r02\\)" "gimple" } } */
@@ -42,53 +42,53 @@ bar (void)
     r03++;
   /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*reduction\\(\\+:r04\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*reduction\\(\\+:r04\\)" "gimple" } } */
-  #pragma omp master taskloop reduction(+:r04)
+  #pragma omp master taskloop reduction(+:r04) default(none)
   for (int i = 0; i < 64; i++)
     r04++;
   /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*reduction\\(\\+:r05\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*reduction\\(\\+:r05\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:r05\\)" "gimple" } } */
-  #pragma omp master taskloop simd reduction(+:r05)
+  #pragma omp master taskloop simd reduction(+:r05) default(none)
   for (int i = 0; i < 64; i++)
     r05++;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r06\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:r06\\)" "gimple" } } *//* FIXME.  */
-  #pragma omp parallel for reduction(+:r06)
+  #pragma omp parallel for reduction(+:r06) default(none)
   for (int i = 0; i < 64; i++)
     r06++;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r07\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:r07\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:r07\\)" "gimple" } } */
-  #pragma omp parallel for simd reduction(+:r07)
+  #pragma omp parallel for simd reduction(+:r07) default(none)
   for (int i = 0; i < 64; i++)
     r07++;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(r08\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp for\[^\n\r]*reduction\\(\\+:r08\\)" "gimple" } } *//* NOTE: This is implementation detail.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:r08\\)" "gimple" } } *//* NOTE: This is implementation detail.  */
-  #pragma omp parallel loop reduction(+:r08)
+  #pragma omp parallel loop reduction(+:r08) default(none)
   for (int i = 0; i < 64; i++)
     r08++;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r09\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*reduction\\(\\+:r09\\)" "gimple" } } */
-  #pragma omp parallel master reduction(+:r09)
+  #pragma omp parallel master reduction(+:r09) default(none)
   r09++;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(r10\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*reduction\\(\\+:r10\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*reduction\\(\\+:r10\\)" "gimple" } } */
-  #pragma omp parallel master taskloop reduction(+:r10)
+  #pragma omp parallel master taskloop reduction(+:r10) default(none)
   for (int i = 0; i < 64; i++)
     r10++;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(r11\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*reduction\\(\\+:r11\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*reduction\\(\\+:r11\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:r11\\)" "gimple" } } */
-  #pragma omp parallel master taskloop simd reduction(+:r11)
+  #pragma omp parallel master taskloop simd reduction(+:r11) default(none)
   for (int i = 0; i < 64; i++)
     r11++;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r12\\)" "gimple" } } *//* FIXME: This should be on sections instead.  */
   /* { dg-final { scan-tree-dump-not "omp sections\[^\n\r]*reduction\\(\\+:r12\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump-not "omp section \[^\n\r]*reduction\\(\\+:r12\\)" "gimple" } } */
-  #pragma omp parallel sections reduction(+:r12)
+  #pragma omp parallel sections reduction(+:r12) default(none)
   {
     r12++;
     #pragma omp section
@@ -97,13 +97,13 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r13" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(r13\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r13\\)" "gimple" } } */
-  #pragma omp target parallel reduction(+:r13)
+  #pragma omp target parallel reduction(+:r13) default(none) defaultmap(none)
   r13++;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r14" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(r14\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r14\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:r14\\)" "gimple" } } *//* FIXME.  */
-  #pragma omp target parallel for reduction(+:r14)
+  #pragma omp target parallel for reduction(+:r14) default(none) defaultmap(none)
   for (int i = 0; i < 64; i++)
     r14++;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r15" "gimple" } } */
@@ -111,7 +111,7 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r15\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:r15\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:r15\\)" "gimple" } } */
-  #pragma omp target parallel for simd reduction(+:r15)
+  #pragma omp target parallel for simd reduction(+:r15) default(none) defaultmap(none)
   for (int i = 0; i < 64; i++)
     r15++;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r16" "gimple" } } */
@@ -119,19 +119,19 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(r16\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp for\[^\n\r]*reduction\\(\\+:r16\\)" "gimple" } } *//* NOTE: This is implementation detail.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:r16\\)" "gimple" } } *//* NOTE: This is implementation detail.  */
-  #pragma omp target parallel loop reduction(+:r16)
+  #pragma omp target parallel loop reduction(+:r16) default(none) defaultmap(none)
   for (int i = 0; i < 64; i++)
     r16++;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r17" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(r17\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:r17\\)" "gimple" } } */
-  #pragma omp target teams reduction(+:r17)
+  #pragma omp target teams reduction(+:r17) default(none) defaultmap(none)
   r17++;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r18" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(r18\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:r18\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:r18\\)" "gimple" } } */
-  #pragma omp target teams distribute reduction(+:r18)
+  #pragma omp target teams distribute reduction(+:r18) default(none) defaultmap(none)
   for (int i = 0; i < 64; i++)
     r18++;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r19" "gimple" } } */
@@ -140,7 +140,7 @@ bar (void)
   /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:r19\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r19\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:r19\\)" "gimple" } } *//* FIXME.  */
-  #pragma omp target teams distribute parallel for reduction(+:r19)
+  #pragma omp target teams distribute parallel for reduction(+:r19) default(none) defaultmap(none)
   for (int i = 0; i < 64; i++)
     r19++;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r20" "gimple" } } */
@@ -150,7 +150,7 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r20\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:r20\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:r20\\)" "gimple" } } */
-  #pragma omp target teams distribute parallel for simd reduction(+:r20)
+  #pragma omp target teams distribute parallel for simd reduction(+:r20) default(none) defaultmap(none)
   for (int i = 0; i < 64; i++)
     r20++;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r21" "gimple" } } */
@@ -158,7 +158,7 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:r21\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:r21\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:r21\\)" "gimple" } } */
-  #pragma omp target teams distribute simd reduction(+:r21)
+  #pragma omp target teams distribute simd reduction(+:r21) default(none) defaultmap(none)
   for (int i = 0; i < 64; i++)
     r21++;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r22" "gimple" } } */
@@ -168,30 +168,30 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(r22\\)" "gimple" } } *//* NOTE: This is implementation detail.  */
   /* { dg-final { scan-tree-dump "omp for\[^\n\r]*reduction\\(\\+:r22\\)" "gimple" } } *//* NOTE: This is implementation detail.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:r22\\)" "gimple" } } *//* NOTE: This is implementation detail.  */
-  #pragma omp target teams loop reduction(+:r22)
+  #pragma omp target teams loop reduction(+:r22) default(none) defaultmap(none)
   for (int i = 0; i < 64; i++)
     r22++;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r23" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(r23\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:r23\\)" "gimple" } } */
-  #pragma omp target simd reduction(+:r23)
+  #pragma omp target simd reduction(+:r23) defaultmap(none)
   for (int i = 0; i < 64; i++)
     r23++;
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*reduction\\(\\+:r24\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:r24\\)" "gimple" } } */
-  #pragma omp taskloop simd reduction(+:r24)
+  #pragma omp taskloop simd reduction(+:r24) default(none)
   for (int i = 0; i < 64; i++)
     r24++;
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:r25\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:r25\\)" "gimple" } } */
-  #pragma omp teams distribute reduction(+:r25)
+  #pragma omp teams distribute reduction(+:r25) default(none)
   for (int i = 0; i < 64; i++)
     r25++;
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:r26\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:r26\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r26\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:r26\\)" "gimple" } } *//* FIXME.  */
-  #pragma omp teams distribute parallel for reduction(+:r26)
+  #pragma omp teams distribute parallel for reduction(+:r26) default(none)
   for (int i = 0; i < 64; i++)
     r26++;
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:r27\\)" "gimple" } } */
@@ -199,13 +199,13 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r27\\)" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:r27\\)" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:r27\\)" "gimple" } } */
-  #pragma omp teams distribute parallel for simd reduction(+:r27)
+  #pragma omp teams distribute parallel for simd reduction(+:r27) default(none)
   for (int i = 0; i < 64; i++)
     r27++;
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:r28\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:r28\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:r28\\)" "gimple" } } */
-  #pragma omp teams distribute simd reduction(+:r28)
+  #pragma omp teams distribute simd reduction(+:r28) default(none)
   for (int i = 0; i < 64; i++)
     r28++;
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(r29\\)" "gimple" } } */
@@ -213,7 +213,7 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(r29\\)" "gimple" } } *//* NOTE: This is implementation detail.  */
   /* { dg-final { scan-tree-dump "omp for\[^\n\r]*reduction\\(\\+:r29\\)" "gimple" } } *//* NOTE: This is implementation detail.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:r29\\)" "gimple" } } *//* NOTE: This is implementation detail.  */
-  #pragma omp teams loop reduction(+:r29)
+  #pragma omp teams loop reduction(+:r29) default(none)
   for (int i = 0; i < 64; i++)
     r29++;
 }
diff --git a/gcc/testsuite/c-c++-common/gomp/pr99928-9.c b/gcc/testsuite/c-c++-common/gomp/pr99928-9.c
index 862352776674e412c913d745ea08e0222f89a177..a7d970ac157dff73cb7f268360a53197841ec4aa 100644
--- a/gcc/testsuite/c-c++-common/gomp/pr99928-9.c
+++ b/gcc/testsuite/c-c++-common/gomp/pr99928-9.c
@@ -12,14 +12,14 @@ foo (void)
   /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r00 \\+ 4" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r00 \\+ 4" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r00 \\+ 4" "gimple" } } *//* FIXME.  */
-  #pragma omp distribute parallel for reduction(+:r00[1:2])
+  #pragma omp distribute parallel for reduction(+:r00[1:2]) default(none)
   for (int i = 0; i < 64; i++)
     r00[1]++;
   /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r01 \\+ 4" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r01 \\+ 4" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r01 \\+ 4" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r01 \\+ 4" "gimple" } } */
-  #pragma omp distribute parallel for simd reduction(+:r01[1:2])
+  #pragma omp distribute parallel for simd reduction(+:r01[1:2]) default(none)
   for (int i = 0; i < 64; i++)
     r01[1]++;
   /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r02 \\+ 4" "gimple" } } */
@@ -42,53 +42,53 @@ bar (void)
     r03[1]++;
   /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r04 \\+ 4" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r04 \\+ 4" "gimple" } } */
-  #pragma omp master taskloop reduction(+:r04[1:2])
+  #pragma omp master taskloop reduction(+:r04[1:2]) default(none)
   for (int i = 0; i < 64; i++)
     r04[1]++;
   /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r05 \\+ 4" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r05 \\+ 4" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r05 \\+ 4" "gimple" } } */
-  #pragma omp master taskloop simd reduction(+:r05[1:2])
+  #pragma omp master taskloop simd reduction(+:r05[1:2]) default(none)
   for (int i = 0; i < 64; i++)
     r05[1]++;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r06 \\+ 4" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r06 \\+ 4" "gimple" } } *//* FIXME.  */
-  #pragma omp parallel for reduction(+:r06[1:2])
+  #pragma omp parallel for reduction(+:r06[1:2]) default(none)
   for (int i = 0; i < 64; i++)
     r06[1]++;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r07 \\+ 4" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r07 \\+ 4" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r07 \\+ 4" "gimple" } } */
-  #pragma omp parallel for simd reduction(+:r07[1:2])
+  #pragma omp parallel for simd reduction(+:r07[1:2]) default(none)
   for (int i = 0; i < 64; i++)
     r07[1]++;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(r08\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r08 \\+ 4" "gimple" } } *//* NOTE: This is implementation detail.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r08 \\+ 4" "gimple" } } *//* NOTE: This is implementation detail.  */
-  #pragma omp parallel loop reduction(+:r08[1:2])
+  #pragma omp parallel loop reduction(+:r08[1:2]) default(none)
   for (int i = 0; i < 64; i++)
     r08[1]++;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r09 \\+ 4" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r09 \\+ 4" "gimple" } } */
-  #pragma omp parallel master reduction(+:r09[1:2])
+  #pragma omp parallel master reduction(+:r09[1:2]) default(none)
   r09[1]++;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(r10\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r10 \\+ 4" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r10 \\+ 4" "gimple" } } */
-  #pragma omp parallel master taskloop reduction(+:r10[1:2])
+  #pragma omp parallel master taskloop reduction(+:r10[1:2]) default(none)
   for (int i = 0; i < 64; i++)
     r10[1]++;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(r11\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r11 \\+ 4" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r11 \\+ 4" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r11 \\+ 4" "gimple" } } */
-  #pragma omp parallel master taskloop simd reduction(+:r11[1:2])
+  #pragma omp parallel master taskloop simd reduction(+:r11[1:2]) default(none)
   for (int i = 0; i < 64; i++)
     r11[1]++;
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r12 \\+ 4" "gimple" } } *//* FIXME: This should be on sections instead.  */
   /* { dg-final { scan-tree-dump-not "omp sections\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r12 \\+ 4" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump-not "omp section \[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r12 \\+ 4" "gimple" } } */
-  #pragma omp parallel sections reduction(+:r12[1:2])
+  #pragma omp parallel sections reduction(+:r12[1:2]) default(none)
   {
     r12[1]++;
     #pragma omp section
@@ -97,13 +97,13 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r13\\\[1\\\] \\\[len: 8\\\]" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(r13\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r13 \\+ 4" "gimple" } } */
-  #pragma omp target parallel reduction(+:r13[1:2])
+  #pragma omp target parallel reduction(+:r13[1:2]) default(none) defaultmap(none)
   r13[1]++;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r14\\\[1\\\] \\\[len: 8\\\]" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(r14" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r14 \\+ 4" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r14 \\+ 4" "gimple" } } *//* FIXME.  */
-  #pragma omp target parallel for reduction(+:r14[1:2])
+  #pragma omp target parallel for reduction(+:r14[1:2]) default(none) defaultmap(none)
   for (int i = 0; i < 64; i++)
     r14[1]++;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r15\\\[1\\\] \\\[len: 8\\\]" "gimple" } } */
@@ -111,7 +111,7 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r15 \\+ 4" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r15 \\+ 4" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r15 \\+ 4" "gimple" } } */
-  #pragma omp target parallel for simd reduction(+:r15[1:2])
+  #pragma omp target parallel for simd reduction(+:r15[1:2]) default(none) defaultmap(none)
   for (int i = 0; i < 64; i++)
     r15[1]++;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r16\\\[1\\\] \\\[len: 8\\\]" "gimple" } } */
@@ -119,19 +119,19 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(r16\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r16 \\+ 4" "gimple" } } *//* NOTE: This is implementation detail.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r16 \\+ 4" "gimple" } } *//* NOTE: This is implementation detail.  */
-  #pragma omp target parallel loop reduction(+:r16[1:2])
+  #pragma omp target parallel loop reduction(+:r16[1:2]) default(none) defaultmap(none)
   for (int i = 0; i < 64; i++)
     r16[1]++;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r17\\\[1\\\] \\\[len: 8\\\]" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(r17\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r17 \\+ 4" "gimple" } } */
-  #pragma omp target teams reduction(+:r17[1:2])
+  #pragma omp target teams reduction(+:r17[1:2]) default(none) defaultmap(none)
   r17[1]++;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r18\\\[1\\\] \\\[len: 8\\\]" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(r18\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r18 \\+ 4" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r18 \\+ 4" "gimple" } } */
-  #pragma omp target teams distribute reduction(+:r18[1:2])
+  #pragma omp target teams distribute reduction(+:r18[1:2]) default(none) defaultmap(none)
   for (int i = 0; i < 64; i++)
     r18[1]++;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r19\\\[1\\\] \\\[len: 8\\\]" "gimple" } } */
@@ -140,7 +140,7 @@ bar (void)
   /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r19 \\+ 4" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r19 \\+ 4" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r19 \\+ 4" "gimple" } } *//* FIXME.  */
-  #pragma omp target teams distribute parallel for reduction(+:r19[1:2])
+  #pragma omp target teams distribute parallel for reduction(+:r19[1:2]) default(none) defaultmap(none)
   for (int i = 0; i < 64; i++)
     r19[1]++;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r20\\\[1\\\] \\\[len: 8\\\]" "gimple" } } */
@@ -150,7 +150,7 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r20 \\+ 4" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r20 \\+ 4" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r20 \\+ 4" "gimple" } } */
-  #pragma omp target teams distribute parallel for simd reduction(+:r20[1:2])
+  #pragma omp target teams distribute parallel for simd reduction(+:r20[1:2]) default(none) defaultmap(none)
   for (int i = 0; i < 64; i++)
     r20[1]++;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r21\\\[1\\\] \\\[len: 8\\\]" "gimple" } } */
@@ -158,7 +158,7 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r21 \\+ 4" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r21 \\+ 4" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r21 \\+ 4" "gimple" } } */
-  #pragma omp target teams distribute simd reduction(+:r21[1:2])
+  #pragma omp target teams distribute simd reduction(+:r21[1:2]) default(none) defaultmap(none)
   for (int i = 0; i < 64; i++)
     r21[1]++;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r22\\\[1\\\] \\\[len: 8\\\]" "gimple" } } */
@@ -168,30 +168,30 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(r22\\)" "gimple" } } *//* NOTE: This is implementation detail.  */
   /* { dg-final { scan-tree-dump "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r22 \\+ 4" "gimple" } } *//* NOTE: This is implementation detail.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r22 \\+ 4" "gimple" } } *//* NOTE: This is implementation detail.  */
-  #pragma omp target teams loop reduction(+:r22[1:2])
+  #pragma omp target teams loop reduction(+:r22[1:2]) default(none) defaultmap(none)
   for (int i = 0; i < 64; i++)
     r22[1]++;
   /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r23\\\[1\\\] \\\[len: 8\\\]" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(r23\\)" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r23 \\+ 4" "gimple" } } */
-  #pragma omp target simd reduction(+:r23[1:2])
+  #pragma omp target simd reduction(+:r23[1:2]) defaultmap(none)
   for (int i = 0; i < 64; i++)
     r23[1]++;
   /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r24 \\+ 4" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r24 \\+ 4" "gimple" } } */
-  #pragma omp taskloop simd reduction(+:r24[1:2])
+  #pragma omp taskloop simd reduction(+:r24[1:2]) default(none)
   for (int i = 0; i < 64; i++)
     r24[1]++;
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r25 \\+ 4" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r25 \\+ 4" "gimple" } } */
-  #pragma omp teams distribute reduction(+:r25[1:2])
+  #pragma omp teams distribute reduction(+:r25[1:2]) default(none)
   for (int i = 0; i < 64; i++)
     r25[1]++;
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r26 \\+ 4" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r26 \\+ 4" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r26 \\+ 4" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r26 \\+ 4" "gimple" } } *//* FIXME.  */
-  #pragma omp teams distribute parallel for reduction(+:r26[1:2])
+  #pragma omp teams distribute parallel for reduction(+:r26[1:2]) default(none)
   for (int i = 0; i < 64; i++)
     r26[1]++;
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r27 \\+ 4" "gimple" } } */
@@ -199,13 +199,13 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r27 \\+ 4" "gimple" } } *//* FIXME: This should be on for instead.  */
   /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r27 \\+ 4" "gimple" } } *//* FIXME.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r27 \\+ 4" "gimple" } } */
-  #pragma omp teams distribute parallel for simd reduction(+:r27[1:2])
+  #pragma omp teams distribute parallel for simd reduction(+:r27[1:2]) default(none)
   for (int i = 0; i < 64; i++)
     r27[1]++;
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r28 \\+ 4" "gimple" } } */
   /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r28 \\+ 4" "gimple" } } */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r28 \\+ 4" "gimple" } } */
-  #pragma omp teams distribute simd reduction(+:r28[1:2])
+  #pragma omp teams distribute simd reduction(+:r28[1:2]) default(none)
   for (int i = 0; i < 64; i++)
     r28[1]++;
   /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(r29\\)" "gimple" } } */
@@ -213,7 +213,7 @@ bar (void)
   /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(r29\\)" "gimple" } } *//* NOTE: This is implementation detail.  */
   /* { dg-final { scan-tree-dump "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r29 \\+ 4" "gimple" } } *//* NOTE: This is implementation detail.  */
   /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r29 \\+ 4" "gimple" } } *//* NOTE: This is implementation detail.  */
-  #pragma omp teams loop reduction(+:r29[1:2])
+  #pragma omp teams loop reduction(+:r29[1:2]) default(none)
   for (int i = 0; i < 64; i++)
     r29[1]++;
 }