[gcc r17-2994] Revert "OpenMP/OpenACC tests. vs C++26"

Tobias Burnus via Gcc-cvs <[email protected]> Wed, 5 Aug 2026 20:55:16 +0000 (GMT)
Newsgroups gmane.comp.gcc.cvs
Message-ID <[email protected]>
https://gcc.gnu.org/g:c1377cb693d79838e8ea5ea9aaabff45b39c6fd0

commit r17-2994-gc1377cb693d79838e8ea5ea9aaabff45b39c6fd0
Author: Tobias Burnus <[email protected]>
Date:   Wed Aug 5 22:44:58 2026 +0200

    Revert "OpenMP/OpenACC tests. vs C++26"
    
    This reverts commit edc821b60ce94b8ddb5d0b9ccdb9a0a4691371c7.
    
    With -std=c++26 (-freflections), [: and :] are tokenized as open/close splice
    instead of open/close square bracket - which caused parser issues for OpenMP
    and OpenACC array sections of the form '[ lower : size ]' when specified
    without lower or size; especially, usage like '[:N]' is ubiquitous.
    
    To permit compilation with -std=c++26, commit r16-5330-gedc821b60ce94b added
    a space between colon and bracket. However, since
      commit r17-2993-g8f43cf55107e34
      C++: Handle OpenMP/OpenACC array sections [: / :] with C++26
    the extra space is no longer required such that the commit could be reverted.

Diff:
---
 gcc/testsuite/c-c++-common/goacc/cache-3-1.c       |  4 --
 gcc/testsuite/c-c++-common/goacc/cache-3-2.c       |  8 +--
 gcc/testsuite/c-c++-common/goacc/data-clause-1.c   | 66 ++++++++---------
 gcc/testsuite/c-c++-common/goacc/data-clause-2.c   |  8 +--
 .../c-c++-common/goacc/data-clause-duplicate-1.c   |  2 +-
 gcc/testsuite/c-c++-common/goacc/mdc-2.c           | 12 ++--
 gcc/testsuite/c-c++-common/goacc/readonly-1.c      | 28 ++++----
 gcc/testsuite/c-c++-common/gomp/allocate-4.c       |  4 +-
 gcc/testsuite/c-c++-common/gomp/clauses-3.c        |  4 +-
 gcc/testsuite/c-c++-common/gomp/declare-mapper-3.c |  2 +-
 gcc/testsuite/c-c++-common/gomp/depend-1.c         | 48 ++++++-------
 gcc/testsuite/c-c++-common/gomp/depend-2.c         |  6 +-
 gcc/testsuite/c-c++-common/gomp/depend-3.c         | 12 ++--
 gcc/testsuite/c-c++-common/gomp/depend-4.c         |  4 +-
 gcc/testsuite/c-c++-common/gomp/depend-5.c         |  4 +-
 gcc/testsuite/c-c++-common/gomp/depend-6.c         |  4 +-
 gcc/testsuite/c-c++-common/gomp/dispatch-1.c       |  2 +-
 gcc/testsuite/c-c++-common/gomp/loop-5.c           |  2 +-
 gcc/testsuite/c-c++-common/gomp/map-1.c            | 66 ++++++++---------
 gcc/testsuite/c-c++-common/gomp/map-2.c            |  8 +--
 gcc/testsuite/c-c++-common/gomp/map-4.c            |  6 +-
 gcc/testsuite/c-c++-common/gomp/map-7.c            |  6 +-
 gcc/testsuite/c-c++-common/gomp/pr100902-1.c       |  4 +-
 gcc/testsuite/c-c++-common/gomp/pr103642.c         |  2 +-
 gcc/testsuite/c-c++-common/gomp/pr120180-1.c       |  6 +-
 gcc/testsuite/c-c++-common/gomp/pr61486-1.c        |  2 +-
 gcc/testsuite/c-c++-common/gomp/pr81006.c          |  2 +-
 gcc/testsuite/c-c++-common/gomp/pr91920.c          |  2 +-
 gcc/testsuite/c-c++-common/gomp/pr96867.c          |  2 +-
 gcc/testsuite/c-c++-common/gomp/pr99928-16.c       |  6 +-
 gcc/testsuite/c-c++-common/gomp/reduction-1.c      | 18 ++---
 gcc/testsuite/c-c++-common/gomp/scan-1.c           |  6 +-
 gcc/testsuite/c-c++-common/gomp/target-data-1.c    |  2 +-
 .../c-c++-common/gomp/target-enter-data-1.c        |  6 +-
 .../c-c++-common/gomp/target-has-device-addr-1.c   | 14 ++--
 .../c-c++-common/gomp/target-implicit-map-2.c      | 10 +--
 .../c-c++-common/gomp/target-map-iterators-1.c     |  6 +-
 .../c-c++-common/gomp/target-map-iterators-3.c     |  4 +-
 .../c-c++-common/gomp/target-update-iterators-1.c  |  6 +-
 .../c-c++-common/gomp/target-update-iterators-3.c  |  4 +-
 gcc/testsuite/g++.dg/goacc/cache-3-1.C             | 66 ++++++++---------
 gcc/testsuite/g++.dg/goacc/cache-3-2.C             |  8 +--
 gcc/testsuite/g++.dg/goacc/data-clause-1.C         | 66 ++++++++---------
 gcc/testsuite/g++.dg/goacc/data-clause-2.C         |  4 --
 gcc/testsuite/g++.dg/goacc/mdc.C                   | 12 ++--
 gcc/testsuite/g++.dg/gomp/array-section-2.C        |  8 +--
 gcc/testsuite/g++.dg/gomp/bad-array-section-10.C   |  8 +--
 gcc/testsuite/g++.dg/gomp/bad-array-section-11.C   |  8 +--
 gcc/testsuite/g++.dg/gomp/bad-array-section-9.C    |  4 +-
 gcc/testsuite/g++.dg/gomp/declare-mapper-1.C       |  6 +-
 gcc/testsuite/g++.dg/gomp/declare-mapper-2.C       |  2 +-
 gcc/testsuite/g++.dg/gomp/depend-1.C               | 40 +++++------
 gcc/testsuite/g++.dg/gomp/depend-2.C               | 48 ++++++-------
 gcc/testsuite/g++.dg/gomp/ind-base-3.C             |  2 +-
 gcc/testsuite/g++.dg/gomp/map-1.C                  | 66 ++++++++---------
 gcc/testsuite/g++.dg/gomp/map-2.C                  |  8 +--
 gcc/testsuite/g++.dg/gomp/map-ptrmem-1.C           |  2 +-
 gcc/testsuite/g++.dg/gomp/map-ptrmem-2.C           |  2 +-
 gcc/testsuite/g++.dg/gomp/member-array-2.C         |  6 +-
 gcc/testsuite/g++.dg/gomp/target-this-3.C          |  4 +-
 gcc/testsuite/g++.dg/gomp/target-this-4.C          |  2 +-
 libgomp/testsuite/libgomp.c++/allocate-1.C         |  2 +-
 libgomp/testsuite/libgomp.c++/baseptrs-3.C         | 26 +++----
 libgomp/testsuite/libgomp.c++/baseptrs-5.C         |  4 +-
 libgomp/testsuite/libgomp.c++/class-array-1.C      |  4 +-
 .../libgomp.c++/examples-4/target_data-5.C         |  2 +-
 libgomp/testsuite/libgomp.c++/lvalue-tofrom-2.C    |  4 +-
 libgomp/testsuite/libgomp.c++/pr101544-1.C         |  4 +-
 libgomp/testsuite/libgomp.c++/pr108286.C           |  2 +-
 libgomp/testsuite/libgomp.c++/reduction-10.C       | 12 ++--
 libgomp/testsuite/libgomp.c++/reduction-11.C       |  8 +--
 libgomp/testsuite/libgomp.c++/reduction-12.C       |  8 +--
 libgomp/testsuite/libgomp.c++/reduction-5.C        | 12 ++--
 libgomp/testsuite/libgomp.c++/reduction-6.C        | 12 ++--
 libgomp/testsuite/libgomp.c++/reduction-7.C        | 12 ++--
 libgomp/testsuite/libgomp.c++/reduction-8.C        | 12 ++--
 libgomp/testsuite/libgomp.c++/reduction-9.C        | 12 ++--
 libgomp/testsuite/libgomp.c++/target-18.C          | 12 ++--
 libgomp/testsuite/libgomp.c++/target-19.C          |  8 +--
 libgomp/testsuite/libgomp.c++/target-2.C           |  2 +-
 libgomp/testsuite/libgomp.c++/target-22.C          |  4 +-
 libgomp/testsuite/libgomp.c++/target-23.C          |  4 +-
 libgomp/testsuite/libgomp.c++/target-9.C           |  4 +-
 libgomp/testsuite/libgomp.c++/target-flex-100.C    |  6 +-
 libgomp/testsuite/libgomp.c++/target-flex-101.C    |  8 +--
 libgomp/testsuite/libgomp.c++/target-flex-12.C     | 56 +++++++--------
 libgomp/testsuite/libgomp.c++/target-flex-2003.C   |  2 +-
 libgomp/testsuite/libgomp.c++/target-flex-30.C     |  2 +-
 libgomp/testsuite/libgomp.c++/target-flex-300.C    |  2 +-
 libgomp/testsuite/libgomp.c++/target-flex-32.C     |  2 +-
 libgomp/testsuite/libgomp.c++/target-flex-33.C     |  2 +-
 libgomp/testsuite/libgomp.c++/target-flex-41.C     |  6 +-
 libgomp/testsuite/libgomp.c++/target-flex-60.C     |  4 +-
 libgomp/testsuite/libgomp.c++/target-flex-61.C     |  4 +-
 libgomp/testsuite/libgomp.c++/target-flex-62.C     |  2 +-
 libgomp/testsuite/libgomp.c++/target-flex-80.C     |  2 +-
 libgomp/testsuite/libgomp.c++/target-flex-81.C     |  2 +-
 .../libgomp.c++/target-has-device-addr-7.C         |  4 +-
 .../testsuite/libgomp.c++/target-in-reduction-1.C  | 16 ++---
 .../testsuite/libgomp.c++/target-in-reduction-2.C  | 16 ++---
 libgomp/testsuite/libgomp.c++/target-lambda-1.C    | 12 ++--
 libgomp/testsuite/libgomp.c++/target-lambda-3.C    | 12 ++--
 libgomp/testsuite/libgomp.c++/target-map-class-1.C |  4 +-
 .../libgomp.c++/target-std__array-concurrent.C     |  2 +-
 .../libgomp.c++/target-std__bitset-concurrent.C    |  2 +-
 .../libgomp.c++/target-std__deque-concurrent.C     |  2 +-
 .../libgomp.c++/target-std__flat_map-concurrent.C  |  2 +-
 .../target-std__flat_multimap-concurrent.C         |  2 +-
 .../target-std__flat_multiset-concurrent.C         |  2 +-
 .../libgomp.c++/target-std__flat_set-concurrent.C  |  2 +-
 .../target-std__forward_list-concurrent.C          |  2 +-
 .../libgomp.c++/target-std__list-concurrent.C      |  2 +-
 .../libgomp.c++/target-std__map-concurrent.C       |  2 +-
 .../libgomp.c++/target-std__multimap-concurrent.C  |  2 +-
 .../libgomp.c++/target-std__multiset-concurrent.C  |  2 +-
 .../libgomp.c++/target-std__set-concurrent.C       |  2 +-
 .../libgomp.c++/target-std__span-concurrent.C      |  2 +-
 .../target-std__unordered_map-concurrent.C         |  2 +-
 .../target-std__unordered_multimap-concurrent.C    |  2 +-
 .../target-std__unordered_multiset-concurrent.C    |  2 +-
 .../target-std__unordered_set-concurrent.C         |  2 +-
 .../testsuite/libgomp.c++/target-std__valarray-1.C |  6 +-
 .../libgomp.c++/target-std__valarray-concurrent.C  |  2 +-
 .../libgomp.c++/target-std__vector-concurrent.C    |  2 +-
 libgomp/testsuite/libgomp.c++/target-this-3.C      |  4 +-
 libgomp/testsuite/libgomp.c++/target-this-4.C      |  2 +-
 libgomp/testsuite/libgomp.c++/target-virtual-1.C   |  2 +-
 libgomp/testsuite/libgomp.c++/task-reduction-11.C  | 26 +++----
 libgomp/testsuite/libgomp.c++/task-reduction-12.C  | 26 +++----
 libgomp/testsuite/libgomp.c++/task-reduction-13.C  | 26 +++----
 libgomp/testsuite/libgomp.c++/task-reduction-17.C  | 26 +++----
 libgomp/testsuite/libgomp.c++/task-reduction-18.C  | 26 +++----
 libgomp/testsuite/libgomp.c++/task-reduction-19.C  | 26 +++----
 libgomp/testsuite/libgomp.c++/task-reduction-4.C   | 26 +++----
 libgomp/testsuite/libgomp.c++/task-reduction-5.C   | 26 +++----
 libgomp/testsuite/libgomp.c++/task-reduction-6.C   | 26 +++----
 libgomp/testsuite/libgomp.c++/task-reduction-7.C   | 10 +--
 .../testsuite/libgomp.c++/taskloop-reduction-2.C   | 20 +++---
 .../testsuite/libgomp.c++/taskloop-reduction-3.C   | 20 +++---
 .../testsuite/libgomp.c++/taskloop-reduction-4.C   | 20 +++---
 .../testsuite/libgomp.c-c++-common/allocate-1.c    |  2 +-
 .../testsuite/libgomp.c-c++-common/allocate-3.c    |  2 +-
 .../testsuite/libgomp.c-c++-common/baseptrs-2.c    |  2 +-
 .../testsuite/libgomp.c-c++-common/dispatch-1.c    |  2 +-
 .../testsuite/libgomp.c-c++-common/dispatch-2.c    |  2 +-
 libgomp/testsuite/libgomp.c-c++-common/interop-2.c | 12 ++--
 ...ix-omp-target-teams-distribute-parallel-for-1.c |  2 +-
 .../testsuite/libgomp.c-c++-common/ptr-attach-1.c  |  6 +-
 .../testsuite/libgomp.c-c++-common/ptr-attach-2.c  |  8 +--
 .../testsuite/libgomp.c-c++-common/refcount-1.c    |  4 +-
 .../testsuite/libgomp.c-c++-common/struct-elem-4.c |  4 +-
 libgomp/testsuite/libgomp.c-c++-common/target-2.c  |  8 +--
 .../target-has-device-addr-1.c                     | 12 ++--
 .../libgomp.c-c++-common/target-implicit-map-2.c   | 10 +--
 .../libgomp.c-c++-common/target-implicit-map-5.c   | 10 +--
 .../libgomp.c-c++-common/target-in-reduction-1.c   | 16 ++---
 .../libgomp.c-c++-common/target-in-reduction-2.c   | 16 ++---
 .../libgomp.c-c++-common/target-map-iterators-1.c  |  2 +-
 .../libgomp.c-c++-common/target-map-iterators-2.c  |  2 +-
 .../libgomp.c-c++-common/target-map-iterators-3.c  |  4 +-
 .../libgomp.c-c++-common/target-map-zlas-1.c       |  6 +-
 .../target-update-iterators-1.c                    |  6 +-
 .../target-update-iterators-2.c                    |  6 +-
 .../target-update-iterators-3.c                    |  6 +-
 .../libgomp.c-c++-common/task-reduction-11.c       |  2 +-
 .../libgomp.c-c++-common/task-reduction-12.c       |  2 +-
 .../libgomp.c-c++-common/task-reduction-16.c       |  2 +-
 .../libgomp.c-c++-common/task-reduction-3.c        | 26 +++----
 .../libgomp.c-c++-common/task-reduction-7.c        | 26 +++----
 .../libgomp.c-c++-common/task-reduction-9.c        | 26 +++----
 .../libgomp.c-c++-common/taskloop-reduction-2.c    | 20 +++---
 .../libgomp.c-c++-common/teams-nteams-icv-1.c      |  2 +-
 .../libgomp.oacc-c-c++-common/deep-copy-1.c        |  2 +-
 .../libgomp.oacc-c-c++-common/deep-copy-16.c       | 84 +++++++++++-----------
 .../libgomp.oacc-c-c++-common/deep-copy-3.c        |  6 +-
 .../libgomp.oacc-c-c++-common/deep-copy-4.c        |  6 +-
 .../libgomp.oacc-c-c++-common/deep-copy-5.c        |  2 +-
 .../libgomp.oacc-c-c++-common/deep-copy-6.c        |  2 +-
 .../libgomp.oacc-c-c++-common/deep-copy-7.c        |  2 +-
 .../libgomp.oacc-c-c++-common/deep-copy-8.c        |  8 +--
 180 files changed, 916 insertions(+), 924 deletions(-)

diff --git a/gcc/testsuite/c-c++-common/goacc/cache-3-1.c b/gcc/testsuite/c-c++-common/goacc/cache-3-1.c
index 5577d71fa194..5318a57d51e1 100644
--- a/gcc/testsuite/c-c++-common/goacc/cache-3-1.c
+++ b/gcc/testsuite/c-c++-common/goacc/cache-3-1.c
@@ -6,10 +6,6 @@
 
 /* { dg-additional-options "-fopenmp" } for '#pragma omp threadprivate'.  */
 
-/* Array sections without spaces between [ and : or : and ] are incompatible
-   with C++26.  */
-/* { dg-skip-if "array sections vs. C++26" { c++26 } } */
-
 /* The current implementation doesn't restrict where a 'cache' directive may
    appear, so we don't make any special arrangements.  */
 
diff --git a/gcc/testsuite/c-c++-common/goacc/cache-3-2.c b/gcc/testsuite/c-c++-common/goacc/cache-3-2.c
index 0c651c6ab7ff..ea5222e7d0cd 100644
--- a/gcc/testsuite/c-c++-common/goacc/cache-3-2.c
+++ b/gcc/testsuite/c-c++-common/goacc/cache-3-2.c
@@ -19,25 +19,25 @@ foo (int *p, int (*q)[10], int r[10], int s[10][10])
   ;
   #pragma acc cache (r[-1:2])
   ;
-  #pragma acc cache (s[-1:2][ : ])
+  #pragma acc cache (s[-1:2][:])
   ;
   #pragma acc cache (s[-1:2][-2:10]) /* { dg-error "negative low bound in array section in" } */
   ;
   #pragma acc cache (a[-1:2])	 /* { dg-error "negative low bound in array section in" } */
   ;
-  #pragma acc cache (b[-1:2][0: ])	 /* { dg-error "negative low bound in array section in" } */
+  #pragma acc cache (b[-1:2][0:])	 /* { dg-error "negative low bound in array section in" } */
   ;
   #pragma acc cache (b[1:2][-2:10]) /* { dg-error "negative low bound in array section in" } */
   ;
   #pragma acc cache (p[2:-3])	 /* { dg-error "negative length in array section in" } */
   ;
-  #pragma acc cache (q[2:-3][ : ])	 /* { dg-error "negative length in array section in" } */
+  #pragma acc cache (q[2:-3][:])	 /* { dg-error "negative length in array section in" } */
   ;
   #pragma acc cache (q[2:3][0:-1])	 /* { dg-error "negative length in array section in" } */
   ;
   #pragma acc cache (r[2:-5])	 /* { dg-error "negative length in array section in" } */
   ;
-  #pragma acc cache (s[2:-5][ : ])	 /* { dg-error "negative length in array section in" } */
+  #pragma acc cache (s[2:-5][:])	 /* { dg-error "negative length in array section in" } */
   ;
   #pragma acc cache (s[2:5][0:-4])	 /* { dg-error "negative length in array section in" } */
   ;
diff --git a/gcc/testsuite/c-c++-common/goacc/data-clause-1.c b/gcc/testsuite/c-c++-common/goacc/data-clause-1.c
index b9871ec2cd58..9952ac4fb4fe 100644
--- a/gcc/testsuite/c-c++-common/goacc/data-clause-1.c
+++ b/gcc/testsuite/c-c++-common/goacc/data-clause-1.c
@@ -30,13 +30,13 @@ foo (int g[3][10], int h[4][8], int i[2][10], int j[][9],
     ;
   #pragma acc parallel copyout(t[2:5]) /* { dg-error "is threadprivate variable" } */
     ;
-  #pragma acc parallel copy(k[0.5: ]) /* { dg-error "low bound \[^\n\r]* of array section does not have integral type" } */
+  #pragma acc parallel copy(k[0.5:]) /* { dg-error "low bound \[^\n\r]* of array section does not have integral type" } */
     ;
-  #pragma acc parallel copyout(l[ :7.5f]) /* { dg-error "length \[^\n\r]* of array section does not have integral type" } */
+  #pragma acc parallel copyout(l[:7.5f]) /* { dg-error "length \[^\n\r]* of array section does not have integral type" } */
     ;
-  #pragma acc parallel copyin(m[p: ]) /* { dg-error "low bound \[^\n\r]* of array section does not have integral type" } */
+  #pragma acc parallel copyin(m[p:]) /* { dg-error "low bound \[^\n\r]* of array section does not have integral type" } */
     ;
-  #pragma acc parallel copy(n[ :p]) /* { dg-error "length \[^\n\r]* of array section does not have integral type" } */
+  #pragma acc parallel copy(n[:p]) /* { dg-error "length \[^\n\r]* of array section does not have integral type" } */
     ;
   #pragma acc parallel copyin(o[2:5]) /* { dg-error "does not have pointer or array type" } */
     ;
@@ -44,72 +44,72 @@ foo (int g[3][10], int h[4][8], int i[2][10], int j[][9],
     ;
   #pragma acc parallel create(s2) /* { dg-error "'s2' does not have a mappable type in 'map' clause" } */
     ;
-  #pragma acc parallel copyin(a[ : ][ : ]) /* { dg-error "array type length expression must be specified" } */
+  #pragma acc parallel copyin(a[:][:]) /* { dg-error "array type length expression must be specified" } */
     bar (&a[0][0]); /* { dg-error "referenced in target region does not have a mappable type" } */
-  #pragma acc parallel copy(b[-1: ]) /* { dg-error "negative low bound in array section" } */
+  #pragma acc parallel copy(b[-1:]) /* { dg-error "negative low bound in array section" } */
     bar (b);
-  #pragma acc parallel copy(c[ :-3][ : ]) /* { dg-error "negative length in array section" } */
+  #pragma acc parallel copy(c[:-3][:]) /* { dg-error "negative length in array section" } */
     bar (&c[0][0]);
-  #pragma acc parallel copyout(d[11: ]) /* { dg-error "low bound \[^\n\r]* above array section size" } */
+  #pragma acc parallel copyout(d[11:]) /* { dg-error "low bound \[^\n\r]* above array section size" } */
     bar (d);
-  #pragma acc parallel copyin(e[ :11]) /* { dg-error "length \[^\n\r]* above array section size" } */
+  #pragma acc parallel copyin(e[:11]) /* { dg-error "length \[^\n\r]* above array section size" } */
     bar (e);
   #pragma acc parallel copyin(f[1:10]) /* { dg-error "high bound \[^\n\r]* above array section size" } */
     bar (f);
-  #pragma acc parallel copyout(g[ : ][0:10]) /* { dg-error "for array function parameter length expression must be specified" } */
+  #pragma acc parallel copyout(g[:][0:10]) /* { dg-error "for array function parameter length expression must be specified" } */
     bar (&g[0][0]);
-  #pragma acc parallel copyout(h[2:1][-1: ]) /* { dg-error "negative low bound in array section" } */
+  #pragma acc parallel copyout(h[2:1][-1:]) /* { dg-error "negative low bound in array section" } */
     bar (&h[0][0]);
-  #pragma acc parallel copy(h[ :1][ :-3]) /* { dg-error "negative length in array section" } */
+  #pragma acc parallel copy(h[:1][:-3]) /* { dg-error "negative length in array section" } */
     bar (&h[0][0]);
-  #pragma acc parallel copy(i[ :1][11: ]) /* { dg-error "low bound \[^\n\r]* above array section size" } */
+  #pragma acc parallel copy(i[:1][11:]) /* { dg-error "low bound \[^\n\r]* above array section size" } */
     bar (&i[0][0]);
-  #pragma acc parallel copyout(j[3:1][ :10]) /* { dg-error "length \[^\n\r]* above array section size" } */
+  #pragma acc parallel copyout(j[3:1][:10]) /* { dg-error "length \[^\n\r]* above array section size" } */
     bar (&j[0][0]);
   #pragma acc parallel copyin(j[30:1][5:5]) /* { dg-error "high bound \[^\n\r]* above array section size" } */
     bar (&j[0][0]);
-  #pragma acc parallel copyin(a2[ :1][2:4])
+  #pragma acc parallel copyin(a2[:1][2:4])
     bar (&a2[0][0]);
-  #pragma acc parallel copy(a2[3:5][ : ])
+  #pragma acc parallel copy(a2[3:5][:])
     bar (&a2[0][0]);
-  #pragma acc parallel copyin(a2[3:5][ :10])
+  #pragma acc parallel copyin(a2[3:5][:10])
     bar (&a2[0][0]);
-  #pragma acc parallel copy(b2[0: ])
+  #pragma acc parallel copy(b2[0:])
     bar (b2);
-  #pragma acc parallel copy(c2[ :3][ : ])
+  #pragma acc parallel copy(c2[:3][:])
     bar (&c2[0][0]);
-  #pragma acc parallel copyout(d2[9: ])
+  #pragma acc parallel copyout(d2[9:])
     bar (d2);
-  #pragma acc parallel copyin(e2[ :10])
+  #pragma acc parallel copyin(e2[:10])
     bar (e2);
   #pragma acc parallel copyin(f2[1:9])
     bar (f2);
-  #pragma acc parallel copy(g2[ :1][2:4])
+  #pragma acc parallel copy(g2[:1][2:4])
     bar (&g2[0][0]);
-  #pragma acc parallel copyout(h2[2:2][0: ])
+  #pragma acc parallel copyout(h2[2:2][0:])
     bar (&h2[0][0]);
-  #pragma acc parallel copy(h2[ :1][ :3])
+  #pragma acc parallel copy(h2[:1][:3])
     bar (&h2[0][0]);
-  #pragma acc parallel copyin(i2[ :1][9: ])
+  #pragma acc parallel copyin(i2[:1][9:])
     bar (&i2[0][0]);
-  #pragma acc parallel copyout(j2[3:4][ :9])
+  #pragma acc parallel copyout(j2[3:4][:9])
     bar (&j2[0][0]);
   #pragma acc parallel copyin(j2[30:1][5:4])
     bar (&j2[0][0]);
   #pragma acc parallel copy(q[1:2])
     ;
-  #pragma acc parallel copy(q[3:5][ :10]) /* { dg-error "array section is not contiguous" } */
+  #pragma acc parallel copy(q[3:5][:10]) /* { dg-error "array section is not contiguous" } */
     ;
-  #pragma acc parallel copy(r[3: ][2:1][1:2])
+  #pragma acc parallel copy(r[3:][2:1][1:2])
     ;
-  #pragma acc parallel copy(r[3: ][2:1][1:2][ : ][0:4])
+  #pragma acc parallel copy(r[3:][2:1][1:2][:][0:4])
     ;
-  #pragma acc parallel copy(r[3: ][2:1][1:2][1: ][0:4]) /* { dg-error "array section is not contiguous" } */
+  #pragma acc parallel copy(r[3:][2:1][1:2][1:][0:4]) /* { dg-error "array section is not contiguous" } */
     ;
-  #pragma acc parallel copy(r[3: ][2:1][1:2][ :3][0:4]) /* { dg-error "array section is not contiguous" } */
+  #pragma acc parallel copy(r[3:][2:1][1:2][:3][0:4]) /* { dg-error "array section is not contiguous" } */
     ;
-  #pragma acc parallel copy(r[3: ][2:1][1:2][ : ][1: ]) /* { dg-error "array section is not contiguous" } */
+  #pragma acc parallel copy(r[3:][2:1][1:2][:][1:]) /* { dg-error "array section is not contiguous" } */
     ;
-  #pragma acc parallel copy(r[3: ][2:1][1:2][ : ][ :3]) /* { dg-error "array section is not contiguous" } */
+  #pragma acc parallel copy(r[3:][2:1][1:2][:][:3]) /* { dg-error "array section is not contiguous" } */
     ;
 }
diff --git a/gcc/testsuite/c-c++-common/goacc/data-clause-2.c b/gcc/testsuite/c-c++-common/goacc/data-clause-2.c
index 84c7daca1ab8..d4603b016dd6 100644
--- a/gcc/testsuite/c-c++-common/goacc/data-clause-2.c
+++ b/gcc/testsuite/c-c++-common/goacc/data-clause-2.c
@@ -18,25 +18,25 @@ foo (int *p, int (*q)[10], int r[10], int s[10][10])
   ;
   #pragma acc parallel copy (r[-1:2])
   ;
-  #pragma acc parallel copy (s[-1:2][ : ])
+  #pragma acc parallel copy (s[-1:2][:])
   ;
   #pragma acc parallel copy (s[-1:2][-2:10]) /* { dg-error "negative low bound in array section in" } */
   ;
   #pragma acc parallel copy (a[-1:2])	 /* { dg-error "negative low bound in array section in" } */
   ;
-  #pragma acc parallel copy (b[-1:2][0: ])	 /* { dg-error "negative low bound in array section in" } */
+  #pragma acc parallel copy (b[-1:2][0:])	 /* { dg-error "negative low bound in array section in" } */
   ;
   #pragma acc parallel copy (b[1:2][-2:10]) /* { dg-error "negative low bound in array section in" } */
   ;
   #pragma acc parallel copy (p[2:-3])	 /* { dg-error "negative length in array section in" } */
   ;
-  #pragma acc parallel copy (q[2:-3][ : ])	 /* { dg-error "negative length in array section in" } */
+  #pragma acc parallel copy (q[2:-3][:])	 /* { dg-error "negative length in array section in" } */
   ;
   #pragma acc parallel copy (q[2:3][0:-1])	 /* { dg-error "negative length in array section in" } */
   ;
   #pragma acc parallel copy (r[2:-5])	 /* { dg-error "negative length in array section in" } */
   ;
-  #pragma acc parallel copy (s[2:-5][ : ])	 /* { dg-error "negative length in array section in" } */
+  #pragma acc parallel copy (s[2:-5][:])	 /* { dg-error "negative length in array section in" } */
   ;
   #pragma acc parallel copy (s[2:5][0:-4])	 /* { dg-error "negative length in array section in" } */
   ;
diff --git a/gcc/testsuite/c-c++-common/goacc/data-clause-duplicate-1.c b/gcc/testsuite/c-c++-common/goacc/data-clause-duplicate-1.c
index 3f7773d629f0..c87ef8bee84c 100644
--- a/gcc/testsuite/c-c++-common/goacc/data-clause-duplicate-1.c
+++ b/gcc/testsuite/c-c++-common/goacc/data-clause-duplicate-1.c
@@ -8,7 +8,7 @@ fun (void)
   ;
 #pragma acc serial present(fp[0:2]) copyin(fp[0:2]) /* { dg-error "'fp' appears more than once in data clauses" } */
   ;
-#pragma acc data create(fp[ :10]) deviceptr(fp) /* { dg-error "'fp' appears more than once in data clauses" } */
+#pragma acc data create(fp[:10]) deviceptr(fp) /* { dg-error "'fp' appears more than once in data clauses" } */
   ;
 #pragma acc data create(fp) present(fp) /* { dg-error "'fp' appears more than once in data clauses" } */
   ;
diff --git a/gcc/testsuite/c-c++-common/goacc/mdc-2.c b/gcc/testsuite/c-c++-common/goacc/mdc-2.c
index 8ddda0823f16..246625c76a21 100644
--- a/gcc/testsuite/c-c++-common/goacc/mdc-2.c
+++ b/gcc/testsuite/c-c++-common/goacc/mdc-2.c
@@ -24,17 +24,17 @@ t1 ()
 #pragma acc exit data detach(a)
     }
 
-#pragma acc enter data attach(z[ :5]) /* { dg-error "expected single pointer in .attach. clause" } */
+#pragma acc enter data attach(z[:5]) /* { dg-error "expected single pointer in .attach. clause" } */
 /* { dg-error "has no data movement clause" "" { target *-*-* } .-1 } */
-#pragma acc exit data detach(z[ :5]) /* { dg-error "expected single pointer in .detach. clause" } */
+#pragma acc exit data detach(z[:5]) /* { dg-error "expected single pointer in .detach. clause" } */
 /* { dg-error "has no data movement clause" "" { target *-*-* } .-1 } */
-#pragma acc enter data attach(z[1: ]) /* { dg-error "expected single pointer in .attach. clause" } */
+#pragma acc enter data attach(z[1:]) /* { dg-error "expected single pointer in .attach. clause" } */
 /* { dg-error "has no data movement clause" "" { target *-*-* } .-1 } */
-#pragma acc exit data detach(z[1: ]) /* { dg-error "expected single pointer in .detach. clause" } */
+#pragma acc exit data detach(z[1:]) /* { dg-error "expected single pointer in .detach. clause" } */
 /* { dg-error "has no data movement clause" "" { target *-*-* } .-1 } */
-#pragma acc enter data attach(z[ : ]) /* { dg-error "expected single pointer in .attach. clause" } */
+#pragma acc enter data attach(z[:]) /* { dg-error "expected single pointer in .attach. clause" } */
 /* { dg-error "has no data movement clause" "" { target *-*-* } .-1 } */
-#pragma acc exit data detach(z[ : ]) /* { dg-error "expected single pointer in .detach. clause" } */
+#pragma acc exit data detach(z[:]) /* { dg-error "expected single pointer in .detach. clause" } */
 /* { dg-error "has no data movement clause" "" { target *-*-* } .-1 } */
 #pragma acc enter data attach(z[3]) /* { dg-error "expected pointer in .attach. clause" } */
 /* { dg-error "has no data movement clause" "" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/c-c++-common/goacc/readonly-1.c b/gcc/testsuite/c-c++-common/goacc/readonly-1.c
index a2fae4c20964..300464c92e3f 100644
--- a/gcc/testsuite/c-c++-common/goacc/readonly-1.c
+++ b/gcc/testsuite/c-c++-common/goacc/readonly-1.c
@@ -15,33 +15,33 @@ int main (void)
   int x[32], y[32];
   struct S s = {x, 0};
 
-  #pragma acc declare copyin(readonly: x/*[ :32]*/, s/*.ptr[ :16]*/) copyin(y/*[ :32]*/)
+  #pragma acc declare copyin(readonly: x/*[:32]*/, s/*.ptr[:16]*/) copyin(y/*[:32]*/)
 
-  #pragma acc parallel copyin(readonly: x[ :32], s.ptr[ :16]) copyin(y[ :32])
+  #pragma acc parallel copyin(readonly: x[:32], s.ptr[:16]) copyin(y[:32])
   {
-    #pragma acc cache (readonly: x[ :32])
-    #pragma acc cache (y[ :32])
+    #pragma acc cache (readonly: x[:32])
+    #pragma acc cache (y[:32])
   }
 
-  #pragma acc kernels copyin(readonly: x[ :32], s.ptr[ :16]) copyin(y[ :32])
+  #pragma acc kernels copyin(readonly: x[:32], s.ptr[:16]) copyin(y[:32])
   {
-    #pragma acc cache (readonly: x[ :32])
-    #pragma acc cache (y[ :32])
+    #pragma acc cache (readonly: x[:32])
+    #pragma acc cache (y[:32])
   }
 
-  #pragma acc serial copyin(readonly: x[ :32], s.ptr[ :16]) copyin(y[ :32])
+  #pragma acc serial copyin(readonly: x[:32], s.ptr[:16]) copyin(y[:32])
   {
-    #pragma acc cache (readonly: x[ :32])
-    #pragma acc cache (y[ :32])
+    #pragma acc cache (readonly: x[:32])
+    #pragma acc cache (y[:32])
   }
 
-  #pragma acc data copyin(readonly: x[ :32], s.ptr[ :16]) copyin(y[ :32])
+  #pragma acc data copyin(readonly: x[:32], s.ptr[:16]) copyin(y[:32])
   {
-    #pragma acc cache (readonly: x[ :32])
-    #pragma acc cache (y[ :32])
+    #pragma acc cache (readonly: x[:32])
+    #pragma acc cache (y[:32])
   }
 
-  #pragma acc enter data copyin(readonly: x[ :32], s.ptr[ :16]) copyin(y[ :32])
+  #pragma acc enter data copyin(readonly: x[:32], s.ptr[:16]) copyin(y[:32])
 
   return 0;
 }
diff --git a/gcc/testsuite/c-c++-common/gomp/allocate-4.c b/gcc/testsuite/c-c++-common/gomp/allocate-4.c
index 2576d83397e9..4e0f44a73174 100644
--- a/gcc/testsuite/c-c++-common/gomp/allocate-4.c
+++ b/gcc/testsuite/c-c++-common/gomp/allocate-4.c
@@ -9,7 +9,7 @@ foo (void)
   s[0]++;
 #pragma omp parallel reduction (+: s[2:2]) allocate(s)
   s[2]++;
-#pragma omp parallel reduction (+: p[ :2]) allocate(p)
+#pragma omp parallel reduction (+: p[:2]) allocate(p)
   p[0]++;
 #pragma omp parallel reduction (+: p[2:2]) allocate(p)
   p[2]++;
@@ -30,7 +30,7 @@ bar (void)
 #pragma omp teams distribute parallel for reduction (+: s[2:2]) allocate(s)
   for (i = 0; i < 64; i++)
     s[2]++;
-#pragma omp teams distribute parallel for reduction (+: p[ :2]) allocate(p)
+#pragma omp teams distribute parallel for reduction (+: p[:2]) allocate(p)
   for (i = 0; i < 64; i++)
     p[0]++;
 #pragma omp teams distribute parallel for reduction (+: p[2:2]) allocate(p)
diff --git a/gcc/testsuite/c-c++-common/gomp/clauses-3.c b/gcc/testsuite/c-c++-common/gomp/clauses-3.c
index 4ceae407ee35..54043e0fb676 100644
--- a/gcc/testsuite/c-c++-common/gomp/clauses-3.c
+++ b/gcc/testsuite/c-c++-common/gomp/clauses-3.c
@@ -18,9 +18,9 @@ main ()
   bar (&s.v.a);
   #pragma omp target map (s.v.a) map (always, to: s.u) map (s.x)
   ;
-  #pragma omp target map (s.s[0]) map (s.v.b[ :3])
+  #pragma omp target map (s.s[0]) map (s.v.b[:3])
   ;
-  #pragma omp target map (s.s[0]) map (s.v.b[ :3])
+  #pragma omp target map (s.s[0]) map (s.v.b[:3])
   baz (s.s);
   return 0;
 }
diff --git a/gcc/testsuite/c-c++-common/gomp/declare-mapper-3.c b/gcc/testsuite/c-c++-common/gomp/declare-mapper-3.c
index c78e54293b96..b9f78981103f 100644
--- a/gcc/testsuite/c-c++-common/gomp/declare-mapper-3.c
+++ b/gcc/testsuite/c-c++-common/gomp/declare-mapper-3.c
@@ -14,7 +14,7 @@ int main (int argc, char *argv[])
 {
   int N = 1024;
 #pragma omp declare mapper (mapN:struct S s) map(to:s.ptr, s.size) \
-					     map(s.ptr[ :N])
+					     map(s.ptr[:N])
 
   struct S s;
   s.ptr = (int *) malloc (sizeof (int) * N);
diff --git a/gcc/testsuite/c-c++-common/gomp/depend-1.c b/gcc/testsuite/c-c++-common/gomp/depend-1.c
index 575bde972f5d..599031f2d900 100644
--- a/gcc/testsuite/c-c++-common/gomp/depend-1.c
+++ b/gcc/testsuite/c-c++-common/gomp/depend-1.c
@@ -18,61 +18,61 @@ foo (int g[3][10], int h[4][8], int i[2][10], int j[][9],
     ;
   #pragma omp task depend(out: t[2:5])
     ;
-  #pragma omp task depend(inout: k[0.5: ]) /* { dg-error "low bound \[^\n\r]* of array section does not have integral type" } */
+  #pragma omp task depend(inout: k[0.5:]) /* { dg-error "low bound \[^\n\r]* of array section does not have integral type" } */
     ;
-  #pragma omp task depend(in: l[ :7.5f]) /* { dg-error "length \[^\n\r]* of array section does not have integral type" } */
+  #pragma omp task depend(in: l[:7.5f]) /* { dg-error "length \[^\n\r]* of array section does not have integral type" } */
     ;
-  #pragma omp task depend(out: m[p: ]) /* { dg-error "low bound \[^\n\r]* of array section does not have integral type" } */
+  #pragma omp task depend(out: m[p:]) /* { dg-error "low bound \[^\n\r]* of array section does not have integral type" } */
     ;
-  #pragma omp task depend(inout: n[ :p]) /* { dg-error "length \[^\n\r]* of array section does not have integral type" } */
+  #pragma omp task depend(inout: n[:p]) /* { dg-error "length \[^\n\r]* of array section does not have integral type" } */
     ;
   #pragma omp task depend(in: o[2:5]) /* { dg-error "does not have pointer or array type" } */
     ;
-  #pragma omp task depend(out: a[ : ][2:4]) /* { dg-error "array type length expression must be specified" } */
+  #pragma omp task depend(out: a[:][2:4]) /* { dg-error "array type length expression must be specified" } */
     ;
-  #pragma omp task depend(inout: b[-1: ]) /* { dg-error "negative low bound in array section" } */
+  #pragma omp task depend(inout: b[-1:]) /* { dg-error "negative low bound in array section" } */
     ;
-  #pragma omp task depend(inout: c[ :-3][1:1]) /* { dg-error "negative length in array section" } */
+  #pragma omp task depend(inout: c[:-3][1:1]) /* { dg-error "negative length in array section" } */
     ;
-  #pragma omp task depend(in: d[11: ]) /* { dg-error "low bound \[^\n\r]* above array section size" } */
+  #pragma omp task depend(in: d[11:]) /* { dg-error "low bound \[^\n\r]* above array section size" } */
     ;
-  #pragma omp task depend(out: e[ :11]) /* { dg-error "length \[^\n\r]* above array section size" } */
+  #pragma omp task depend(out: e[:11]) /* { dg-error "length \[^\n\r]* above array section size" } */
     ;
   #pragma omp task depend(out: f[1:10]) /* { dg-error "high bound \[^\n\r]* above array section size" } */
     ;
-  #pragma omp task depend(in: g[ : ][2:4]) /* { dg-error "for array function parameter length expression must be specified" } */
+  #pragma omp task depend(in: g[:][2:4]) /* { dg-error "for array function parameter length expression must be specified" } */
     ;
-  #pragma omp task depend(in: h[2:2][-1: ]) /* { dg-error "negative low bound in array section" } */
+  #pragma omp task depend(in: h[2:2][-1:]) /* { dg-error "negative low bound in array section" } */
     ;
-  #pragma omp task depend(inout: h[ :1][ :-3]) /* { dg-error "negative length in array section" } */
+  #pragma omp task depend(inout: h[:1][:-3]) /* { dg-error "negative length in array section" } */
     ;
-  #pragma omp task depend(out: i[ :1][11: ]) /* { dg-error "low bound \[^\n\r]* above array section size" } */
+  #pragma omp task depend(out: i[:1][11:]) /* { dg-error "low bound \[^\n\r]* above array section size" } */
     ;
-  #pragma omp task depend(in: j[3:4][ :10]) /* { dg-error "length \[^\n\r]* above array section size" } */
+  #pragma omp task depend(in: j[3:4][:10]) /* { dg-error "length \[^\n\r]* above array section size" } */
     ;
   #pragma omp task depend(out: j[30:10][5:5]) /* { dg-error "high bound \[^\n\r]* above array section size" } */
     ;
-  #pragma omp task depend(out: a2[ :3][2:4])
+  #pragma omp task depend(out: a2[:3][2:4])
     ;
-  #pragma omp task depend(inout: b2[0: ])
+  #pragma omp task depend(inout: b2[0:])
     ;
-  #pragma omp task depend(inout: c2[ :3][1:1])
+  #pragma omp task depend(inout: c2[:3][1:1])
     ;
-  #pragma omp task depend(in: d2[9: ])
+  #pragma omp task depend(in: d2[9:])
     ;
-  #pragma omp task depend(out: e2[ :10])
+  #pragma omp task depend(out: e2[:10])
     ;
   #pragma omp task depend(out: f2[1:9])
     ;
-  #pragma omp task depend(in: g2[ :2][2:4])
+  #pragma omp task depend(in: g2[:2][2:4])
     ;
-  #pragma omp task depend(in: h2[2:2][0: ])
+  #pragma omp task depend(in: h2[2:2][0:])
     ;
-  #pragma omp task depend(inout: h2[ :1][ :3])
+  #pragma omp task depend(inout: h2[:1][:3])
     ;
-  #pragma omp task depend(out: i2[ :1][9: ])
+  #pragma omp task depend(out: i2[:1][9:])
     ;
-  #pragma omp task depend(in: j2[3:4][ :9])
+  #pragma omp task depend(in: j2[3:4][:9])
     ;
   #pragma omp task depend(out: j2[30:10][5:4])
     ;
diff --git a/gcc/testsuite/c-c++-common/gomp/depend-2.c b/gcc/testsuite/c-c++-common/gomp/depend-2.c
index b5668474d10f..99bf8ae1b832 100644
--- a/gcc/testsuite/c-c++-common/gomp/depend-2.c
+++ b/gcc/testsuite/c-c++-common/gomp/depend-2.c
@@ -6,12 +6,12 @@ void
 foo (int a[10][10][10], int **b)
 {
   int c[10][10][10];
-  #pragma omp task depend(out: a[2:4][3: ][ :7], b[1:7][2:8])
+  #pragma omp task depend(out: a[2:4][3:][:7], b[1:7][2:8])
     bar (a);
   int i = 1, j = 3, k = 2, l = 6;
-  #pragma omp task depend(in: a[++i:++j][++k: ][ :++l])
+  #pragma omp task depend(in: a[++i:++j][++k:][:++l])
     bar (a);
-  #pragma omp task depend(out: a[7:2][ : ][ : ], c[5:2][ : ][ : ])
+  #pragma omp task depend(out: a[7:2][:][:], c[5:2][:][:])
   {
     bar (c);
     bar (a);
diff --git a/gcc/testsuite/c-c++-common/gomp/depend-3.c b/gcc/testsuite/c-c++-common/gomp/depend-3.c
index 2cea43ab3c2b..22fcd8d9c704 100644
--- a/gcc/testsuite/c-c++-common/gomp/depend-3.c
+++ b/gcc/testsuite/c-c++-common/gomp/depend-3.c
@@ -6,16 +6,16 @@ void
 foo (int a[10][10][10], int **b, int x)
 {
   int c[10][10][10];
-  #pragma omp task depend(out: a[2:4][3:0][ :7])	/* { dg-error "zero length array section" } */
+  #pragma omp task depend(out: a[2:4][3:0][:7])	/* { dg-error "zero length array section" } */
     bar (a);
-  #pragma omp task depend(inout: b[ :7][0:0][ :0]) /* { dg-error "zero length array section" } */
+  #pragma omp task depend(inout: b[:7][0:0][:0]) /* { dg-error "zero length array section" } */
     bar (a);
-  #pragma omp task depend(in: c[ : ][ : ][10: ])	/* { dg-error "zero length array section" } */
+  #pragma omp task depend(in: c[:][:][10:])	/* { dg-error "zero length array section" } */
     bar (c);
-  #pragma omp task depend(out: a[2:4][3:0][ :x])	/* { dg-error "zero length array section" } */
+  #pragma omp task depend(out: a[2:4][3:0][:x])	/* { dg-error "zero length array section" } */
     bar (a);
-  #pragma omp task depend(inout: b[ :x][0:0][ :0]) /* { dg-error "zero length array section" } */
+  #pragma omp task depend(inout: b[:x][0:0][:0]) /* { dg-error "zero length array section" } */
     bar (a);
-  #pragma omp task depend(in: c[ : ][x-2:x][10: ])	/* { dg-error "zero length array section" } */
+  #pragma omp task depend(in: c[:][x-2:x][10:])	/* { dg-error "zero length array section" } */
     bar (c);
 }
diff --git a/gcc/testsuite/c-c++-common/gomp/depend-4.c b/gcc/testsuite/c-c++-common/gomp/depend-4.c
index 0fd771e05fd1..d40b1fa83cde 100644
--- a/gcc/testsuite/c-c++-common/gomp/depend-4.c
+++ b/gcc/testsuite/c-c++-common/gomp/depend-4.c
@@ -25,13 +25,13 @@ foo (int *p, int (*q)[10], int r[10], int s[10][10])
   ;
   #pragma omp task depend (inout: p[2:-3])	 /* { dg-error "negative length in array section in" } */
   ;
-  #pragma omp task depend (inout: q[2:-3][ : ])	 /* { dg-error "negative length in array section in" } */
+  #pragma omp task depend (inout: q[2:-3][:])	 /* { dg-error "negative length in array section in" } */
   ;
   #pragma omp task depend (inout: q[2:3][0:-1])	 /* { dg-error "negative length in array section in" } */
   ;
   #pragma omp task depend (inout: r[2:-5])	 /* { dg-error "negative length in array section in" } */
   ;
-  #pragma omp task depend (inout: s[2:-5][ : ])	 /* { dg-error "negative length in array section in" } */
+  #pragma omp task depend (inout: s[2:-5][:])	 /* { dg-error "negative length in array section in" } */
   ;
   #pragma omp task depend (inout: s[2:5][0:-4])	 /* { dg-error "negative length in array section in" } */
   ;
diff --git a/gcc/testsuite/c-c++-common/gomp/depend-5.c b/gcc/testsuite/c-c++-common/gomp/depend-5.c
index 3a1b707e1055..993987f0a31b 100644
--- a/gcc/testsuite/c-c++-common/gomp/depend-5.c
+++ b/gcc/testsuite/c-c++-common/gomp/depend-5.c
@@ -15,11 +15,11 @@ foo (void)
   ;
   #pragma omp task depend(out: d[2])
   ;
-  #pragma omp task depend(in: d[ : ])
+  #pragma omp task depend(in: d[:])
   ;
   #pragma omp task depend(in: d[2:2])
   ;
-  #pragma omp task depend(in: d[ :2])
+  #pragma omp task depend(in: d[:2])
   ;
   #pragma omp task depend(inout: d[1].b->c[2])
   ;
diff --git a/gcc/testsuite/c-c++-common/gomp/depend-6.c b/gcc/testsuite/c-c++-common/gomp/depend-6.c
index c365cf64c64b..4684653a0666 100644
--- a/gcc/testsuite/c-c++-common/gomp/depend-6.c
+++ b/gcc/testsuite/c-c++-common/gomp/depend-6.c
@@ -13,9 +13,9 @@ struct U i;
 void
 foo (void)
 {
-  #pragma omp task depend(in: d[ :2].b->c[2])	/* { dg-error "expected" } */
+  #pragma omp task depend(in: d[:2].b->c[2])	/* { dg-error "expected" } */
   ;
-  #pragma omp task depend(inout: d[1: ].b->c[2])	/* { dg-error "expected" } */
+  #pragma omp task depend(inout: d[1:].b->c[2])	/* { dg-error "expected" } */
   ;
   #pragma omp task depend(out: d[0:1].a)	/* { dg-error "expected" } */
   ;
diff --git a/gcc/testsuite/c-c++-common/gomp/dispatch-1.c b/gcc/testsuite/c-c++-common/gomp/dispatch-1.c
index 35eb3b85d183..2a4e939d0002 100644
--- a/gcc/testsuite/c-c++-common/gomp/dispatch-1.c
+++ b/gcc/testsuite/c-c++-common/gomp/dispatch-1.c
@@ -64,7 +64,7 @@ void f1 (void)
   f2 ();
 #pragma omp dispatch depend(inout: sp)
   f2 ();
-#pragma omp dispatch depend(inoutset: arr[ :2])
+#pragma omp dispatch depend(inoutset: arr[:2])
   f2 ();
 #pragma omp dispatch depend(out: arr)
   f2 ();
diff --git a/gcc/testsuite/c-c++-common/gomp/loop-5.c b/gcc/testsuite/c-c++-common/gomp/loop-5.c
index bfc7017bea03..b9b2ad917677 100644
--- a/gcc/testsuite/c-c++-common/gomp/loop-5.c
+++ b/gcc/testsuite/c-c++-common/gomp/loop-5.c
@@ -2,7 +2,7 @@ __attribute__((noipa)) int
 foo (int *a, int *r3)
 {
   int r = 0, r2[2] = { 0, 0 }, i;
-  #pragma omp parallel loop default (none) reduction (+:r, r2[ :2], r3[ :2]) shared (a) lastprivate (i)
+  #pragma omp parallel loop default (none) reduction (+:r, r2[:2], r3[:2]) shared (a) lastprivate (i)
   for (i = 0; i < 1024; i++)
     {
       r += a[i];
diff --git a/gcc/testsuite/c-c++-common/gomp/map-1.c b/gcc/testsuite/c-c++-common/gomp/map-1.c
index 1501bf94ec62..bdcf84b30c0b 100644
--- a/gcc/testsuite/c-c++-common/gomp/map-1.c
+++ b/gcc/testsuite/c-c++-common/gomp/map-1.c
@@ -27,13 +27,13 @@ foo (int g[3][10], int h[4][8], int i[2][10], int j[][9],
     ;
   #pragma omp target map(from: t[2:5]) /* { dg-error "is threadprivate variable" } */
     ;
-  #pragma omp target map(tofrom: k[0.5: ]) /* { dg-error "low bound \[^\n\r]* of array section does not have integral type" } */
+  #pragma omp target map(tofrom: k[0.5:]) /* { dg-error "low bound \[^\n\r]* of array section does not have integral type" } */
     ;
-  #pragma omp target map(from: l[ :7.5f]) /* { dg-error "length \[^\n\r]* of array section does not have integral type" } */
+  #pragma omp target map(from: l[:7.5f]) /* { dg-error "length \[^\n\r]* of array section does not have integral type" } */
     ;
-  #pragma omp target map(to: m[p: ]) /* { dg-error "low bound \[^\n\r]* of array section does not have integral type" } */
+  #pragma omp target map(to: m[p:]) /* { dg-error "low bound \[^\n\r]* of array section does not have integral type" } */
     ;
-  #pragma omp target map(tofrom: n[ :p]) /* { dg-error "length \[^\n\r]* of array section does not have integral type" } */
+  #pragma omp target map(tofrom: n[:p]) /* { dg-error "length \[^\n\r]* of array section does not have integral type" } */
     ;
   #pragma omp target map(to: o[2:5]) /* { dg-error "does not have pointer or array type" } */
     ;
@@ -41,72 +41,72 @@ foo (int g[3][10], int h[4][8], int i[2][10], int j[][9],
     ;
   #pragma omp target map(alloc: s2) /* { dg-error "'s2' does not have a mappable type in 'map' clause" } */
     ;
-  #pragma omp target map(to: a[ : ][ : ]) /* { dg-error "array type length expression must be specified" } */
+  #pragma omp target map(to: a[:][:]) /* { dg-error "array type length expression must be specified" } */
     bar (&a[0][0]); /* { dg-error "referenced in target region does not have a mappable type" } */
-  #pragma omp target map(tofrom: b[-1: ]) /* { dg-error "negative low bound in array section" } */
+  #pragma omp target map(tofrom: b[-1:]) /* { dg-error "negative low bound in array section" } */
     bar (b);
-  #pragma omp target map(tofrom: c[ :-3][ : ]) /* { dg-error "negative length in array section" } */
+  #pragma omp target map(tofrom: c[:-3][:]) /* { dg-error "negative length in array section" } */
     bar (&c[0][0]);
-  #pragma omp target map(from: d[11: ]) /* { dg-error "low bound \[^\n\r]* above array section size" } */
+  #pragma omp target map(from: d[11:]) /* { dg-error "low bound \[^\n\r]* above array section size" } */
     bar (d);
-  #pragma omp target map(to: e[ :11]) /* { dg-error "length \[^\n\r]* above array section size" } */
+  #pragma omp target map(to: e[:11]) /* { dg-error "length \[^\n\r]* above array section size" } */
     bar (e);
   #pragma omp target map(to: f[1:10]) /* { dg-error "high bound \[^\n\r]* above array section size" } */
     bar (f);
-  #pragma omp target map(from: g[ : ][0:10]) /* { dg-error "for array function parameter length expression must be specified" } */
+  #pragma omp target map(from: g[:][0:10]) /* { dg-error "for array function parameter length expression must be specified" } */
     bar (&g[0][0]);
-  #pragma omp target map(from: h[2:1][-1: ]) /* { dg-error "negative low bound in array section" } */
+  #pragma omp target map(from: h[2:1][-1:]) /* { dg-error "negative low bound in array section" } */
     bar (&h[0][0]);
-  #pragma omp target map(tofrom: h[ :1][ :-3]) /* { dg-error "negative length in array section" } */
+  #pragma omp target map(tofrom: h[:1][:-3]) /* { dg-error "negative length in array section" } */
     bar (&h[0][0]);
-  #pragma omp target map(i[ :1][11: ]) /* { dg-error "low bound \[^\n\r]* above array section size" } */
+  #pragma omp target map(i[:1][11:]) /* { dg-error "low bound \[^\n\r]* above array section size" } */
     bar (&i[0][0]);
-  #pragma omp target map(from: j[3:1][ :10]) /* { dg-error "length \[^\n\r]* above array section size" } */
+  #pragma omp target map(from: j[3:1][:10]) /* { dg-error "length \[^\n\r]* above array section size" } */
     bar (&j[0][0]);
   #pragma omp target map(to: j[30:1][5:5]) /* { dg-error "high bound \[^\n\r]* above array section size" } */
     bar (&j[0][0]);
-  #pragma omp target map(to: a2[ :1][2:4])
+  #pragma omp target map(to: a2[:1][2:4])
     bar (&a2[0][0]);
-  #pragma omp target map(a2[3:5][ : ])
+  #pragma omp target map(a2[3:5][:])
     bar (&a2[0][0]);
-  #pragma omp target map(to: a2[3:5][ :10])
+  #pragma omp target map(to: a2[3:5][:10])
     bar (&a2[0][0]);
-  #pragma omp target map(tofrom: b2[0: ])
+  #pragma omp target map(tofrom: b2[0:])
     bar (b2);
-  #pragma omp target map(tofrom: c2[ :3][ : ])
+  #pragma omp target map(tofrom: c2[:3][:])
     bar (&c2[0][0]);
-  #pragma omp target map(from: d2[9: ])
+  #pragma omp target map(from: d2[9:])
     bar (d2);
-  #pragma omp target map(to: e2[ :10])
+  #pragma omp target map(to: e2[:10])
     bar (e2);
   #pragma omp target map(to: f2[1:9])
     bar (f2);
-  #pragma omp target map(g2[ :1][2:4])
+  #pragma omp target map(g2[:1][2:4])
     bar (&g2[0][0]);
-  #pragma omp target map(from: h2[2:2][0: ])
+  #pragma omp target map(from: h2[2:2][0:])
     bar (&h2[0][0]);
-  #pragma omp target map(tofrom: h2[ :1][ :3])
+  #pragma omp target map(tofrom: h2[:1][:3])
     bar (&h2[0][0]);
-  #pragma omp target map(to: i2[ :1][9: ])
+  #pragma omp target map(to: i2[:1][9:])
     bar (&i2[0][0]);
-  #pragma omp target map(from: j2[3:4][ :9])
+  #pragma omp target map(from: j2[3:4][:9])
     bar (&j2[0][0]);
   #pragma omp target map(to: j2[30:1][5:4])
     bar (&j2[0][0]);
   #pragma omp target map(q[1:2])
     ;
-  #pragma omp target map(tofrom: q[3:5][ :10]) /* { dg-error "array section is not contiguous" } */
+  #pragma omp target map(tofrom: q[3:5][:10]) /* { dg-error "array section is not contiguous" } */
     ;
-  #pragma omp target map(r[3: ][2:1][1:2])
+  #pragma omp target map(r[3:][2:1][1:2])
     ;
-  #pragma omp target map(r[3: ][2:1][1:2][ : ][0:4])
+  #pragma omp target map(r[3:][2:1][1:2][:][0:4])
     ;
-  #pragma omp target map(r[3: ][2:1][1:2][1: ][0:4]) /* { dg-error "array section is not contiguous" } */
+  #pragma omp target map(r[3:][2:1][1:2][1:][0:4]) /* { dg-error "array section is not contiguous" } */
     ;
-  #pragma omp target map(r[3: ][2:1][1:2][ :3][0:4]) /* { dg-error "array section is not contiguous" } */
+  #pragma omp target map(r[3:][2:1][1:2][:3][0:4]) /* { dg-error "array section is not contiguous" } */
     ;
-  #pragma omp target map(r[3: ][2:1][1:2][ : ][1: ]) /* { dg-error "array section is not contiguous" } */
+  #pragma omp target map(r[3:][2:1][1:2][:][1:]) /* { dg-error "array section is not contiguous" } */
     ;
-  #pragma omp target map(r[3: ][2:1][1:2][ : ][ :3]) /* { dg-error "array section is not contiguous" } */
+  #pragma omp target map(r[3:][2:1][1:2][:][:3]) /* { dg-error "array section is not contiguous" } */
     ;
 }
diff --git a/gcc/testsuite/c-c++-common/gomp/map-2.c b/gcc/testsuite/c-c++-common/gomp/map-2.c
index 03a3ed74502f..01fb4be869df 100644
--- a/gcc/testsuite/c-c++-common/gomp/map-2.c
+++ b/gcc/testsuite/c-c++-common/gomp/map-2.c
@@ -16,25 +16,25 @@ foo (int *p, int (*q)[10], int r[10], int s[10][10])
   ;
   #pragma omp target map (tofrom: r[-1:2])
   ;
-  #pragma omp target map (tofrom: s[-1:2][ : ])
+  #pragma omp target map (tofrom: s[-1:2][:])
   ;
   #pragma omp target map (tofrom: s[-1:2][-2:10]) /* { dg-error "negative low bound in array section in" } */
   ;
   #pragma omp target map (tofrom: a[-1:2])	 /* { dg-error "negative low bound in array section in" } */
   ;
-  #pragma omp target map (tofrom: b[-1:2][0: ])	 /* { dg-error "negative low bound in array section in" } */
+  #pragma omp target map (tofrom: b[-1:2][0:])	 /* { dg-error "negative low bound in array section in" } */
   ;
   #pragma omp target map (tofrom: b[1:2][-2:10]) /* { dg-error "negative low bound in array section in" } */
   ;
   #pragma omp target map (tofrom: p[2:-3])	 /* { dg-error "negative length in array section in" } */
   ;
-  #pragma omp target map (tofrom: q[2:-3][ : ])	 /* { dg-error "negative length in array section in" } */
+  #pragma omp target map (tofrom: q[2:-3][:])	 /* { dg-error "negative length in array section in" } */
   ;
   #pragma omp target map (tofrom: q[2:3][0:-1])	 /* { dg-error "negative length in array section in" } */
   ;
   #pragma omp target map (tofrom: r[2:-5])	 /* { dg-error "negative length in array section in" } */
   ;
-  #pragma omp target map (tofrom: s[2:-5][ : ])	 /* { dg-error "negative length in array section in" } */
+  #pragma omp target map (tofrom: s[2:-5][:])	 /* { dg-error "negative length in array section in" } */
   ;
   #pragma omp target map (tofrom: s[2:5][0:-4])	 /* { dg-error "negative length in array section in" } */
   ;
diff --git a/gcc/testsuite/c-c++-common/gomp/map-4.c b/gcc/testsuite/c-c++-common/gomp/map-4.c
index 79b61e4353c3..6c486365bf00 100644
--- a/gcc/testsuite/c-c++-common/gomp/map-4.c
+++ b/gcc/testsuite/c-c++-common/gomp/map-4.c
@@ -5,7 +5,7 @@ typedef double Grid[SIZE];
 
 void test (Grid src1)
 {
-  #pragma omp target map(alloc:src1[ : ])  /* { dg-error "for array function parameter length expression must be specified" }  */
+  #pragma omp target map(alloc:src1[:])  /* { dg-error "for array function parameter length expression must be specified" }  */
   {
     src1[0] = 5;
   }
@@ -13,7 +13,7 @@ void test (Grid src1)
 
 void test2 (double src2[])
 {
-  #pragma omp target map(alloc:src2[ : ])  /* { dg-error "for array function parameter length expression must be specified" }  */
+  #pragma omp target map(alloc:src2[:])  /* { dg-error "for array function parameter length expression must be specified" }  */
   {
     src2[0] = 5;
   }
@@ -21,7 +21,7 @@ void test2 (double src2[])
 
 void test3 (double *src3)
 {
-  #pragma omp target map(alloc:src3[ : ])  /* { dg-error "for pointer type length expression must be specified" }  */
+  #pragma omp target map(alloc:src3[:])  /* { dg-error "for pointer type length expression must be specified" }  */
   {
     src3[0] = 5;
   }
diff --git a/gcc/testsuite/c-c++-common/gomp/map-7.c b/gcc/testsuite/c-c++-common/gomp/map-7.c
index 6d79718f0713..3f1e9729e417 100644
--- a/gcc/testsuite/c-c++-common/gomp/map-7.c
+++ b/gcc/testsuite/c-c++-common/gomp/map-7.c
@@ -9,12 +9,12 @@ foo (void)
   int always[N];
   int close;
 
-  #pragma omp target map(always[ :N]) 
+  #pragma omp target map(always[:N]) 
   ;
 
-  #pragma omp target map(close, always[ :N]) 
+  #pragma omp target map(close, always[:N]) 
   ;
 
-  #pragma omp target map(always[ :N], close) 
+  #pragma omp target map(always[:N], close) 
   ;
 }
diff --git a/gcc/testsuite/c-c++-common/gomp/pr100902-1.c b/gcc/testsuite/c-c++-common/gomp/pr100902-1.c
index 63b780ecbeb1..6a857ab183d5 100644
--- a/gcc/testsuite/c-c++-common/gomp/pr100902-1.c
+++ b/gcc/testsuite/c-c++-common/gomp/pr100902-1.c
@@ -3,7 +3,7 @@
 void
 foo (int *ptr)
 {
-  #pragma omp target map (ptr, ptr[ :4])
+  #pragma omp target map (ptr, ptr[:4])
   #pragma omp parallel master
   ptr[0] = 1;
 }
@@ -11,7 +11,7 @@ foo (int *ptr)
 void
 bar (int *ptr)
 {
-  #pragma omp target parallel map (ptr[ :4], ptr)
+  #pragma omp target parallel map (ptr[:4], ptr)
   #pragma omp master
   ptr[0] = 1;
 }
diff --git a/gcc/testsuite/c-c++-common/gomp/pr103642.c b/gcc/testsuite/c-c++-common/gomp/pr103642.c
index f55b7b264b9c..bc6d7ac18de3 100644
--- a/gcc/testsuite/c-c++-common/gomp/pr103642.c
+++ b/gcc/testsuite/c-c++-common/gomp/pr103642.c
@@ -23,7 +23,7 @@ int main (void)
   t.s = (S *) malloc (sizeof (S));
   t.s->a = (int *) malloc (sizeof(int) * N);
 
-  #pragma omp target map(from: t.s->a[ :N])
+  #pragma omp target map(from: t.s->a[:N])
   {
     t.s->a[0] = 1;
   }
diff --git a/gcc/testsuite/c-c++-common/gomp/pr120180-1.c b/gcc/testsuite/c-c++-common/gomp/pr120180-1.c
index 9b16cc8cffb6..83521e622d81 100644
--- a/gcc/testsuite/c-c++-common/gomp/pr120180-1.c
+++ b/gcc/testsuite/c-c++-common/gomp/pr120180-1.c
@@ -9,9 +9,9 @@ int main()
   double *qq;
   int i, k, nq;
 
-  #pragma omp metadirective when(user={condition(0)}: target teams distribute parallel for collapse(2) map(qq[ :0]) private(i)) \
-                            when(user={condition(0)}: target teams distribute parallel for map(qq[ :0]) private(i)) \
-                            when(user={condition(1)}: target teams loop collapse(2) map(qq[ :0]) private(i))
+  #pragma omp metadirective when(user={condition(0)}: target teams distribute parallel for collapse(2) map(qq[:0]) private(i)) \
+                            when(user={condition(0)}: target teams distribute parallel for map(qq[:0]) private(i)) \
+                            when(user={condition(1)}: target teams loop collapse(2) map(qq[:0]) private(i))
   for(k=0; k<blksize; k++)
     {
 #pragma omp metadirective when(user={condition(0)}: simd) default()
diff --git a/gcc/testsuite/c-c++-common/gomp/pr61486-1.c b/gcc/testsuite/c-c++-common/gomp/pr61486-1.c
index d09e19db4447..dbd621f0dba7 100644
--- a/gcc/testsuite/c-c++-common/gomp/pr61486-1.c
+++ b/gcc/testsuite/c-c++-common/gomp/pr61486-1.c
@@ -6,7 +6,7 @@ int
 foo (int *a)
 {
   int i, j = 0;
-  #pragma omp target teams distribute simd linear(i) map(a[ :10])
+  #pragma omp target teams distribute simd linear(i) map(a[:10])
   for (i = 0; i < 10; i++)
     a[i] = j;
   return i;
diff --git a/gcc/testsuite/c-c++-common/gomp/pr81006.c b/gcc/testsuite/c-c++-common/gomp/pr81006.c
index 9a4ca41436af..a826c5f5a539 100644
--- a/gcc/testsuite/c-c++-common/gomp/pr81006.c
+++ b/gcc/testsuite/c-c++-common/gomp/pr81006.c
@@ -5,6 +5,6 @@ int a[] = {};
 
 void foo()
 {
-  #pragma omp task depend(out: a[ : ])	/* { dg-error "zero length array section in .depend. clause" } */
+  #pragma omp task depend(out: a[:])	/* { dg-error "zero length array section in .depend. clause" } */
     {}
 }
diff --git a/gcc/testsuite/c-c++-common/gomp/pr91920.c b/gcc/testsuite/c-c++-common/gomp/pr91920.c
index 016005e8b5ed..604fd5986f8b 100644
--- a/gcc/testsuite/c-c++-common/gomp/pr91920.c
+++ b/gcc/testsuite/c-c++-common/gomp/pr91920.c
@@ -7,7 +7,7 @@ foo (void)
 {
   int i;
   float f[3] = { 0.0f, 0.0f, 0.0f };
-#pragma omp parallel for default(none) reduction(+:f[ :3])
+#pragma omp parallel for default(none) reduction(+:f[:3])
   for (i = 0; i < 1000; i++)
     {
       int j;
diff --git a/gcc/testsuite/c-c++-common/gomp/pr96867.c b/gcc/testsuite/c-c++-common/gomp/pr96867.c
index 04f920c742bc..f55d9cf99600 100644
--- a/gcc/testsuite/c-c++-common/gomp/pr96867.c
+++ b/gcc/testsuite/c-c++-common/gomp/pr96867.c
@@ -5,5 +5,5 @@ int *v;
 void
 foo (int x)
 {
-  #pragma omp target update to (x, v[ : ])	/* { dg-error "for pointer type length expression must be specified" } */
+  #pragma omp target update to (x, v[:])	/* { dg-error "for pointer type length expression must be specified" } */
 }
diff --git a/gcc/testsuite/c-c++-common/gomp/pr99928-16.c b/gcc/testsuite/c-c++-common/gomp/pr99928-16.c
index d548b391d829..84cd85da7cf0 100644
--- a/gcc/testsuite/c-c++-common/gomp/pr99928-16.c
+++ b/gcc/testsuite/c-c++-common/gomp/pr99928-16.c
@@ -4,13 +4,13 @@ void
 foo (void)
 {
   int a[6] = {};
-  #pragma omp target simd reduction(+:a[ :3])
+  #pragma omp target simd reduction(+:a[:3])
   for (int i = 0; i < 6; i++)
     a[0]++;
-  #pragma omp target simd reduction(+:a[ :3]) map(always, tofrom: a)
+  #pragma omp target simd reduction(+:a[:3]) map(always, tofrom: a)
   for (int i = 0; i < 6; i++)
     a[0]++;
-  #pragma omp target simd reduction(+:a[ :3]) map(always, tofrom: a[ :6])
+  #pragma omp target simd reduction(+:a[:3]) map(always, tofrom: a[:6])
   for (int i = 0; i < 6; i++)
     a[0]++;
 }
diff --git a/gcc/testsuite/c-c++-common/gomp/reduction-1.c b/gcc/testsuite/c-c++-common/gomp/reduction-1.c
index 4ee1006db7c1..897ed68e1a34 100644
--- a/gcc/testsuite/c-c++-common/gomp/reduction-1.c
+++ b/gcc/testsuite/c-c++-common/gomp/reduction-1.c
@@ -10,17 +10,17 @@ foo (int a[10][10][10], int **b, int x)
   int c[10][10][0];
   int d[0];
   char e[12];
-  #pragma omp parallel reduction(+: a[ :4][ :0][ :7])	/* { dg-error "zero length array section" } */
+  #pragma omp parallel reduction(+: a[:4][:0][:7])	/* { dg-error "zero length array section" } */
     bar (a);
-  #pragma omp parallel reduction(+: b[ :7][0:0][ :0])	/* { dg-error "zero length array section" } */
+  #pragma omp parallel reduction(+: b[:7][0:0][:0])	/* { dg-error "zero length array section" } */
     bar (a);
-  #pragma omp parallel reduction(+: c[ : ][ : ][0: ])	/* { dg-error "zero length array section|for unknown bound array type length expression must be specified" } */
+  #pragma omp parallel reduction(+: c[:][:][0:])	/* { dg-error "zero length array section|for unknown bound array type length expression must be specified" } */
     bar (a);
-  #pragma omp parallel reduction(+: a[ :4][ :0][ :x])	/* { dg-error "zero length array section" } */
+  #pragma omp parallel reduction(+: a[:4][:0][:x])	/* { dg-error "zero length array section" } */
     bar (a);
-  #pragma omp parallel reduction(+: b[ :x][0:0][ :0])	/* { dg-error "zero length array section" } */
+  #pragma omp parallel reduction(+: b[:x][0:0][:0])	/* { dg-error "zero length array section" } */
     bar (a);
-  #pragma omp parallel reduction(+: c[ : ][ :x][0: ])	/* { dg-error "zero length array section|for unknown bound array type length expression must be specified" } */
+  #pragma omp parallel reduction(+: c[:][:x][0:])	/* { dg-error "zero length array section|for unknown bound array type length expression must be specified" } */
     bar (a);
   #pragma omp parallel reduction(+: d)			/* { dg-error "is a zero size array" } */
     bar (a);
@@ -42,11 +42,11 @@ foo (int a[10][10][10], int **b, int x)
     bar (a);
   #pragma omp parallel reduction(+: a[0:2.5])		/* { dg-error "length \[^\n\r]* of array section does not have integral type" } */
     bar (a);
-  #pragma omp parallel reduction(+: f[ : ][0:2])		/* { dg-error "for unknown bound array type length expression must be specified" } */
+  #pragma omp parallel reduction(+: f[:][0:2])		/* { dg-error "for unknown bound array type length expression must be specified" } */
     bar (a);
-  #pragma omp parallel reduction(+: a[ : ][0:10])		/* { dg-error "for array function parameter length expression must be specified" } */
+  #pragma omp parallel reduction(+: a[:][0:10])		/* { dg-error "for array function parameter length expression must be specified" } */
     bar (a);
-  #pragma omp parallel reduction(+: a[ :10][0:12])	/* { dg-error "above array section size" } */
+  #pragma omp parallel reduction(+: a[:10][0:12])	/* { dg-error "above array section size" } */
     bar (a);
   #pragma omp parallel reduction(+: b[0:10][0:10])	/* { dg-error "array section is not contiguous" } */
     bar (a);
diff --git a/gcc/testsuite/c-c++-common/gomp/scan-1.c b/gcc/testsuite/c-c++-common/gomp/scan-1.c
index ecc0bd004615..95b46cbb71b8 100644
--- a/gcc/testsuite/c-c++-common/gomp/scan-1.c
+++ b/gcc/testsuite/c-c++-common/gomp/scan-1.c
@@ -25,11 +25,11 @@ f2 (int *c, int *d, int *e, int *f)
       #pragma omp scan inclusive (b)				/* { dg-error "" } */
       d[i] = b;
     }
-  #pragma omp for reduction (inscan, +: e[ :2])			/* { dg-error "'inscan' 'reduction' clause with array section" } */
+  #pragma omp for reduction (inscan, +: e[:2])			/* { dg-error "'inscan' 'reduction' clause with array section" } */
   for (i = 0; i < 64; ++i)
     {
       { e[0] += c[i]; e[1] += c[i]; }
-      #pragma omp scan inclusive (a, e[ :2])			/* { dg-error "" } */
+      #pragma omp scan inclusive (a, e[:2])			/* { dg-error "" } */
       { d[i] = e[0]; f[i] = e[1]; }
     }
   #pragma omp for reduction (inscan, +: a) ordered		/* { dg-error "'ordered' clause specified together with 'inscan' 'reduction' clause" } */
@@ -91,7 +91,7 @@ f3 (int *c, int *d)
   }
   #pragma omp scope reduction (inscan, +: a)	/* { dg-error "'inscan' 'reduction' clause on 'scope' construct" } */
   ;
-  #pragma omp target parallel for reduction (inscan, +: a) map (c[ :64], d[ :64])	/* { dg-error "'inscan' 'reduction' clause on construct other than 'for', 'simd', 'for simd', 'parallel for', 'parallel for simd'" } */
+  #pragma omp target parallel for reduction (inscan, +: a) map (c[:64], d[:64])	/* { dg-error "'inscan' 'reduction' clause on construct other than 'for', 'simd', 'for simd', 'parallel for', 'parallel for simd'" } */
   for (i = 0; i < 64; i++)
     {
       d[i] = a;
diff --git a/gcc/testsuite/c-c++-common/gomp/target-data-1.c b/gcc/testsuite/c-c++-common/gomp/target-data-1.c
index 3b8e9800b8db..7aa111a92a46 100644
--- a/gcc/testsuite/c-c++-common/gomp/target-data-1.c
+++ b/gcc/testsuite/c-c++-common/gomp/target-data-1.c
@@ -6,7 +6,7 @@ foo (void)
   int a[4] = { 1, 2, 3, 4 };
   int *p = &a[0];
   int x = 5;
-  #pragma omp target data map(to:p[ :4])
+  #pragma omp target data map(to:p[:4])
   #pragma omp target data use_device_ptr(p)
   #pragma omp target is_device_ptr(p)
   {
diff --git a/gcc/testsuite/c-c++-common/gomp/target-enter-data-1.c b/gcc/testsuite/c-c++-common/gomp/target-enter-data-1.c
index 57161bcf69a7..4dc51886972a 100644
--- a/gcc/testsuite/c-c++-common/gomp/target-enter-data-1.c
+++ b/gcc/testsuite/c-c++-common/gomp/target-enter-data-1.c
@@ -16,9 +16,9 @@ struct foo
 
 void func (struct foo *f, int n, int m)
 {
-  #pragma omp target enter data map (to: f->vectors[m][ :n])
-  #pragma omp target enter data map (to: f->bars[n].vectors[ :m])
-  #pragma omp target enter data map (to: f->bars[n].vectors[ :f->bars[n].num_vectors])
+  #pragma omp target enter data map (to: f->vectors[m][:n])
+  #pragma omp target enter data map (to: f->bars[n].vectors[:m])
+  #pragma omp target enter data map (to: f->bars[n].vectors[:f->bars[n].num_vectors])
 }
 
 /* { dg-final { scan-tree-dump-times {map\(struct:\*f \[len: 1\]\) map\(alloc:[a-z0-9\._]+->vectors \[len: 0\]\) map\(to:\*_[0-9]+ \[len: _[0-9]+\]\) map\(attach:[a-z0-9\._]+->vectors \[bias: [^\]]+\]\) map\(attach:\*_[0-9]+ \[bias: [^\]]+\]\)} 1 "gimple" } } */
diff --git a/gcc/testsuite/c-c++-common/gomp/target-has-device-addr-1.c b/gcc/testsuite/c-c++-common/gomp/target-has-device-addr-1.c
index c9520a347199..ebf55eea70b6 100644
--- a/gcc/testsuite/c-c++-common/gomp/target-has-device-addr-1.c
+++ b/gcc/testsuite/c-c++-common/gomp/target-has-device-addr-1.c
@@ -26,20 +26,20 @@ foo ()
   ;
 
   int z[3] = { 2, 5, 7 };
-  #pragma omp target data map(z[ :3]) use_device_addr(z)
-    #pragma omp target has_device_addr(z[1: ])
+  #pragma omp target data map(z[:3]) use_device_addr(z)
+    #pragma omp target has_device_addr(z[1:])
     ;
 
-  #pragma omp target data map(z[ :3]) use_device_addr(z)
+  #pragma omp target data map(z[:3]) use_device_addr(z)
     #pragma omp target has_device_addr(z[1])
     ;
 
-  #pragma omp target data map(z[ :3]) use_device_addr(z)
+  #pragma omp target data map(z[:3]) use_device_addr(z)
     #pragma omp target has_device_addr(z[1:2])
     ;
 
-  #pragma omp target data map(z[ :3]) use_device_addr(z)
-    #pragma omp target has_device_addr(z[ :2])
+  #pragma omp target data map(z[:3]) use_device_addr(z)
+    #pragma omp target has_device_addr(z[:2])
     ;
 
   int w[3][4];
@@ -48,7 +48,7 @@ foo ()
     ;
 
   #pragma omp target data map(w) use_device_addr(w)
-    #pragma omp target has_device_addr(w[ :1][2: ])
+    #pragma omp target has_device_addr(w[:1][2:])
     ;
 
   int u[0];
diff --git a/gcc/testsuite/c-c++-common/gomp/target-implicit-map-2.c b/gcc/testsuite/c-c++-common/gomp/target-implicit-map-2.c
index cb8c9a741d04..a336c2d9f551 100644
--- a/gcc/testsuite/c-c++-common/gomp/target-implicit-map-2.c
+++ b/gcc/testsuite/c-c++-common/gomp/target-implicit-map-2.c
@@ -22,29 +22,29 @@ main (void)
   for (int i = 0; i < N; i++)
     a.ptr[i] = 0;
 
-  #pragma omp target enter data map(to: a.ptr, a.ptr[ :N])
+  #pragma omp target enter data map(to: a.ptr, a.ptr[:N])
 
   #pragma omp target
   for (int i = 0; i < N; i++)
     a.ptr[i] += 1;
 
-  #pragma omp target update from(a.ptr[ :N])
+  #pragma omp target update from(a.ptr[:N])
 
   for (int i = 0; i < N; i++)
     if (a.ptr[i] != 1)
       abort ();
 
-  #pragma omp target map(a.ptr[ :N])
+  #pragma omp target map(a.ptr[:N])
   for (int i = 0; i < N; i++)
     a.ptr[i] += 1;
 
-  #pragma omp target update from(a.ptr[ :N])
+  #pragma omp target update from(a.ptr[:N])
 
   for (int i = 0; i < N; i++)
     if (a.ptr[i] != 2)
       abort ();
 
-  #pragma omp target exit data map(from:a.ptr, a.ptr[ :N])
+  #pragma omp target exit data map(from:a.ptr, a.ptr[:N])
 
   return 0;
 }
diff --git a/gcc/testsuite/c-c++-common/gomp/target-map-iterators-1.c b/gcc/testsuite/c-c++-common/gomp/target-map-iterators-1.c
index 8071907b30b1..7d6c8dc6255c 100644
--- a/gcc/testsuite/c-c++-common/gomp/target-map-iterators-1.c
+++ b/gcc/testsuite/c-c++-common/gomp/target-map-iterators-1.c
@@ -6,13 +6,13 @@
 
 void f (int **x, int **y)
 {
-  #pragma omp target map(iterator(i=0:DIM1), to: x[i][ :DIM2])
+  #pragma omp target map(iterator(i=0:DIM1), to: x[i][:DIM2])
     ;
 
-  #pragma omp target map(iterator(i=0:DIM1), to: x[i][ :DIM2], y[i][ :DIM2])
+  #pragma omp target map(iterator(i=0:DIM1), to: x[i][:DIM2], y[i][:DIM2])
     ;
 
-  #pragma omp target map(iterator(i=0:DIM1), to: x[i][ :DIM2] + 2) /* { dg-message "unsupported map expression" } */
+  #pragma omp target map(iterator(i=0:DIM1), to: x[i][:DIM2] + 2) /* { dg-message "unsupported map expression" } */
     ;
 
   #pragma omp target map(iterator(i=0:DIM1), iterator(j=0:DIM2), to: x[i][j]) /* { dg-error "too many 'iterator' modifiers" } */
diff --git a/gcc/testsuite/c-c++-common/gomp/target-map-iterators-3.c b/gcc/testsuite/c-c++-common/gomp/target-map-iterators-3.c
index c31336538deb..62df42ffde10 100644
--- a/gcc/testsuite/c-c++-common/gomp/target-map-iterators-3.c
+++ b/gcc/testsuite/c-c++-common/gomp/target-map-iterators-3.c
@@ -9,9 +9,9 @@ void f (int ***x, float ***y, double **z)
 {
   #pragma omp target \
       map(to: x, y) \
-      map(iterator(i=0:DIM1, j=0:DIM2), to: x[i][j][ :DIM3], y[i][j][ :DIM3]) \
+      map(iterator(i=0:DIM1, j=0:DIM2), to: x[i][j][:DIM3], y[i][j][:DIM3]) \
       map(from: z) \
-      map(iterator(i=0:DIM1), from: z[i][ :DIM2])
+      map(iterator(i=0:DIM1), from: z[i][:DIM2])
     ;
 }
 
diff --git a/gcc/testsuite/c-c++-common/gomp/target-update-iterators-1.c b/gcc/testsuite/c-c++-common/gomp/target-update-iterators-1.c
index 37dd69e15d1e..e97054adc159 100644
--- a/gcc/testsuite/c-c++-common/gomp/target-update-iterators-1.c
+++ b/gcc/testsuite/c-c++-common/gomp/target-update-iterators-1.c
@@ -6,11 +6,11 @@
 
 void f (int **x, float **y)
 {
-  #pragma omp target update to (iterator(i=0:DIM1): x[i][ :DIM2])
+  #pragma omp target update to (iterator(i=0:DIM1): x[i][:DIM2])
 
-  #pragma omp target update to (iterator(i=0:DIM1): x[i][ :DIM2], y[i][ :DIM2])
+  #pragma omp target update to (iterator(i=0:DIM1): x[i][:DIM2], y[i][:DIM2])
 
-  #pragma omp target update to (iterator(i=0:DIM1), present: x[i][ :DIM2])
+  #pragma omp target update to (iterator(i=0:DIM1), present: x[i][:DIM2])
 
   #pragma omp target update to (iterator(i=0:DIM1), iterator(j=0:DIM2): x[i][j]) /* { dg-error "too many 'iterator' modifiers" } */
   /* { dg-error "'#pragma omp target update' must contain at least one 'from' or 'to' clauses" "" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/c-c++-common/gomp/target-update-iterators-3.c b/gcc/testsuite/c-c++-common/gomp/target-update-iterators-3.c
index 0057cf76d87d..ef55216876f6 100644
--- a/gcc/testsuite/c-c++-common/gomp/target-update-iterators-3.c
+++ b/gcc/testsuite/c-c++-common/gomp/target-update-iterators-3.c
@@ -7,8 +7,8 @@
 
 void f (int ***x, float ***y, double **z)
 {
-  #pragma omp target update to (iterator(i=0:DIM1, j=0:DIM2): x[i][j][ :DIM3], y[i][j][ :DIM3])
-  #pragma omp target update from (iterator(i=0:DIM1): z[i][ :DIM2])
+  #pragma omp target update to (iterator(i=0:DIM1, j=0:DIM2): x[i][j][:DIM3], y[i][j][:DIM3])
+  #pragma omp target update from (iterator(i=0:DIM1): z[i][:DIM2])
 }
 
 /* { dg-final { scan-tree-dump-times "if \\(i <= 9\\) goto <D\.\[0-9\]+>; else goto <D\.\[0-9\]+>;" 2 "gimple" } } */
diff --git a/gcc/testsuite/g++.dg/goacc/cache-3-1.C b/gcc/testsuite/g++.dg/goacc/cache-3-1.C
index 8fa7aa8daa4d..ceafb38d2679 100644
--- a/gcc/testsuite/g++.dg/goacc/cache-3-1.C
+++ b/gcc/testsuite/g++.dg/goacc/cache-3-1.C
@@ -32,13 +32,13 @@ foo (int g[3][10], int h[4][8], int i[2][10], int j[][9],
     ;
   #pragma acc cache(t[2:5]) /* { dg-error "is threadprivate variable" } */
     ;
-  #pragma acc cache(k[0.5: ]) /* { dg-error "low bound \[^\n\r]* of array section does not have integral type" } */
+  #pragma acc cache(k[0.5:]) /* { dg-error "low bound \[^\n\r]* of array section does not have integral type" } */
     ;
-  #pragma acc cache(l[ :7.5f]) /* { dg-error "length \[^\n\r]* of array section does not have integral type" } */
+  #pragma acc cache(l[:7.5f]) /* { dg-error "length \[^\n\r]* of array section does not have integral type" } */
     ;
-  #pragma acc cache(m[p: ]) /* { dg-error "low bound \[^\n\r]* of array section does not have integral type" } */
+  #pragma acc cache(m[p:]) /* { dg-error "low bound \[^\n\r]* of array section does not have integral type" } */
     ;
-  #pragma acc cache(n[ :p]) /* { dg-error "length \[^\n\r]* of array section does not have integral type" } */
+  #pragma acc cache(n[:p]) /* { dg-error "length \[^\n\r]* of array section does not have integral type" } */
     ;
   #pragma acc cache(o[2:5]) /* { dg-error "does not have pointer or array type" } */
     ;
@@ -46,73 +46,73 @@ foo (int g[3][10], int h[4][8], int i[2][10], int j[][9],
     ;
   #pragma acc cache(s2) /* { dg-error "expected '\\\['" } */
     ;
-  #pragma acc cache(a[ : ][ : ]) /* { dg-error "array type length expression must be specified" } */
+  #pragma acc cache(a[:][:]) /* { dg-error "array type length expression must be specified" } */
     bar (&a[0][0]);
-  #pragma acc cache(b[-1: ]) /* { dg-error "negative low bound in array section" } */
+  #pragma acc cache(b[-1:]) /* { dg-error "negative low bound in array section" } */
     bar (b);
-  #pragma acc cache(c[ :-3][ : ]) /* { dg-error "negative length in array section" } */
+  #pragma acc cache(c[:-3][:]) /* { dg-error "negative length in array section" } */
     bar (&c[0][0]);
-  #pragma acc cache(d[11: ]) /* { dg-error "low bound \[^\n\r]* above array section size" } */
+  #pragma acc cache(d[11:]) /* { dg-error "low bound \[^\n\r]* above array section size" } */
     bar (d);
-  #pragma acc cache(e[ :11]) /* { dg-error "length \[^\n\r]* above array section size" } */
+  #pragma acc cache(e[:11]) /* { dg-error "length \[^\n\r]* above array section size" } */
     bar (e);
   #pragma acc cache(f[1:10]) /* { dg-error "high bound \[^\n\r]* above array section size" } */
     bar (f);
-  #pragma acc cache(g[ : ][0:10]) /* { dg-error "for array function parameter length expression must be specified" } */
+  #pragma acc cache(g[:][0:10]) /* { dg-error "for array function parameter length expression must be specified" } */
     bar (&g[0][0]);
-  #pragma acc cache(h[2:1][-1: ]) /* { dg-error "negative low bound in array section" } */
+  #pragma acc cache(h[2:1][-1:]) /* { dg-error "negative low bound in array section" } */
     bar (&h[0][0]);
-  #pragma acc cache(h[ :1][ :-3]) /* { dg-error "negative length in array section" } */
+  #pragma acc cache(h[:1][:-3]) /* { dg-error "negative length in array section" } */
     bar (&h[0][0]);
-  #pragma acc cache(i[ :1][11: ]) /* { dg-error "low bound \[^\n\r]* above array section size" } */
+  #pragma acc cache(i[:1][11:]) /* { dg-error "low bound \[^\n\r]* above array section size" } */
     bar (&i[0][0]);
-  #pragma acc cache(j[3:1][ :10]) /* { dg-error "length \[^\n\r]* above array section size" } */
+  #pragma acc cache(j[3:1][:10]) /* { dg-error "length \[^\n\r]* above array section size" } */
     bar (&j[0][0]);
   #pragma acc cache(j[30:1][5:5]) /* { dg-error "high bound \[^\n\r]* above array section size" } */
     bar (&j[0][0]);
-  #pragma acc cache(a2[ :1][2:4])
+  #pragma acc cache(a2[:1][2:4])
     bar (&a2[0][0]);
-  #pragma acc cache(a2[3:5][ : ])
+  #pragma acc cache(a2[3:5][:])
     bar (&a2[0][0]);
-  #pragma acc cache(a2[3:5][ :10])
+  #pragma acc cache(a2[3:5][:10])
     bar (&a2[0][0]);
-  #pragma acc cache(b2[0: ])
+  #pragma acc cache(b2[0:])
     bar (b2);
-  #pragma acc cache(c2[ :3][ : ])
+  #pragma acc cache(c2[:3][:])
     bar (&c2[0][0]);
-  #pragma acc cache(d2[9: ])
+  #pragma acc cache(d2[9:])
     bar (d2);
-  #pragma acc cache(e2[ :10])
+  #pragma acc cache(e2[:10])
     bar (e2);
   #pragma acc cache(f2[1:9])
     bar (f2);
-  #pragma acc cache(g2[ :1][2:4])
+  #pragma acc cache(g2[:1][2:4])
     bar (&g2[0][0]);
-  #pragma acc cache(h2[2:2][0: ])
+  #pragma acc cache(h2[2:2][0:])
     bar (&h2[0][0]);
-  #pragma acc cache(h2[ :1][ :3])
+  #pragma acc cache(h2[:1][:3])
     bar (&h2[0][0]);
-  #pragma acc cache(i2[ :1][9: ])
+  #pragma acc cache(i2[:1][9:])
     bar (&i2[0][0]);
-  #pragma acc cache(j2[3:4][ :9])
+  #pragma acc cache(j2[3:4][:9])
     bar (&j2[0][0]);
   #pragma acc cache(j2[30:1][5:4])
     bar (&j2[0][0]);
   #pragma acc cache(q[1:2])
     ;
-  #pragma acc cache(q[3:5][ :10]) /* { dg-error "array section is not contiguous" } */
+  #pragma acc cache(q[3:5][:10]) /* { dg-error "array section is not contiguous" } */
     ;
-  #pragma acc cache(r[3: ][2:1][1:2])
+  #pragma acc cache(r[3:][2:1][1:2])
     ;
-  #pragma acc cache(r[3: ][2:1][1:2][ : ][0:4])
+  #pragma acc cache(r[3:][2:1][1:2][:][0:4])
     ;
-  #pragma acc cache(r[3: ][2:1][1:2][1: ][0:4]) /* { dg-error "array section is not contiguous" } */
+  #pragma acc cache(r[3:][2:1][1:2][1:][0:4]) /* { dg-error "array section is not contiguous" } */
     ;
-  #pragma acc cache(r[3: ][2:1][1:2][ :3][0:4]) /* { dg-error "array section is not contiguous" } */
+  #pragma acc cache(r[3:][2:1][1:2][:3][0:4]) /* { dg-error "array section is not contiguous" } */
     ;
-  #pragma acc cache(r[3: ][2:1][1:2][ : ][1: ]) /* { dg-error "array section is not contiguous" } */
+  #pragma acc cache(r[3:][2:1][1:2][:][1:]) /* { dg-error "array section is not contiguous" } */
     ;
-  #pragma acc cache(r[3: ][2:1][1:2][ : ][ :3]) /* { dg-error "array section is not contiguous" } */
+  #pragma acc cache(r[3:][2:1][1:2][:][:3]) /* { dg-error "array section is not contiguous" } */
     ;
 }
 
diff --git a/gcc/testsuite/g++.dg/goacc/cache-3-2.C b/gcc/testsuite/g++.dg/goacc/cache-3-2.C
index 8809ab0bf3a1..5561e176a56c 100644
--- a/gcc/testsuite/g++.dg/goacc/cache-3-2.C
+++ b/gcc/testsuite/g++.dg/goacc/cache-3-2.C
@@ -20,25 +20,25 @@ foo (int *p, int (*q)[10], int r[10], int s[10][10])
   ;
   #pragma acc cache (r[-1:2])
   ;
-  #pragma acc cache (s[-1:2][ : ])
+  #pragma acc cache (s[-1:2][:])
   ;
   #pragma acc cache (s[-1:2][-2:10]) /* { dg-error "negative low bound in array section in" } */
   ;
   #pragma acc cache (a[-1:2])	 /* { dg-error "negative low bound in array section in" } */
   ;
-  #pragma acc cache (b[-1:2][0: ])	 /* { dg-error "negative low bound in array section in" } */
+  #pragma acc cache (b[-1:2][0:])	 /* { dg-error "negative low bound in array section in" } */
   ;
   #pragma acc cache (b[1:2][-2:10]) /* { dg-error "negative low bound in array section in" } */
   ;
   #pragma acc cache (p[2:-3])	 /* { dg-error "negative length in array section in" } */
   ;
-  #pragma acc cache (q[2:-3][ : ])	 /* { dg-error "negative length in array section in" } */
+  #pragma acc cache (q[2:-3][:])	 /* { dg-error "negative length in array section in" } */
   ;
   #pragma acc cache (q[2:3][0:-1])	 /* { dg-error "negative length in array section in" } */
   ;
   #pragma acc cache (r[2:-5])	 /* { dg-error "negative length in array section in" } */
   ;
-  #pragma acc cache (s[2:-5][ : ])	 /* { dg-error "negative length in array section in" } */
+  #pragma acc cache (s[2:-5][:])	 /* { dg-error "negative length in array section in" } */
   ;
   #pragma acc cache (s[2:5][0:-4])	 /* { dg-error "negative length in array section in" } */
   ;
diff --git a/gcc/testsuite/g++.dg/goacc/data-clause-1.C b/gcc/testsuite/g++.dg/goacc/data-clause-1.C
index ead71855ba2d..07ef6aed788e 100644
--- a/gcc/testsuite/g++.dg/goacc/data-clause-1.C
+++ b/gcc/testsuite/g++.dg/goacc/data-clause-1.C
@@ -31,13 +31,13 @@ foo (int g[3][10], int h[4][8], int i[2][10], int j[][9],
     ;
   #pragma acc parallel copyout(t[2:5]) /* { dg-error "is threadprivate variable" } */
     ;
-  #pragma acc parallel copy(k[0.5: ]) /* { dg-error "low bound \[^\n\r]* of array section does not have integral type" } */
+  #pragma acc parallel copy(k[0.5:]) /* { dg-error "low bound \[^\n\r]* of array section does not have integral type" } */
     ;
-  #pragma acc parallel copyout(l[ :7.5f]) /* { dg-error "length \[^\n\r]* of array section does not have integral type" } */
+  #pragma acc parallel copyout(l[:7.5f]) /* { dg-error "length \[^\n\r]* of array section does not have integral type" } */
     ;
-  #pragma acc parallel copyin(m[p: ]) /* { dg-error "low bound \[^\n\r]* of array section does not have integral type" } */
+  #pragma acc parallel copyin(m[p:]) /* { dg-error "low bound \[^\n\r]* of array section does not have integral type" } */
     ;
-  #pragma acc parallel copy(n[ :p]) /* { dg-error "length \[^\n\r]* of array section does not have integral type" } */
+  #pragma acc parallel copy(n[:p]) /* { dg-error "length \[^\n\r]* of array section does not have integral type" } */
     ;
   #pragma acc parallel copyin(o[2:5]) /* { dg-error "does not have pointer or array type" } */
     ;
@@ -45,73 +45,73 @@ foo (int g[3][10], int h[4][8], int i[2][10], int j[][9],
     ;
   #pragma acc parallel create(s2) /* { dg-error "'s2' does not have a mappable type in 'map' clause" } */
     ;
-  #pragma acc parallel copyin(a[ : ][ : ]) /* { dg-error "array type length expression must be specified" } */
+  #pragma acc parallel copyin(a[:][:]) /* { dg-error "array type length expression must be specified" } */
     bar (&a[0][0]); /* { dg-error "referenced in target region does not have a mappable type" "PR97996" { xfail *-*-* } } */
-  #pragma acc parallel copy(b[-1: ]) /* { dg-error "negative low bound in array section" } */
+  #pragma acc parallel copy(b[-1:]) /* { dg-error "negative low bound in array section" } */
     bar (b);
-  #pragma acc parallel copy(c[ :-3][ : ]) /* { dg-error "negative length in array section" } */
+  #pragma acc parallel copy(c[:-3][:]) /* { dg-error "negative length in array section" } */
     bar (&c[0][0]);
-  #pragma acc parallel copyout(d[11: ]) /* { dg-error "low bound \[^\n\r]* above array section size" } */
+  #pragma acc parallel copyout(d[11:]) /* { dg-error "low bound \[^\n\r]* above array section size" } */
     bar (d);
-  #pragma acc parallel copyin(e[ :11]) /* { dg-error "length \[^\n\r]* above array section size" } */
+  #pragma acc parallel copyin(e[:11]) /* { dg-error "length \[^\n\r]* above array section size" } */
     bar (e);
   #pragma acc parallel copyin(f[1:10]) /* { dg-error "high bound \[^\n\r]* above array section size" } */
     bar (f);
-  #pragma acc parallel copyout(g[ : ][0:10]) /* { dg-error "for array function parameter length expression must be specified" } */
+  #pragma acc parallel copyout(g[:][0:10]) /* { dg-error "for array function parameter length expression must be specified" } */
     bar (&g[0][0]);
-  #pragma acc parallel copyout(h[2:1][-1: ]) /* { dg-error "negative low bound in array section" } */
+  #pragma acc parallel copyout(h[2:1][-1:]) /* { dg-error "negative low bound in array section" } */
     bar (&h[0][0]);
-  #pragma acc parallel copy(h[ :1][ :-3]) /* { dg-error "negative length in array section" } */
+  #pragma acc parallel copy(h[:1][:-3]) /* { dg-error "negative length in array section" } */
     bar (&h[0][0]);
-  #pragma acc parallel copy(i[ :1][11: ]) /* { dg-error "low bound \[^\n\r]* above array section size" } */
+  #pragma acc parallel copy(i[:1][11:]) /* { dg-error "low bound \[^\n\r]* above array section size" } */
     bar (&i[0][0]);
-  #pragma acc parallel copyout(j[3:1][ :10]) /* { dg-error "length \[^\n\r]* above array section size" } */
+  #pragma acc parallel copyout(j[3:1][:10]) /* { dg-error "length \[^\n\r]* above array section size" } */
     bar (&j[0][0]);
   #pragma acc parallel copyin(j[30:1][5:5]) /* { dg-error "high bound \[^\n\r]* above array section size" } */
     bar (&j[0][0]);
-  #pragma acc parallel copyin(a2[ :1][2:4])
+  #pragma acc parallel copyin(a2[:1][2:4])
     bar (&a2[0][0]);
-  #pragma acc parallel copy(a2[3:5][ : ])
+  #pragma acc parallel copy(a2[3:5][:])
     bar (&a2[0][0]);
-  #pragma acc parallel copyin(a2[3:5][ :10])
+  #pragma acc parallel copyin(a2[3:5][:10])
     bar (&a2[0][0]);
-  #pragma acc parallel copy(b2[0: ])
+  #pragma acc parallel copy(b2[0:])
     bar (b2);
-  #pragma acc parallel copy(c2[ :3][ : ])
+  #pragma acc parallel copy(c2[:3][:])
     bar (&c2[0][0]);
-  #pragma acc parallel copyout(d2[9: ])
+  #pragma acc parallel copyout(d2[9:])
     bar (d2);
-  #pragma acc parallel copyin(e2[ :10])
+  #pragma acc parallel copyin(e2[:10])
     bar (e2);
   #pragma acc parallel copyin(f2[1:9])
     bar (f2);
-  #pragma acc parallel copy(g2[ :1][2:4])
+  #pragma acc parallel copy(g2[:1][2:4])
     bar (&g2[0][0]);
-  #pragma acc parallel copyout(h2[2:2][0: ])
+  #pragma acc parallel copyout(h2[2:2][0:])
     bar (&h2[0][0]);
-  #pragma acc parallel copy(h2[ :1][ :3])
+  #pragma acc parallel copy(h2[:1][:3])
     bar (&h2[0][0]);
-  #pragma acc parallel copyin(i2[ :1][9: ])
+  #pragma acc parallel copyin(i2[:1][9:])
     bar (&i2[0][0]);
-  #pragma acc parallel copyout(j2[3:4][ :9])
+  #pragma acc parallel copyout(j2[3:4][:9])
     bar (&j2[0][0]);
   #pragma acc parallel copyin(j2[30:1][5:4])
     bar (&j2[0][0]);
   #pragma acc parallel copy(q[1:2])
     ;
-  #pragma acc parallel copy(q[3:5][ :10]) /* { dg-error "array section is not contiguous" } */
+  #pragma acc parallel copy(q[3:5][:10]) /* { dg-error "array section is not contiguous" } */
     ;
-  #pragma acc parallel copy(r[3: ][2:1][1:2])
+  #pragma acc parallel copy(r[3:][2:1][1:2])
     ;
-  #pragma acc parallel copy(r[3: ][2:1][1:2][ : ][0:4])
+  #pragma acc parallel copy(r[3:][2:1][1:2][:][0:4])
     ;
-  #pragma acc parallel copy(r[3: ][2:1][1:2][1: ][0:4]) /* { dg-error "array section is not contiguous" } */
+  #pragma acc parallel copy(r[3:][2:1][1:2][1:][0:4]) /* { dg-error "array section is not contiguous" } */
     ;
-  #pragma acc parallel copy(r[3: ][2:1][1:2][ :3][0:4]) /* { dg-error "array section is not contiguous" } */
+  #pragma acc parallel copy(r[3:][2:1][1:2][:3][0:4]) /* { dg-error "array section is not contiguous" } */
     ;
-  #pragma acc parallel copy(r[3: ][2:1][1:2][ : ][1: ]) /* { dg-error "array section is not contiguous" } */
+  #pragma acc parallel copy(r[3:][2:1][1:2][:][1:]) /* { dg-error "array section is not contiguous" } */
     ;
-  #pragma acc parallel copy(r[3: ][2:1][1:2][ : ][ :3]) /* { dg-error "array section is not contiguous" } */
+  #pragma acc parallel copy(r[3:][2:1][1:2][:][:3]) /* { dg-error "array section is not contiguous" } */
     ;
 }
 
diff --git a/gcc/testsuite/g++.dg/goacc/data-clause-2.C b/gcc/testsuite/g++.dg/goacc/data-clause-2.C
index f167d98dd490..57d1823aede2 100644
--- a/gcc/testsuite/g++.dg/goacc/data-clause-2.C
+++ b/gcc/testsuite/g++.dg/goacc/data-clause-2.C
@@ -6,10 +6,6 @@
 
 /* See also corresponding OpenMP variant: '../gomp/map-2.C'.  */
 
-/* Array sections without spaces between [ and : or : and ] are incompatible
-   with C++26.  */
-/* { dg-skip-if "array sections vs. C++26" { c++26 } } */
-
 template <int N>
 void
 foo (int *p, int (*q)[10], int r[10], int s[10][10])
diff --git a/gcc/testsuite/g++.dg/goacc/mdc.C b/gcc/testsuite/g++.dg/goacc/mdc.C
index 99148be1a2bc..9d460f286b45 100644
--- a/gcc/testsuite/g++.dg/goacc/mdc.C
+++ b/gcc/testsuite/g++.dg/goacc/mdc.C
@@ -30,17 +30,17 @@ t1 ()
 #pragma acc exit data detach(ra)
     }
 
-#pragma acc enter data attach(rz[ :5]) /* { dg-error "expected single pointer in .attach. clause" } */
+#pragma acc enter data attach(rz[:5]) /* { dg-error "expected single pointer in .attach. clause" } */
 /* { dg-error "has no data movement clause" "" { target *-*-* } .-1 } */
-#pragma acc exit data detach(rz[ :5]) /* { dg-error "expected single pointer in .detach. clause" } */
+#pragma acc exit data detach(rz[:5]) /* { dg-error "expected single pointer in .detach. clause" } */
 /* { dg-error "has no data movement clause" "" { target *-*-* } .-1 } */
-#pragma acc enter data attach(rz[1: ]) /* { dg-error "expected single pointer in .attach. clause" } */
+#pragma acc enter data attach(rz[1:]) /* { dg-error "expected single pointer in .attach. clause" } */
 /* { dg-error "has no data movement clause" "" { target *-*-* } .-1 } */
-#pragma acc exit data detach(rz[1: ]) /* { dg-error "expected single pointer in .detach. clause" } */
+#pragma acc exit data detach(rz[1:]) /* { dg-error "expected single pointer in .detach. clause" } */
 /* { dg-error "has no data movement clause" "" { target *-*-* } .-1 } */
-#pragma acc enter data attach(rz[ : ]) /* { dg-error "expected single pointer in .attach. clause" } */
+#pragma acc enter data attach(rz[:]) /* { dg-error "expected single pointer in .attach. clause" } */
 /* { dg-error "has no data movement clause" "" { target *-*-* } .-1 } */
-#pragma acc exit data detach(rz[ : ]) /* { dg-error "expected single pointer in .detach. clause" } */
+#pragma acc exit data detach(rz[:]) /* { dg-error "expected single pointer in .detach. clause" } */
 /* { dg-error "has no data movement clause" "" { target *-*-* } .-1 } */
 #pragma acc enter data attach(rz[3]) /* { dg-error "expected pointer in .attach. clause" } */
 /* { dg-error "has no data movement clause" "" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/g++.dg/gomp/array-section-2.C b/gcc/testsuite/g++.dg/gomp/array-section-2.C
index 7bf00c0af07e..e2be9791e817 100644
--- a/gcc/testsuite/g++.dg/gomp/array-section-2.C
+++ b/gcc/testsuite/g++.dg/gomp/array-section-2.C
@@ -18,10 +18,10 @@ int C::foo()
 #pragma omp target map(arr1[::x: ::y])
 // { dg-final { scan-tree-dump {map\(tofrom:arr1\[SAVE_EXPR <x>\] \[len: \(sizetype\) y \* [0-9]+\]\) map\(firstprivate:arr1 \[pointer assign, bias: \((?:long )?int\) &arr1\[SAVE_EXPR <x>\] - \((?:long )?int\) &arr1\]\)} "original" } }
   { }
-#pragma omp target map(arr1[::x: ])
+#pragma omp target map(arr1[::x:])
 // { dg-final { scan-tree-dump {map\(tofrom:arr1\[SAVE_EXPR <x>\] \[len: \(40 - \(sizetype\) SAVE_EXPR <x>\) \* [0-9]+\]\) map\(firstprivate:arr1 \[pointer assign, bias: \((?:long )?int\) &arr1\[SAVE_EXPR <x>\] - \((?:long )?int\) &arr1\]\)} "original" } }
   { }
-#pragma omp target map(arr1[ : ::y])
+#pragma omp target map(arr1[: ::y])
 // { dg-final { scan-tree-dump {map\(tofrom:arr1\[0\] \[len: \(sizetype\) y \* [0-9]+\]\) map\(firstprivate:arr1 \[pointer assign, bias: 0\]\)} "original" } }
   { }
   return ::x + ::y;
@@ -42,10 +42,10 @@ void Ct<T>::foo()
 #pragma omp target map(arr1[::x: ::y])
 // { dg-final { scan-tree-dump {map\(tofrom:arr1\[SAVE_EXPR <x>\] \[len: \(sizetype\) y \* [0-9]+\]\) map\(firstprivate:arr1 \[pointer assign, bias: \((?:long )?int\) &arr1\[SAVE_EXPR <x>\] - \((?:long )?int\) &arr1\]\)} "original" } }
   { }
-#pragma omp target map(arr1[::x: ])
+#pragma omp target map(arr1[::x:])
 // { dg-final { scan-tree-dump {map\(tofrom:arr1\[SAVE_EXPR <x>\] \[len: \(40 - \(sizetype\) SAVE_EXPR <x>\) \* [0-9]+\]\) map\(firstprivate:arr1 \[pointer assign, bias: \((?:long )?int\) &arr1\[SAVE_EXPR <x>\] - \((?:long )?int\) &arr1\]\)} "original" } }
   { }
-#pragma omp target map(arr1[ : ::y])
+#pragma omp target map(arr1[: ::y])
 // { dg-final { scan-tree-dump {map\(tofrom:arr1\[0\] \[len: \(sizetype\) y \* [0-9]+\]\) map\(firstprivate:arr1 \[pointer assign, bias: 0\]\)} "original" } }
   { }
 }
diff --git a/gcc/testsuite/g++.dg/gomp/bad-array-section-10.C b/gcc/testsuite/g++.dg/gomp/bad-array-section-10.C
index 78646ced2e1e..286e72e9f64c 100644
--- a/gcc/testsuite/g++.dg/gomp/bad-array-section-10.C
+++ b/gcc/testsuite/g++.dg/gomp/bad-array-section-10.C
@@ -4,7 +4,7 @@ template<int C, int D>
 void foo()
 {
   int arr1[40];
-#pragma omp target map(arr1[4,C: ])
+#pragma omp target map(arr1[4,C:])
 // { dg-warning "top-level comma expression in array subscript is deprecated" "" { target c++20_only } .-1 }
 // { dg-error "cannot use multidimensional subscript in OpenMP array section" "" { target c++23 } .-2 }
   { }
@@ -12,7 +12,7 @@ void foo()
 // { dg-warning "top-level comma expression in array subscript is deprecated" "" { target c++20_only } .-1 }
 // { dg-error "cannot use multidimensional subscript in OpenMP array section" "" { target c++23 } .-2 }
   { }
-#pragma omp target map(arr1[ :8,C,10])
+#pragma omp target map(arr1[:8,C,10])
 // { dg-warning "top-level comma expression in array subscript is deprecated" "" { target c++20_only } .-1 }
 // { dg-error "cannot use multidimensional subscript in OpenMP array section" "" { target c++23 } .-2 }
   { }
@@ -21,7 +21,7 @@ void foo()
 int main()
 {
   int arr1[40];
-#pragma omp target map(arr1[4,5: ])
+#pragma omp target map(arr1[4,5:])
 // { dg-warning "top-level comma expression in array subscript is deprecated" "" { target c++20_only } .-1 }
 // { dg-error "cannot use multidimensional subscript in OpenMP array section" "" { target c++23 } .-2 }
   { }
@@ -29,7 +29,7 @@ int main()
 // { dg-warning "top-level comma expression in array subscript is deprecated" "" { target c++20_only } .-1 }
 // { dg-error "cannot use multidimensional subscript in OpenMP array section" "" { target c++23 } .-2 }
   { }
-#pragma omp target map(arr1[ :8,9,10])
+#pragma omp target map(arr1[:8,9,10])
 // { dg-warning "top-level comma expression in array subscript is deprecated" "" { target c++20_only } .-1 }
 // { dg-error "cannot use multidimensional subscript in OpenMP array section" "" { target c++23 } .-2 }
   { }
diff --git a/gcc/testsuite/g++.dg/gomp/bad-array-section-11.C b/gcc/testsuite/g++.dg/gomp/bad-array-section-11.C
index 2756c6509f6d..dea3b4428f07 100644
--- a/gcc/testsuite/g++.dg/gomp/bad-array-section-11.C
+++ b/gcc/testsuite/g++.dg/gomp/bad-array-section-11.C
@@ -5,13 +5,13 @@ template<int C, int D>
 void foo()
 {
   int arr1[40];
-#pragma omp target map(arr1[4,C: ])
+#pragma omp target map(arr1[4,C:])
 // { dg-error "cannot use multidimensional subscript in OpenMP array section" "" { target *-*-* } .-1 }
   { }
 #pragma omp target map(arr1[4,5:C,7])
 // { dg-error "cannot use multidimensional subscript in OpenMP array section" "" { target *-*-* } .-1 }
   { }
-#pragma omp target map(arr1[ :8,C,10])
+#pragma omp target map(arr1[:8,C,10])
 // { dg-error "cannot use multidimensional subscript in OpenMP array section" "" { target *-*-* } .-1 }
   { }
 }
@@ -19,13 +19,13 @@ void foo()
 int main()
 {
   int arr1[40];
-#pragma omp target map(arr1[4,5: ])
+#pragma omp target map(arr1[4,5:])
 // { dg-error "cannot use multidimensional subscript in OpenMP array section" "" { target *-*-* } .-1 }
   { }
 #pragma omp target map(arr1[4,5:6,7])
 // { dg-error "cannot use multidimensional subscript in OpenMP array section" "" { target *-*-* } .-1 }
   { }
-#pragma omp target map(arr1[ :8,9,10])
+#pragma omp target map(arr1[:8,9,10])
 // { dg-error "cannot use multidimensional subscript in OpenMP array section" "" { target *-*-* } .-1 }
   { }
 
diff --git a/gcc/testsuite/g++.dg/gomp/bad-array-section-9.C b/gcc/testsuite/g++.dg/gomp/bad-array-section-9.C
index 13b9d4f8729f..bba7772a3c90 100644
--- a/gcc/testsuite/g++.dg/gomp/bad-array-section-9.C
+++ b/gcc/testsuite/g++.dg/gomp/bad-array-section-9.C
@@ -10,7 +10,7 @@ void foo()
 #pragma omp target map(arr1[arr2[4:5]:arr2[6:7]])
 // { dg-error {low bound 'arr2\[4:5\]' of array section does not have integral type} "" { target *-*-* } .-1 }
   { }
-#pragma omp target map(arr1[arr2[ :1]:arr2[6:1]])
+#pragma omp target map(arr1[arr2[:1]:arr2[6:1]])
 // { dg-error {low bound 'arr2\[:1\]' of array section does not have integral type} "" { target *-*-* } .-1 }
   { }
 #pragma omp target map(arr1[x:arr2[6:1]])
@@ -25,7 +25,7 @@ int main()
 #pragma omp target map(arr1[arr2[4:5]:arr2[6:7]])
 // { dg-error {low bound 'arr2\[4:5\]' of array section does not have integral type} "" { target *-*-* } .-1 }
   { }
-#pragma omp target map(arr1[arr2[ :1]:arr2[6:1]])
+#pragma omp target map(arr1[arr2[:1]:arr2[6:1]])
 // { dg-error {low bound 'arr2\[:1\]' of array section does not have integral type} "" { target *-*-* } .-1 }
   { }
 #pragma omp target map(arr1[x:arr2[6:1]])
diff --git a/gcc/testsuite/g++.dg/gomp/declare-mapper-1.C b/gcc/testsuite/g++.dg/gomp/declare-mapper-1.C
index f74c3bb38929..450ecbd73a06 100644
--- a/gcc/testsuite/g++.dg/gomp/declare-mapper-1.C
+++ b/gcc/testsuite/g++.dg/gomp/declare-mapper-1.C
@@ -10,8 +10,8 @@ struct S {
 
 #define N 64
 
-#pragma omp declare mapper (S w) map(w.size, w.ptr, w.ptr[ :w.size])
-#pragma omp declare mapper (foo:S w) map(to:w.size, w.ptr) map(w.ptr[ :w.size])
+#pragma omp declare mapper (S w) map(w.size, w.ptr, w.ptr[:w.size])
+#pragma omp declare mapper (foo:S w) map(to:w.size, w.ptr) map(w.ptr[:w.size])
 
 int main (int argc, char *argv[])
 {
@@ -19,7 +19,7 @@ int main (int argc, char *argv[])
   s.ptr = new int[N];
   s.size = N;
 
-#pragma omp declare mapper (bar:S w) map(w.size, w.ptr, w.ptr[ :w.size])
+#pragma omp declare mapper (bar:S w) map(w.size, w.ptr, w.ptr[:w.size])
 
 #pragma omp target
   {
diff --git a/gcc/testsuite/g++.dg/gomp/declare-mapper-2.C b/gcc/testsuite/g++.dg/gomp/declare-mapper-2.C
index cf2e4d0aaa3c..987a917cf53d 100644
--- a/gcc/testsuite/g++.dg/gomp/declare-mapper-2.C
+++ b/gcc/testsuite/g++.dg/gomp/declare-mapper-2.C
@@ -13,7 +13,7 @@ struct Z {
 
 int main (int argc, char *argv[])
 {
-#pragma omp declare mapper (S v) map(v.size, v.ptr[ :v.size]) // { dg-note "'#pragma omp declare mapper \\(S\\)' previously declared here" }
+#pragma omp declare mapper (S v) map(v.size, v.ptr[:v.size]) // { dg-note "'#pragma omp declare mapper \\(S\\)' previously declared here" }
 
   /* This one's a duplicate.  */
 #pragma omp declare mapper (default: S v) map (to: v.size) map (v) // { dg-error "redeclaration of '#pragma omp declare mapper \\(S\\)'" }
diff --git a/gcc/testsuite/g++.dg/gomp/depend-1.C b/gcc/testsuite/g++.dg/gomp/depend-1.C
index b432b21a3681..81ae27f3ce27 100644
--- a/gcc/testsuite/g++.dg/gomp/depend-1.C
+++ b/gcc/testsuite/g++.dg/gomp/depend-1.C
@@ -17,53 +17,53 @@ foo (int g[3][10], int h[4][8], int i[2][10], int j[][9],
 {
   #pragma omp task depend(out: t[2:5])
     ;
-  #pragma omp task depend(inout: k[0.5: ]) // { dg-error "low bound \[^\n\r]* of array section does not have integral type" }
+  #pragma omp task depend(inout: k[0.5:]) // { dg-error "low bound \[^\n\r]* of array section does not have integral type" }
     ;
-  #pragma omp task depend(in: l[ :7.5f]) // { dg-error "length \[^\n\r]* of array section does not have integral type" }
+  #pragma omp task depend(in: l[:7.5f]) // { dg-error "length \[^\n\r]* of array section does not have integral type" }
     ;
-  #pragma omp task depend(out: m[p: ]) // { dg-error "low bound \[^\n\r]* of array section does not have integral type" }
+  #pragma omp task depend(out: m[p:]) // { dg-error "low bound \[^\n\r]* of array section does not have integral type" }
     ;
-  #pragma omp task depend(inout: n[ :p]) // { dg-error "length \[^\n\r]* of array section does not have integral type" }
+  #pragma omp task depend(inout: n[:p]) // { dg-error "length \[^\n\r]* of array section does not have integral type" }
     ;
   #pragma omp task depend(in: o[2:5]) // { dg-error "does not have pointer or array type" }
     ;
-  #pragma omp task depend(out: a[ : ][2:4]) // { dg-error "array type length expression must be specified" }
+  #pragma omp task depend(out: a[:][2:4]) // { dg-error "array type length expression must be specified" }
     ;
-  #pragma omp task depend(in: d[11: ]) // { dg-error "low bound \[^\n\r]* above array section size" }
+  #pragma omp task depend(in: d[11:]) // { dg-error "low bound \[^\n\r]* above array section size" }
     ;
-  #pragma omp task depend(out: e[ :11]) // { dg-error "length \[^\n\r]* above array section size" }
+  #pragma omp task depend(out: e[:11]) // { dg-error "length \[^\n\r]* above array section size" }
     ;
   #pragma omp task depend(out: f[1:10]) // { dg-error "high bound \[^\n\r]* above array section size" }
     ;
-  #pragma omp task depend(in: g[ : ][2:4]) // { dg-error "for array function parameter length expression must be specified" }
+  #pragma omp task depend(in: g[:][2:4]) // { dg-error "for array function parameter length expression must be specified" }
     ;
-  #pragma omp task depend(out: i[ :1][11: ]) // { dg-error "low bound \[^\n\r]* above array section size" }
+  #pragma omp task depend(out: i[:1][11:]) // { dg-error "low bound \[^\n\r]* above array section size" }
     ;
-  #pragma omp task depend(in: j[3:4][ :10]) // { dg-error "length \[^\n\r]* above array section size" }
+  #pragma omp task depend(in: j[3:4][:10]) // { dg-error "length \[^\n\r]* above array section size" }
     ;
   #pragma omp task depend(out: j[30:10][5:5]) // { dg-error "high bound \[^\n\r]* above array section size" }
     ;
-  #pragma omp task depend(out: a2[ :3][2:4])
+  #pragma omp task depend(out: a2[:3][2:4])
     ;
-  #pragma omp task depend(inout: b2[0: ])
+  #pragma omp task depend(inout: b2[0:])
     ;
-  #pragma omp task depend(inout: c2[ :3][1:1])
+  #pragma omp task depend(inout: c2[:3][1:1])
     ;
-  #pragma omp task depend(in: d2[9: ])
+  #pragma omp task depend(in: d2[9:])
     ;
-  #pragma omp task depend(out: e2[ :10])
+  #pragma omp task depend(out: e2[:10])
     ;
   #pragma omp task depend(out: f2[1:9])
     ;
-  #pragma omp task depend(in: g2[ :2][2:4])
+  #pragma omp task depend(in: g2[:2][2:4])
     ;
-  #pragma omp task depend(in: h2[2:2][0: ])
+  #pragma omp task depend(in: h2[2:2][0:])
     ;
-  #pragma omp task depend(inout: h2[ :1][ :3])
+  #pragma omp task depend(inout: h2[:1][:3])
     ;
-  #pragma omp task depend(out: i2[ :1][9: ])
+  #pragma omp task depend(out: i2[:1][9:])
     ;
-  #pragma omp task depend(in: j2[3:4][ :9])
+  #pragma omp task depend(in: j2[3:4][:9])
     ;
   #pragma omp task depend(out: j2[30:10][5:4])
     ;
diff --git a/gcc/testsuite/g++.dg/gomp/depend-2.C b/gcc/testsuite/g++.dg/gomp/depend-2.C
index ecc2e0c17838..f0f9f60056be 100644
--- a/gcc/testsuite/g++.dg/gomp/depend-2.C
+++ b/gcc/testsuite/g++.dg/gomp/depend-2.C
@@ -19,61 +19,61 @@ foo (int g[3][10], int h[4][8], int i[2][10], int j[][9],
     ;
   #pragma omp task depend(out: t[2:5])
     ;
-  #pragma omp task depend(inout: k[0.5: ]) // { dg-error "low bound \[^\n\r]* of array section does not have integral type" }
+  #pragma omp task depend(inout: k[0.5:]) // { dg-error "low bound \[^\n\r]* of array section does not have integral type" }
     ;
-  #pragma omp task depend(in: l[ :7.5f]) // { dg-error "length \[^\n\r]* of array section does not have integral type" }
+  #pragma omp task depend(in: l[:7.5f]) // { dg-error "length \[^\n\r]* of array section does not have integral type" }
     ;
-  #pragma omp task depend(out: m[p: ]) // { dg-error "low bound \[^\n\r]* of array section does not have integral type" }
+  #pragma omp task depend(out: m[p:]) // { dg-error "low bound \[^\n\r]* of array section does not have integral type" }
     ;
-  #pragma omp task depend(inout: n[ :p]) // { dg-error "length \[^\n\r]* of array section does not have integral type" }
+  #pragma omp task depend(inout: n[:p]) // { dg-error "length \[^\n\r]* of array section does not have integral type" }
     ;
   #pragma omp task depend(in: o[2:5]) // { dg-error "does not have pointer or array type" }
     ;
-  #pragma omp task depend(out: a[ : ][2:4]) // { dg-error "array type length expression must be specified" }
+  #pragma omp task depend(out: a[:][2:4]) // { dg-error "array type length expression must be specified" }
     ;
-  #pragma omp task depend(inout: b[-1: ]) // { dg-error "negative low bound in array section" }
+  #pragma omp task depend(inout: b[-1:]) // { dg-error "negative low bound in array section" }
     ;
-  #pragma omp task depend(inout: c[ :-3][1:1]) // { dg-error "negative length in array section" }
+  #pragma omp task depend(inout: c[:-3][1:1]) // { dg-error "negative length in array section" }
     ;
-  #pragma omp task depend(in: d[11: ]) // { dg-error "low bound \[^\n\r]* above array section size" }
+  #pragma omp task depend(in: d[11:]) // { dg-error "low bound \[^\n\r]* above array section size" }
     ;
-  #pragma omp task depend(out: e[ :11]) // { dg-error "length \[^\n\r]* above array section size" }
+  #pragma omp task depend(out: e[:11]) // { dg-error "length \[^\n\r]* above array section size" }
     ;
   #pragma omp task depend(out: f[1:10]) // { dg-error "high bound \[^\n\r]* above array section size" }
     ;
-  #pragma omp task depend(in: g[ : ][2:4]) // { dg-error "for array function parameter length expression must be specified" }
+  #pragma omp task depend(in: g[:][2:4]) // { dg-error "for array function parameter length expression must be specified" }
     ;
-  #pragma omp task depend(in: h[2:2][-1: ]) // { dg-error "negative low bound in array section" }
+  #pragma omp task depend(in: h[2:2][-1:]) // { dg-error "negative low bound in array section" }
     ;
-  #pragma omp task depend(inout: h[ :1][ :-3]) // { dg-error "negative length in array section" }
+  #pragma omp task depend(inout: h[:1][:-3]) // { dg-error "negative length in array section" }
     ;
-  #pragma omp task depend(out: i[ :1][11: ]) // { dg-error "low bound \[^\n\r]* above array section size" }
+  #pragma omp task depend(out: i[:1][11:]) // { dg-error "low bound \[^\n\r]* above array section size" }
     ;
-  #pragma omp task depend(in: j[3:4][ :10]) // { dg-error "length \[^\n\r]* above array section size" }
+  #pragma omp task depend(in: j[3:4][:10]) // { dg-error "length \[^\n\r]* above array section size" }
     ;
   #pragma omp task depend(out: j[30:10][5:5]) // { dg-error "high bound \[^\n\r]* above array section size" }
     ;
-  #pragma omp task depend(out: a2[ :3][2:4])
+  #pragma omp task depend(out: a2[:3][2:4])
     ;
-  #pragma omp task depend(inout: b2[0: ])
+  #pragma omp task depend(inout: b2[0:])
     ;
-  #pragma omp task depend(inout: c2[ :3][1:1])
+  #pragma omp task depend(inout: c2[:3][1:1])
     ;
-  #pragma omp task depend(in: d2[9: ])
+  #pragma omp task depend(in: d2[9:])
     ;
-  #pragma omp task depend(out: e2[ :10])
+  #pragma omp task depend(out: e2[:10])
     ;
   #pragma omp task depend(out: f2[1:9])
     ;
-  #pragma omp task depend(in: g2[ :2][2:4])
+  #pragma omp task depend(in: g2[:2][2:4])
     ;
-  #pragma omp task depend(in: h2[2:2][0: ])
+  #pragma omp task depend(in: h2[2:2][0:])
     ;
-  #pragma omp task depend(inout: h2[ :1][ :3])
+  #pragma omp task depend(inout: h2[:1][:3])
     ;
-  #pragma omp task depend(out: i2[ :1][9: ])
+  #pragma omp task depend(out: i2[:1][9:])
     ;
-  #pragma omp task depend(in: j2[3:4][ :9])
+  #pragma omp task depend(in: j2[3:4][:9])
     ;
   #pragma omp task depend(out: j2[30:10][5:4])
     ;
diff --git a/gcc/testsuite/g++.dg/gomp/ind-base-3.C b/gcc/testsuite/g++.dg/gomp/ind-base-3.C
index 69285fc69d08..e3ecdddf9cb2 100644
--- a/gcc/testsuite/g++.dg/gomp/ind-base-3.C
+++ b/gcc/testsuite/g++.dg/gomp/ind-base-3.C
@@ -24,7 +24,7 @@ int main (int argc, char *argv[])
 
   for (int i = 0; i < 10; i++)
     {
-#pragma omp target map(choose(&a, &b, i)->x[ :10])
+#pragma omp target map(choose(&a, &b, i)->x[:10])
 /* { dg-message {sorry, unimplemented: unsupported map expression 'choose\(\(& a\), \(& b\), i\)->S::x\[0\]'} "" { target *-*-* } .-1 } */
       for (int j = 0; j < 10; j++)
         choose (&a, &b, i)->x[j]++;
diff --git a/gcc/testsuite/g++.dg/gomp/map-1.C b/gcc/testsuite/g++.dg/gomp/map-1.C
index a2ec9fb849c3..d2c0a36bed40 100644
--- a/gcc/testsuite/g++.dg/gomp/map-1.C
+++ b/gcc/testsuite/g++.dg/gomp/map-1.C
@@ -29,13 +29,13 @@ foo (int g[3][10], int h[4][8], int i[2][10], int j[][9],
     ;
   #pragma omp target map(from: t[2:5]) /* { dg-error "is threadprivate variable" } */
     ;
-  #pragma omp target map(tofrom: k[0.5: ]) /* { dg-error "low bound \[^\n\r]* of array section does not have integral type" } */
+  #pragma omp target map(tofrom: k[0.5:]) /* { dg-error "low bound \[^\n\r]* of array section does not have integral type" } */
     ;
-  #pragma omp target map(from: l[ :7.5f]) /* { dg-error "length \[^\n\r]* of array section does not have integral type" } */
+  #pragma omp target map(from: l[:7.5f]) /* { dg-error "length \[^\n\r]* of array section does not have integral type" } */
     ;
-  #pragma omp target map(to: m[p: ]) /* { dg-error "low bound \[^\n\r]* of array section does not have integral type" } */
+  #pragma omp target map(to: m[p:]) /* { dg-error "low bound \[^\n\r]* of array section does not have integral type" } */
     ;
-  #pragma omp target map(tofrom: n[ :p]) /* { dg-error "length \[^\n\r]* of array section does not have integral type" } */
+  #pragma omp target map(tofrom: n[:p]) /* { dg-error "length \[^\n\r]* of array section does not have integral type" } */
     ;
   #pragma omp target map(to: o[2:5]) /* { dg-error "does not have pointer or array type" } */
     ;
@@ -43,73 +43,73 @@ foo (int g[3][10], int h[4][8], int i[2][10], int j[][9],
     ;
   #pragma omp target map(alloc: s2) /* { dg-error "'s2' does not have a mappable type in 'map' clause" } */
     ;
-  #pragma omp target map(to: a[ : ][ : ]) /* { dg-error "array type length expression must be specified" } */
+  #pragma omp target map(to: a[:][:]) /* { dg-error "array type length expression must be specified" } */
     bar (&a[0][0]); /* { dg-error "referenced in target region does not have a mappable type" "PR97996" { xfail *-*-* } } */
-  #pragma omp target map(tofrom: b[-1: ]) /* { dg-error "negative low bound in array section" } */
+  #pragma omp target map(tofrom: b[-1:]) /* { dg-error "negative low bound in array section" } */
     bar (b);
-  #pragma omp target map(tofrom: c[ :-3][ : ]) /* { dg-error "negative length in array section" } */
+  #pragma omp target map(tofrom: c[:-3][:]) /* { dg-error "negative length in array section" } */
     bar (&c[0][0]);
-  #pragma omp target map(from: d[11: ]) /* { dg-error "low bound \[^\n\r]* above array section size" } */
+  #pragma omp target map(from: d[11:]) /* { dg-error "low bound \[^\n\r]* above array section size" } */
     bar (d);
-  #pragma omp target map(to: e[ :11]) /* { dg-error "length \[^\n\r]* above array section size" } */
+  #pragma omp target map(to: e[:11]) /* { dg-error "length \[^\n\r]* above array section size" } */
     bar (e);
   #pragma omp target map(to: f[1:10]) /* { dg-error "high bound \[^\n\r]* above array section size" } */
     bar (f);
-  #pragma omp target map(from: g[ : ][0:10]) /* { dg-error "for array function parameter length expression must be specified" } */
+  #pragma omp target map(from: g[:][0:10]) /* { dg-error "for array function parameter length expression must be specified" } */
     bar (&g[0][0]);
-  #pragma omp target map(from: h[2:1][-1: ]) /* { dg-error "negative low bound in array section" } */
+  #pragma omp target map(from: h[2:1][-1:]) /* { dg-error "negative low bound in array section" } */
     bar (&h[0][0]);
-  #pragma omp target map(tofrom: h[ :1][ :-3]) /* { dg-error "negative length in array section" } */
+  #pragma omp target map(tofrom: h[:1][:-3]) /* { dg-error "negative length in array section" } */
     bar (&h[0][0]);
-  #pragma omp target map(i[ :1][11: ]) /* { dg-error "low bound \[^\n\r]* above array section size" } */
+  #pragma omp target map(i[:1][11:]) /* { dg-error "low bound \[^\n\r]* above array section size" } */
     bar (&i[0][0]);
-  #pragma omp target map(from: j[3:1][ :10]) /* { dg-error "length \[^\n\r]* above array section size" } */
+  #pragma omp target map(from: j[3:1][:10]) /* { dg-error "length \[^\n\r]* above array section size" } */
     bar (&j[0][0]);
   #pragma omp target map(to: j[30:1][5:5]) /* { dg-error "high bound \[^\n\r]* above array section size" } */
     bar (&j[0][0]);
-  #pragma omp target map(to: a2[ :1][2:4])
+  #pragma omp target map(to: a2[:1][2:4])
     bar (&a2[0][0]);
-  #pragma omp target map(a2[3:5][ : ])
+  #pragma omp target map(a2[3:5][:])
     bar (&a2[0][0]);
-  #pragma omp target map(to: a2[3:5][ :10])
+  #pragma omp target map(to: a2[3:5][:10])
     bar (&a2[0][0]);
-  #pragma omp target map(tofrom: b2[0: ])
+  #pragma omp target map(tofrom: b2[0:])
     bar (b2);
-  #pragma omp target map(tofrom: c2[ :3][ : ])
+  #pragma omp target map(tofrom: c2[:3][:])
     bar (&c2[0][0]);
-  #pragma omp target map(from: d2[9: ])
+  #pragma omp target map(from: d2[9:])
     bar (d2);
-  #pragma omp target map(to: e2[ :10])
+  #pragma omp target map(to: e2[:10])
     bar (e2);
   #pragma omp target map(to: f2[1:9])
     bar (f2);
-  #pragma omp target map(g2[ :1][2:4])
+  #pragma omp target map(g2[:1][2:4])
     bar (&g2[0][0]);
-  #pragma omp target map(from: h2[2:2][0: ])
+  #pragma omp target map(from: h2[2:2][0:])
     bar (&h2[0][0]);
-  #pragma omp target map(tofrom: h2[ :1][ :3])
+  #pragma omp target map(tofrom: h2[:1][:3])
     bar (&h2[0][0]);
-  #pragma omp target map(to: i2[ :1][9: ])
+  #pragma omp target map(to: i2[:1][9:])
     bar (&i2[0][0]);
-  #pragma omp target map(from: j2[3:4][ :9])
+  #pragma omp target map(from: j2[3:4][:9])
     bar (&j2[0][0]);
   #pragma omp target map(to: j2[30:1][5:4])
     bar (&j2[0][0]);
   #pragma omp target map(q[1:2])
     ;
-  #pragma omp target map(tofrom: q[3:5][ :10]) /* { dg-error "array section is not contiguous" } */
+  #pragma omp target map(tofrom: q[3:5][:10]) /* { dg-error "array section is not contiguous" } */
     ;
-  #pragma omp target map(r[3: ][2:1][1:2])
+  #pragma omp target map(r[3:][2:1][1:2])
     ;
-  #pragma omp target map(r[3: ][2:1][1:2][ : ][0:4])
+  #pragma omp target map(r[3:][2:1][1:2][:][0:4])
     ;
-  #pragma omp target map(r[3: ][2:1][1:2][1: ][0:4]) /* { dg-error "array section is not contiguous" } */
+  #pragma omp target map(r[3:][2:1][1:2][1:][0:4]) /* { dg-error "array section is not contiguous" } */
     ;
-  #pragma omp target map(r[3: ][2:1][1:2][ :3][0:4]) /* { dg-error "array section is not contiguous" } */
+  #pragma omp target map(r[3:][2:1][1:2][:3][0:4]) /* { dg-error "array section is not contiguous" } */
     ;
-  #pragma omp target map(r[3: ][2:1][1:2][ : ][1: ]) /* { dg-error "array section is not contiguous" } */
+  #pragma omp target map(r[3:][2:1][1:2][:][1:]) /* { dg-error "array section is not contiguous" } */
     ;
-  #pragma omp target map(r[3: ][2:1][1:2][ : ][ :3]) /* { dg-error "array section is not contiguous" } */
+  #pragma omp target map(r[3:][2:1][1:2][:][:3]) /* { dg-error "array section is not contiguous" } */
     ;
 }
 
diff --git a/gcc/testsuite/g++.dg/gomp/map-2.C b/gcc/testsuite/g++.dg/gomp/map-2.C
index 474402d3ccef..bbe26061fe35 100644
--- a/gcc/testsuite/g++.dg/gomp/map-2.C
+++ b/gcc/testsuite/g++.dg/gomp/map-2.C
@@ -17,25 +17,25 @@ foo (int *p, int (*q)[10], int r[10], int s[10][10])
   ;
   #pragma omp target map (tofrom: r[-1:2])
   ;
-  #pragma omp target map (tofrom: s[-1:2][ : ])
+  #pragma omp target map (tofrom: s[-1:2][:])
   ;
   #pragma omp target map (tofrom: s[-1:2][-2:10]) /* { dg-error "negative low bound in array section in" } */
   ;
   #pragma omp target map (tofrom: a[-1:2])	 /* { dg-error "negative low bound in array section in" } */
   ;
-  #pragma omp target map (tofrom: b[-1:2][0: ])	 /* { dg-error "negative low bound in array section in" } */
+  #pragma omp target map (tofrom: b[-1:2][0:])	 /* { dg-error "negative low bound in array section in" } */
   ;
   #pragma omp target map (tofrom: b[1:2][-2:10]) /* { dg-error "negative low bound in array section in" } */
   ;
   #pragma omp target map (tofrom: p[2:-3])	 /* { dg-error "negative length in array section in" } */
   ;
-  #pragma omp target map (tofrom: q[2:-3][ : ])	 /* { dg-error "negative length in array section in" } */
+  #pragma omp target map (tofrom: q[2:-3][:])	 /* { dg-error "negative length in array section in" } */
   ;
   #pragma omp target map (tofrom: q[2:3][0:-1])	 /* { dg-error "negative length in array section in" } */
   ;
   #pragma omp target map (tofrom: r[2:-5])	 /* { dg-error "negative length in array section in" } */
   ;
-  #pragma omp target map (tofrom: s[2:-5][ : ])	 /* { dg-error "negative length in array section in" } */
+  #pragma omp target map (tofrom: s[2:-5][:])	 /* { dg-error "negative length in array section in" } */
   ;
   #pragma omp target map (tofrom: s[2:5][0:-4])	 /* { dg-error "negative length in array section in" } */
   ;
diff --git a/gcc/testsuite/g++.dg/gomp/map-ptrmem-1.C b/gcc/testsuite/g++.dg/gomp/map-ptrmem-1.C
index f0545bcba5f1..110996b349c1 100644
--- a/gcc/testsuite/g++.dg/gomp/map-ptrmem-1.C
+++ b/gcc/testsuite/g++.dg/gomp/map-ptrmem-1.C
@@ -20,7 +20,7 @@ main (int argc, char *argv[])
   for (int i = 0; i < 64; i++)
     (s.*ptrp)[i] = i;
 
-#pragma omp target map(s.*xp, s.*ptrp, (s.*ptrp)[ :64])
+#pragma omp target map(s.*xp, s.*ptrp, (s.*ptrp)[:64])
   /* { dg-message {sorry, unimplemented: pointer-to-member mapping '\*\(\*\(\(\(int\*\*\)\(& s\)\) \+ \(\(sizetype\)ptrp\)\)\)' not supported} "" { target *-*-* } .-1 } */
   /* { dg-message {sorry, unimplemented: pointer-to-member mapping '\*\(\(\(int\*\*\)\(& s\)\) \+ \(\(sizetype\)ptrp\)\)' not supported} "" { target *-*-* } .-2 } */
   /* { dg-message {sorry, unimplemented: pointer-to-member mapping '\*\(\(\(int\*\)\(& s\)\) \+ \(\(sizetype\)xp\)\)' not supported} "" { target *-*-* } .-3 } */
diff --git a/gcc/testsuite/g++.dg/gomp/map-ptrmem-2.C b/gcc/testsuite/g++.dg/gomp/map-ptrmem-2.C
index 96aab6791c5e..644e5bb3c84f 100644
--- a/gcc/testsuite/g++.dg/gomp/map-ptrmem-2.C
+++ b/gcc/testsuite/g++.dg/gomp/map-ptrmem-2.C
@@ -20,7 +20,7 @@ main (int argc, char *argv[])
   for (int i = 0; i < 64; i++)
     (s->*ptrp)[i] = i;
 
-#pragma omp target map(s->*xp, s->*ptrp, (s->*ptrp)[ :64])
+#pragma omp target map(s->*xp, s->*ptrp, (s->*ptrp)[:64])
   /* { dg-message {sorry, unimplemented: pointer-to-member mapping '\*\(\(\(int\*\*\)s\) \+ \(\(sizetype\)ptrp\)\)' not supported} "" { target *-*-* } .-1 } */
   /* { dg-message {sorry, unimplemented: pointer-to-member mapping '\*\(\(\(int\*\)s\) \+ \(\(sizetype\)xp\)\)' not supported} "" { target *-*-* } .-2 } */
   /* { dg-message {sorry, unimplemented: pointer-to-member mapping '\*\(\*\(\(\(int\*\*\)s\) \+ \(\(sizetype\)ptrp\)\)\)' not supported} "" { target *-*-* } .-3 } */
diff --git a/gcc/testsuite/g++.dg/gomp/member-array-2.C b/gcc/testsuite/g++.dg/gomp/member-array-2.C
index 495863430dc1..a4e3a220c41b 100644
--- a/gcc/testsuite/g++.dg/gomp/member-array-2.C
+++ b/gcc/testsuite/g++.dg/gomp/member-array-2.C
@@ -40,7 +40,7 @@ C::zero ()
 void
 C::do_operation ()
 {
-#pragma omp target map(arr, ptr, ptr[ :100])
+#pragma omp target map(arr, ptr, ptr[:100])
 #pragma omp teams distribute parallel for
   for (int i = 0; i < 100; i++)
     {
@@ -70,7 +70,7 @@ main (int argc, char *argv[])
 
   /* It might sort of make sense to be able to do this, but we don't support
      it for now.  */
-  #pragma omp target map(c.get_arr()[ :100])
+  #pragma omp target map(c.get_arr()[:100])
   /* { dg-message {sorry, unimplemented: unsupported map expression 'c\.C::get_arr\(\)\[0\]'} "" { target *-*-* } .-1 } */
   #pragma omp teams distribute parallel for
     for (int i = 0; i < 100; i++)
@@ -79,7 +79,7 @@ main (int argc, char *argv[])
   c.check (5, 5);
 
   /* Same for this.  */
-  #pragma omp target map(c.get_ptr(), c.get_ptr()[ :100])
+  #pragma omp target map(c.get_ptr(), c.get_ptr()[:100])
   /* { dg-message {sorry, unimplemented: unsupported map expression 'c\.C::get_ptr\(\)'} "" { target *-*-* } .-1 } */
   /* { dg-message {sorry, unimplemented: unsupported map expression '\* c\.C::get_ptr\(\)'} "" { target *-*-* } .-2 } */
   #pragma omp teams distribute parallel for
diff --git a/gcc/testsuite/g++.dg/gomp/target-this-3.C b/gcc/testsuite/g++.dg/gomp/target-this-3.C
index c318fd15cba8..f4996b131142 100644
--- a/gcc/testsuite/g++.dg/gomp/target-this-3.C
+++ b/gcc/testsuite/g++.dg/gomp/target-this-3.C
@@ -73,7 +73,7 @@ int main (void)
     if (ptr2[i] != 0)
       abort ();
 
-  #pragma omp target data map(ptr1[ :N])
+  #pragma omp target data map(ptr1[:N])
   mapped = s.set_ptr (val);
 
   if (!mapped)
@@ -86,7 +86,7 @@ int main (void)
     if (ptr1[i] != val)
       abort ();
 
-  #pragma omp target data map(ptr2[ :N])
+  #pragma omp target data map(ptr2[:N])
   mapped = s.set_refptr (val);
 
   if (!mapped)
diff --git a/gcc/testsuite/g++.dg/gomp/target-this-4.C b/gcc/testsuite/g++.dg/gomp/target-this-4.C
index 8c0ad9a6db2c..bbcde3df23b5 100644
--- a/gcc/testsuite/g++.dg/gomp/target-this-4.C
+++ b/gcc/testsuite/g++.dg/gomp/target-this-4.C
@@ -80,7 +80,7 @@ int main (void)
     if (ptr2[i] != 0)
       abort ();
 
-  #pragma omp target data map(ptr1[ :N], ptr2[ :N])
+  #pragma omp target data map(ptr1[:N], ptr2[:N])
   {
     if (!p1 ())
       abort ();
diff --git a/libgomp/testsuite/libgomp.c++/allocate-1.C b/libgomp/testsuite/libgomp.c++/allocate-1.C
index 7b4904fc07b7..0876719f0a1c 100644
--- a/libgomp/testsuite/libgomp.c++/allocate-1.C
+++ b/libgomp/testsuite/libgomp.c++/allocate-1.C
@@ -90,7 +90,7 @@ foo (int &x, int &y, int &r, int &l, int (&l2)[4], int &l3, int &n, int *&p,
 	if ((fl & 1) && (((uintptr_t) &l2[0] | (uintptr_t) &l3) & 63) != 0)
 	  abort ();
       }
-    #pragma omp for reduction(+:p[2:px], q[ :3], r2) allocate(h: p, q, r2)
+    #pragma omp for reduction(+:p[2:px], q[:3], r2) allocate(h: p, q, r2)
     for (i = 0; i < 32; i++)
       {
 	p[2] += i;
diff --git a/libgomp/testsuite/libgomp.c++/baseptrs-3.C b/libgomp/testsuite/libgomp.c++/baseptrs-3.C
index 4c4ffba88585..39a48a40920a 100644
--- a/libgomp/testsuite/libgomp.c++/baseptrs-3.C
+++ b/libgomp/testsuite/libgomp.c++/baseptrs-3.C
@@ -30,7 +30,7 @@ foo0 ()
 
   memset (my_c.a.ptr, 0, sizeof (int) * 10);
 
-  #pragma omp target map (my_c.a.ptr, my_c.a.ptr[ :10])
+  #pragma omp target map (my_c.a.ptr, my_c.a.ptr[:10])
   {
     for (int i = 0; i < 10; i++)
       my_c.a.ptr[i] = i;
@@ -41,7 +41,7 @@ foo0 ()
 
   memset (my_c.b.arr, 0, sizeof (int) * 10);
 
-  #pragma omp target map (my_c.b.arr[ :10])
+  #pragma omp target map (my_c.b.arr[:10])
   {
     for (int i = 0; i < 10; i++)
       my_c.b.arr[i] = i;
@@ -81,7 +81,7 @@ foo ()
 
   memset (my_c.a.ptr, 0, sizeof (int) * 10);
 
-  #pragma omp target map (my_c.a.ptr, my_c.a.ptr[ :10])
+  #pragma omp target map (my_c.a.ptr, my_c.a.ptr[:10])
   {
     for (int i = 0; i < 10; i++)
       my_c.a.ptr[i] = i;
@@ -92,7 +92,7 @@ foo ()
 
   memset (my_c.b.arr, 0, sizeof (int) * 10);
 
-  #pragma omp target map (my_c.b.arr[ :10])
+  #pragma omp target map (my_c.b.arr[:10])
   {
     for (int i = 0; i < 10; i++)
       my_c.b.arr[i] = i;
@@ -116,7 +116,7 @@ bar ()
 
   memset (my_cref.a.ptr, 0, sizeof (int) * 10);
 
-  #pragma omp target map (my_cref.a.ptr, my_cref.a.ptr[ :10])
+  #pragma omp target map (my_cref.a.ptr, my_cref.a.ptr[:10])
   {
     for (int i = 0; i < 10; i++)
       my_cref.a.ptr[i] = i;
@@ -127,7 +127,7 @@ bar ()
 
   memset (my_cref.b.arr, 0, sizeof (int) * 10);
 
-  #pragma omp target map (my_cref.b.arr[ :10])
+  #pragma omp target map (my_cref.b.arr[:10])
   {
     for (int i = 0; i < 10; i++)
       my_cref.b.arr[i] = i;
@@ -157,7 +157,7 @@ foop0 ()
 
   memset (my_c->a->ptr, 0, sizeof (int) * 10);
 
-  #pragma omp target map (my_c->a, my_c->a[ :1], my_c->a->ptr, my_c->a->ptr[ :10])
+  #pragma omp target map (my_c->a, my_c->a[:1], my_c->a->ptr, my_c->a->ptr[:10])
   {
     for (int i = 0; i < 10; i++)
       my_c->a->ptr[i] = i;
@@ -168,7 +168,7 @@ foop0 ()
 
   memset (my_c->b->arr, 0, sizeof (int) * 10);
 
-  #pragma omp target map (my_c->b, my_c->b[ :1], my_c->b->arr[ :10])
+  #pragma omp target map (my_c->b, my_c->b[:1], my_c->b->arr[:10])
   {
     for (int i = 0; i < 10; i++)
       my_c->b->arr[i] = i;
@@ -200,7 +200,7 @@ foop ()
 
   memset (my_c->a->ptr, 0, sizeof (int) * 10);
 
-  #pragma omp target map (my_c->a, my_c->a[ :1], my_c->a->ptr, my_c->a->ptr[ :10])
+  #pragma omp target map (my_c->a, my_c->a[:1], my_c->a->ptr, my_c->a->ptr[:10])
   {
     for (int i = 0; i < 10; i++)
       my_c->a->ptr[i] = i;
@@ -211,7 +211,7 @@ foop ()
 
   memset (my_c->b->arr, 0, sizeof (int) * 10);
 
-  #pragma omp target map (my_c->b, my_c->b[ :1], my_c->b->arr[ :10])
+  #pragma omp target map (my_c->b, my_c->b[:1], my_c->b->arr[:10])
   {
     for (int i = 0; i < 10; i++)
       my_c->b->arr[i] = i;
@@ -237,8 +237,8 @@ barp ()
 
   memset (my_cref->a->ptr, 0, sizeof (int) * 10);
 
-  #pragma omp target map (my_cref->a, my_cref->a[ :1], my_cref->a->ptr, \
-			  my_cref->a->ptr[ :10])
+  #pragma omp target map (my_cref->a, my_cref->a[:1], my_cref->a->ptr, \
+			  my_cref->a->ptr[:10])
   {
     for (int i = 0; i < 10; i++)
       my_cref->a->ptr[i] = i;
@@ -249,7 +249,7 @@ barp ()
 
   memset (my_cref->b->arr, 0, sizeof (int) * 10);
 
-  #pragma omp target map (my_cref->b, my_cref->b[ :1], my_cref->b->arr[ :10])
+  #pragma omp target map (my_cref->b, my_cref->b[:1], my_cref->b->arr[:10])
   {
     for (int i = 0; i < 10; i++)
       my_cref->b->arr[i] = i;
diff --git a/libgomp/testsuite/libgomp.c++/baseptrs-5.C b/libgomp/testsuite/libgomp.c++/baseptrs-5.C
index 5c18bf36803b..16bdfff3ae08 100644
--- a/libgomp/testsuite/libgomp.c++/baseptrs-5.C
+++ b/libgomp/testsuite/libgomp.c++/baseptrs-5.C
@@ -35,8 +35,8 @@ main ()
   memset (my_c->a->ptr2, 0, sizeof (int) * 10);
 
   #pragma omp target map (my_c->a, \
-			  my_c->a->ptr, my_c->a->ptr[ :10], \
-			  my_c->a->ptr2, my_c->a->ptr2[ :10])
+			  my_c->a->ptr, my_c->a->ptr[:10], \
+			  my_c->a->ptr2, my_c->a->ptr2[:10])
   {
     for (int i = 0; i < 10; i++)
       {
diff --git a/libgomp/testsuite/libgomp.c++/class-array-1.C b/libgomp/testsuite/libgomp.c++/class-array-1.C
index b6dd34b0e68d..d8d3f7f1f99a 100644
--- a/libgomp/testsuite/libgomp.c++/class-array-1.C
+++ b/libgomp/testsuite/libgomp.c++/class-array-1.C
@@ -16,14 +16,14 @@ public:
 
   void incr_with_this (int c)
   {
-#pragma omp target map(this->array[ :N])
+#pragma omp target map(this->array[:N])
     for (int i = 0; i < N; i++)
       array[i] += c;
   }
 
   void incr_without_this (int c)
   {
-#pragma omp target map(array[ :N])
+#pragma omp target map(array[:N])
     for (int i = 0; i < N; i++)
       array[i] += c;
   }
diff --git a/libgomp/testsuite/libgomp.c++/examples-4/target_data-5.C b/libgomp/testsuite/libgomp.c++/examples-4/target_data-5.C
index cf7dd4b31948..4298e2342177 100644
--- a/libgomp/testsuite/libgomp.c++/examples-4/target_data-5.C
+++ b/libgomp/testsuite/libgomp.c++/examples-4/target_data-5.C
@@ -33,7 +33,7 @@ void vec_mult_ref (float *&p, float *&v1, float *&v2, int n)
 
 void vec_mult (float *&p, float *&v1, float *&v2, int n)
 {
-  #pragma omp target map(to: v1[0:n], v2[ :n]) map(from: p[0:n])
+  #pragma omp target map(to: v1[0:n], v2[:n]) map(from: p[0:n])
     #pragma omp parallel for
       for (int i = 0; i < n; i++)
 	p[i] = v1[i] * v2[i];
diff --git a/libgomp/testsuite/libgomp.c++/lvalue-tofrom-2.C b/libgomp/testsuite/libgomp.c++/lvalue-tofrom-2.C
index 91835c444e08..adc493b1315c 100644
--- a/libgomp/testsuite/libgomp.c++/lvalue-tofrom-2.C
+++ b/libgomp/testsuite/libgomp.c++/lvalue-tofrom-2.C
@@ -23,7 +23,7 @@ void foo()
   for (int i = 0; i < aw.length; i++)
     aw.data[i] = i;
 
-#pragma omp target update from(aw.data[ :aw.length])
+#pragma omp target update from(aw.data[:aw.length])
 
 #pragma omp target exit data map(delete: aw.data, aw.length, \
 				 aw.data[0:aw.length])
@@ -54,7 +54,7 @@ main ()
   for (int i = 0; i < aw.length; i++)
     aw.data[i] = i;
 
-#pragma omp target update from(aw.data[ :aw.length])
+#pragma omp target update from(aw.data[:aw.length])
 
 #pragma omp target exit data map(delete: aw.data, aw.length, \
 				 aw.data[0:aw.length])
diff --git a/libgomp/testsuite/libgomp.c++/pr101544-1.C b/libgomp/testsuite/libgomp.c++/pr101544-1.C
index ae25ca39a6cf..0ad21ec14804 100644
--- a/libgomp/testsuite/libgomp.c++/pr101544-1.C
+++ b/libgomp/testsuite/libgomp.c++/pr101544-1.C
@@ -65,8 +65,8 @@ int main() {
   double* inptr = in.data();
   double* outptr = out.data();
 
-#pragma omp target teams distribute parallel for map(inptr[ :10], outptr[ :10]) is_device_ptr(devPtr)
-#pragma acc parallel loop copy(inptr[ :10], outptr[ :10]) deviceptr(devPtr)
+#pragma omp target teams distribute parallel for map(inptr[:10], outptr[:10]) is_device_ptr(devPtr)
+#pragma acc parallel loop copy(inptr[:10], outptr[:10]) deviceptr(devPtr)
   for(int i = 0; i < 10; i++) {
     outptr[i] = devPtr->sag(inptr[i], inptr[i]);
   }
diff --git a/libgomp/testsuite/libgomp.c++/pr108286.C b/libgomp/testsuite/libgomp.c++/pr108286.C
index 3d2fb7fdfb00..ee88c2f9fd09 100644
--- a/libgomp/testsuite/libgomp.c++/pr108286.C
+++ b/libgomp/testsuite/libgomp.c++/pr108286.C
@@ -6,7 +6,7 @@ struct S {
   foo ()
   {
     int res = 0;
-#pragma omp target map(size, ptr[ :size], res) nowait
+#pragma omp target map(size, ptr[:size], res) nowait
     res = ptr[size - 1];
 #pragma omp taskwait
     return res;
diff --git a/libgomp/testsuite/libgomp.c++/reduction-10.C b/libgomp/testsuite/libgomp.c++/reduction-10.C
index 353a6678fbbf..2254430f168c 100644
--- a/libgomp/testsuite/libgomp.c++/reduction-10.C
+++ b/libgomp/testsuite/libgomp.c++/reduction-10.C
@@ -63,9 +63,9 @@ foo (A<int> (*&x)[3][N], M<int> *y, B<long> (&w)[1][N], int p1, long p2, long p3
   short (&b)[p7] = bb;
   for (int i = 0; i < p7; i++)
     bb[i] = -6;
-  #pragma omp parallel for reduction(+:x[0:p1 + 1][ :p2 + N - 2], z[ :p3]) \
-			   reduction(*:y[ :p4]) reduction(|:a[ :p5 - N + 2]) \
-			   reduction(&:w[0:p6 - 3 + N][ :p6]) reduction(maxb:b)
+  #pragma omp parallel for reduction(+:x[0:p1 + 1][:p2 + N - 2], z[:p3]) \
+			   reduction(*:y[:p4]) reduction(|:a[:p5 - N + 2]) \
+			   reduction(&:w[0:p6 - 3 + N][:p6]) reduction(maxb:b)
   for (int i = 0; i < 128; i++)
     {
       x[i / 64][i % 3][(i / 4) & 1].t += i;
@@ -120,9 +120,9 @@ template <int N>
 void
 S<N>::foo (int p1, long p2, long p3, int p4, int p5, long p6, short p7)
 {
-  #pragma omp parallel for reduction(+:x[0:p1 + 1][ :p2][0:N], z[ :p3 + N - 2]) \
-			   reduction(*:y[ :p4]) reduction(|:a[ :p5]) \
-			   reduction(&:w[0:p6 - 3 + N][ :p6]) reduction(maxb:b)
+  #pragma omp parallel for reduction(+:x[0:p1 + 1][:p2][0:N], z[:p3 + N - 2]) \
+			   reduction(*:y[:p4]) reduction(|:a[:p5]) \
+			   reduction(&:w[0:p6 - 3 + N][:p6]) reduction(maxb:b)
   for (int i = 0; i < 128; i++)
     {
       x[i / 64][i % 3][(i / 4) & 1].t += i;
diff --git a/libgomp/testsuite/libgomp.c++/reduction-11.C b/libgomp/testsuite/libgomp.c++/reduction-11.C
index 9e3ee3f1a66c..67c7320cf5c7 100644
--- a/libgomp/testsuite/libgomp.c++/reduction-11.C
+++ b/libgomp/testsuite/libgomp.c++/reduction-11.C
@@ -7,9 +7,9 @@ foo (int (*&x)[3][2], int *y, long (&w)[1][2], int s, int t)
 {
   unsigned long long a[9] = {};
   short b[5] = {};
-  #pragma omp parallel for reduction(+:x[-1:2][ : ][0:2], z[t + 2:4]) \
+  #pragma omp parallel for reduction(+:x[-1:2][:][0:2], z[t + 2:4]) \
 			   reduction(*:y[-s:3]) reduction(|:a[s + 3:4]) \
-			   reduction(&:w[s + 1: ][t:2]) reduction(max:b[2: ])
+			   reduction(&:w[s + 1:][t:2]) reduction(max:b[2:])
   for (int i = 0; i < 128; i++)
     {
       x[i / 64 - 1][i % 3][(i / 4) & 1] += i;
@@ -59,9 +59,9 @@ struct S
 void
 S::foo (int s, int t)
 {
-  #pragma omp parallel for reduction(+:x[-1:2][ : ][0:2], z[t + 2:4]) \
+  #pragma omp parallel for reduction(+:x[-1:2][:][0:2], z[t + 2:4]) \
 			   reduction(*:y[-s:3]) reduction(|:a[s + 3:4]) \
-			   reduction(&:w[s + 1: ][t:2]) reduction(max:b[2: ])
+			   reduction(&:w[s + 1:][t:2]) reduction(max:b[2:])
   for (int i = 0; i < 128; i++)
     {
       x[i / 64 - 1][i % 3][(i / 4) & 1] += i;
diff --git a/libgomp/testsuite/libgomp.c++/reduction-12.C b/libgomp/testsuite/libgomp.c++/reduction-12.C
index ef3c3e5f9164..1495549a956e 100644
--- a/libgomp/testsuite/libgomp.c++/reduction-12.C
+++ b/libgomp/testsuite/libgomp.c++/reduction-12.C
@@ -65,9 +65,9 @@ foo (A<int> (*&x)[3][N], M<int> *y, B<long> (&w)[1][N], int p1, long p2, long p3
   short (&b)[p7] = bb;
   for (int i = 0; i < p7; i++)
     bb[i] = -6;
-  #pragma omp parallel for reduction(+:x[-1:p1 + 1][ :p2 + N - 2], z[t + N:p3]) \
+  #pragma omp parallel for reduction(+:x[-1:p1 + 1][:p2 + N - 2], z[t + N:p3]) \
 			   reduction(*:y[-s:p4]) reduction(|:a[s + 3:p5 - N + 2]) \
-			   reduction(&:w[s + 1:p6 - 3 + N][t:p6]) reduction(maxb:b[N: ])
+			   reduction(&:w[s + 1:p6 - 3 + N][t:p6]) reduction(maxb:b[N:])
   for (int i = 0; i < 128; i++)
     {
       x[i / 64 - 1][i % 3][(i / 4) & 1].t += i;
@@ -118,9 +118,9 @@ template <int N>
 void
 S<N>::foo (int p1, long p2, long p3, int p4, int p5, long p6, short p7, int s, int t)
 {
-  #pragma omp parallel for reduction(+:x[-1:p1 + 1][ :p2][0:N], z[t + N:p3 + N - 2]) \
+  #pragma omp parallel for reduction(+:x[-1:p1 + 1][:p2][0:N], z[t + N:p3 + N - 2]) \
 			   reduction(*:y[-s:p4]) reduction(|:a[s + 3:p5]) \
-			   reduction(&:w[s + 1:p6 - 3 + N][t:p6]) reduction(maxb:b[N: ])
+			   reduction(&:w[s + 1:p6 - 3 + N][t:p6]) reduction(maxb:b[N:])
   for (int i = 0; i < 128; i++)
     {
       x[i / 64 - 1][i % 3][(i / 4) & 1].t += i;
diff --git a/libgomp/testsuite/libgomp.c++/reduction-5.C b/libgomp/testsuite/libgomp.c++/reduction-5.C
index 127519dd4559..212fd69be58e 100644
--- a/libgomp/testsuite/libgomp.c++/reduction-5.C
+++ b/libgomp/testsuite/libgomp.c++/reduction-5.C
@@ -5,9 +5,9 @@ foo (int (*&x)[3][2], int *y, long (&w)[1][2])
 {
   unsigned long long a[9] = {};
   short b[5] = {};
-  #pragma omp parallel for reduction(+:x[0:2][ : ][0:2], z[ :4]) \
-			   reduction(*:y[ :3]) reduction(|:a[ :4]) \
-			   reduction(&:w[0: ][ :2]) reduction(max:b)
+  #pragma omp parallel for reduction(+:x[0:2][:][0:2], z[:4]) \
+			   reduction(*:y[:3]) reduction(|:a[:4]) \
+			   reduction(&:w[0:][:2]) reduction(max:b)
   for (int i = 0; i < 128; i++)
     {
       x[i / 64][i % 3][(i / 4) & 1] += i;
@@ -61,9 +61,9 @@ struct S
 void
 S::foo ()
 {
-  #pragma omp parallel for reduction(+:x[0:2][ : ][0:2], z[ :4]) \
-			   reduction(*:y[ :3]) reduction(|:a[ :4]) \
-			   reduction(&:w[0: ][ :2]) reduction(max:b)
+  #pragma omp parallel for reduction(+:x[0:2][:][0:2], z[:4]) \
+			   reduction(*:y[:3]) reduction(|:a[:4]) \
+			   reduction(&:w[0:][:2]) reduction(max:b)
   for (int i = 0; i < 128; i++)
     {
       x[i / 64][i % 3][(i / 4) & 1] += i;
diff --git a/libgomp/testsuite/libgomp.c++/reduction-6.C b/libgomp/testsuite/libgomp.c++/reduction-6.C
index 4c06f8d399c8..f180ca35edde 100644
--- a/libgomp/testsuite/libgomp.c++/reduction-6.C
+++ b/libgomp/testsuite/libgomp.c++/reduction-6.C
@@ -59,9 +59,9 @@ foo (A<int> (*&x)[3][2], M<int> *y, B<long> (&w)[1][2])
   A<unsigned long long> a[9];
   short bb[5] = {};
   short (&b)[5] = bb;
-  #pragma omp parallel for reduction(+:x[0:2][ : ][0:2], z[ :4]) \
-			   reduction(*:y[ :3]) reduction(|:a[ :4]) \
-			   reduction(&:w[0: ][ :2]) reduction(maxb:b)
+  #pragma omp parallel for reduction(+:x[0:2][:][0:2], z[:4]) \
+			   reduction(*:y[:3]) reduction(|:a[:4]) \
+			   reduction(&:w[0:][:2]) reduction(maxb:b)
   for (int i = 0; i < 128; i++)
     {
       x[i / 64][i % 3][(i / 4) & 1].t += i;
@@ -114,9 +114,9 @@ struct S
 void
 S::foo ()
 {
-  #pragma omp parallel for reduction(+:x[0:2][ : ][0:2], z[ :4]) \
-			   reduction(*:y[ :3]) reduction(|:a[ :4]) \
-			   reduction(&:w[0: ][ :2]) reduction(maxb:b)
+  #pragma omp parallel for reduction(+:x[0:2][:][0:2], z[:4]) \
+			   reduction(*:y[:3]) reduction(|:a[:4]) \
+			   reduction(&:w[0:][:2]) reduction(maxb:b)
   for (int i = 0; i < 128; i++)
     {
       x[i / 64][i % 3][(i / 4) & 1].t += i;
diff --git a/libgomp/testsuite/libgomp.c++/reduction-7.C b/libgomp/testsuite/libgomp.c++/reduction-7.C
index 616e3a0d0e55..75f9d08aac4b 100644
--- a/libgomp/testsuite/libgomp.c++/reduction-7.C
+++ b/libgomp/testsuite/libgomp.c++/reduction-7.C
@@ -12,9 +12,9 @@ foo (int (*&x)[3][2], int *y, long (&w)[1][2], int p1, long p2, long p3, int p4,
 	b[i] = -6;
       a[i] = 0;
     }
-  #pragma omp parallel for reduction(+:x[0:p1 + 1][ :p2], z[ :p3]) \
-			   reduction(*:y[ :p4]) reduction(|:a[ :p5]) \
-			   reduction(&:w[0:p6 - 1][ :p6]) reduction(max:b)
+  #pragma omp parallel for reduction(+:x[0:p1 + 1][:p2], z[:p3]) \
+			   reduction(*:y[:p4]) reduction(|:a[:p5]) \
+			   reduction(&:w[0:p6 - 1][:p6]) reduction(max:b)
   for (int i = 0; i < 128; i++)
     {
       x[i / 64][i % 3][(i / 4) & 1] += i;
@@ -68,9 +68,9 @@ struct S
 void
 S::foo (int p1, long p2, long p3, int p4, int p5, long p6, short p7)
 {
-  #pragma omp parallel for reduction(+:x[0:p1 + 1][ :p2], z[ :p3]) \
-			   reduction(*:y[ :p4]) reduction(|:a[ :p5]) \
-			   reduction(&:w[0:p6 - 1][ :p6]) reduction(max:b[0:p7])
+  #pragma omp parallel for reduction(+:x[0:p1 + 1][:p2], z[:p3]) \
+			   reduction(*:y[:p4]) reduction(|:a[:p5]) \
+			   reduction(&:w[0:p6 - 1][:p6]) reduction(max:b[0:p7])
   for (int i = 0; i < 128; i++)
     {
       x[i / 64][i % 3][(i / 4) & 1] += i;
diff --git a/libgomp/testsuite/libgomp.c++/reduction-8.C b/libgomp/testsuite/libgomp.c++/reduction-8.C
index 6bd5ea65c811..cffd7cc2d4c9 100644
--- a/libgomp/testsuite/libgomp.c++/reduction-8.C
+++ b/libgomp/testsuite/libgomp.c++/reduction-8.C
@@ -62,9 +62,9 @@ foo (A<int> (*&x)[3][2], M<int> *y, B<long> (&w)[1][2], int p1, long p2, long p3
   short (&b)[p7] = bb;
   for (int i = 0; i < p7; i++)
     bb[i] = -6;
-  #pragma omp parallel for reduction(+:x[0:p1 + 1][ :p2], z[ :p3]) \
-			   reduction(*:y[ :p4]) reduction(|:a[ :p5]) \
-			   reduction(&:w[0:p6 - 1][ :p6]) reduction(maxb:b)
+  #pragma omp parallel for reduction(+:x[0:p1 + 1][:p2], z[:p3]) \
+			   reduction(*:y[:p4]) reduction(|:a[:p5]) \
+			   reduction(&:w[0:p6 - 1][:p6]) reduction(maxb:b)
   for (int i = 0; i < 128; i++)
     {
       x[i / 64][i % 3][(i / 4) & 1].t += i;
@@ -117,9 +117,9 @@ struct S
 void
 S::foo (int p1, long p2, long p3, int p4, int p5, long p6, short p7)
 {
-  #pragma omp parallel for reduction(+:x[0:p1 + 1][ :p2][0:2], z[ :p3]) \
-			   reduction(*:y[ :p4]) reduction(|:a[ :p5]) \
-			   reduction(&:w[0:p6 - 1][ :p6]) reduction(maxb:b)
+  #pragma omp parallel for reduction(+:x[0:p1 + 1][:p2][0:2], z[:p3]) \
+			   reduction(*:y[:p4]) reduction(|:a[:p5]) \
+			   reduction(&:w[0:p6 - 1][:p6]) reduction(maxb:b)
   for (int i = 0; i < 128; i++)
     {
       x[i / 64][i % 3][(i / 4) & 1].t += i;
diff --git a/libgomp/testsuite/libgomp.c++/reduction-9.C b/libgomp/testsuite/libgomp.c++/reduction-9.C
index d6f30410cb01..117a8f66c527 100644
--- a/libgomp/testsuite/libgomp.c++/reduction-9.C
+++ b/libgomp/testsuite/libgomp.c++/reduction-9.C
@@ -6,9 +6,9 @@ foo (int (*&x)[3][N], int *y, long (&w)[1][N])
 {
   unsigned long long a[9] = {};
   short b[5] = {};
-  #pragma omp parallel for reduction(+:x[0:N][ : ][0:N], z[ :4]) \
-			   reduction(*:y[ :3]) reduction(|:a[ :4]) \
-			   reduction(&:w[0: ][ :N]) reduction(max:b)
+  #pragma omp parallel for reduction(+:x[0:N][:][0:N], z[:4]) \
+			   reduction(*:y[:3]) reduction(|:a[:4]) \
+			   reduction(&:w[0:][:N]) reduction(max:b)
   for (int i = 0; i < 128; i++)
     {
       x[i / 64][i % 3][(i / 4) & 1] += i;
@@ -64,9 +64,9 @@ template <int N>
 void
 S<N>::foo ()
 {
-  #pragma omp parallel for reduction(+:x[0:N][ : ][0:N], z[ :4]) \
-			   reduction(*:y[ :3]) reduction(|:a[ :4]) \
-			   reduction(&:w[0: ][ :N]) reduction(max:b)
+  #pragma omp parallel for reduction(+:x[0:N][:][0:N], z[:4]) \
+			   reduction(*:y[:3]) reduction(|:a[:4]) \
+			   reduction(&:w[0:][:N]) reduction(max:b)
   for (int i = 0; i < 128; i++)
     {
       x[i / 64][i % 3][(i / 4) & 1] += i;
diff --git a/libgomp/testsuite/libgomp.c++/target-18.C b/libgomp/testsuite/libgomp.c++/target-18.C
index 5d616da00fcd..a21ed4e81f9c 100644
--- a/libgomp/testsuite/libgomp.c++/target-18.C
+++ b/libgomp/testsuite/libgomp.c++/target-18.C
@@ -12,7 +12,7 @@ foo (int *&p, int *&q, int *&r, int n, int m)
     /* For zero length array sections, p points to the start of
        already mapped range, q to the end of it (with nothing mapped
        after it), and r does not point to an mapped range.  */
-    #pragma omp target map(alloc:p[ :0]) map(to:q[ :0]) map(from:r[ :0]) private(i) map(from:err) firstprivate (s)
+    #pragma omp target map(alloc:p[:0]) map(to:q[:0]) map(from:r[:0]) private(i) map(from:err) firstprivate (s)
     {
       err = 0;
       for (i = 0; i < 8; i++)
@@ -51,7 +51,7 @@ foo (int *&p, int *&q, int *&r, int n, int m)
       abort ();
     /* And zero-length array sections, though not known at compile
        time, behave the same.  */
-    #pragma omp target map(p[ :n]) map(tofrom:q[ :n]) map(alloc:r[ :n]) private(i) map(from:err) firstprivate (s)
+    #pragma omp target map(p[:n]) map(tofrom:q[:n]) map(alloc:r[:n]) private(i) map(from:err) firstprivate (s)
     {
       err = 0;
       for (i = 0; i < 8; i++)
@@ -71,7 +71,7 @@ foo (int *&p, int *&q, int *&r, int n, int m)
       abort ();
     /* Non-zero length array sections, though not known at compile,
        behave differently.  */
-    #pragma omp target map(p[ :m]) map(tofrom:q[ :m]) map(to:r[ :m]) private(i) map(from:err)
+    #pragma omp target map(p[:m]) map(tofrom:q[:m]) map(to:r[:m]) private(i) map(from:err)
     {
       err = 0;
       for (i = 0; i < 8; i++)
@@ -87,7 +87,7 @@ foo (int *&p, int *&q, int *&r, int n, int m)
       /* For zero length array sections, p points to the start of
 	 already mapped range, q points to the start of another one,
 	 and r to the end of the second one.  */
-      #pragma omp target map(to:p[ :0]) map(from:q[ :0]) map(tofrom:r[ :0]) private(i) map(from:err)
+      #pragma omp target map(to:p[:0]) map(from:q[:0]) map(tofrom:r[:0]) private(i) map(from:err)
       {
 	err = 0;
 	for (i = 0; i < 8; i++)
@@ -128,7 +128,7 @@ foo (int *&p, int *&q, int *&r, int n, int m)
 	abort ();
       /* And zero-length array sections, though not known at compile
 	 time, behave the same.  */
-      #pragma omp target map(p[ :n]) map(alloc:q[ :n]) map(from:r[ :n]) private(i) map(from:err)
+      #pragma omp target map(p[:n]) map(alloc:q[:n]) map(from:r[:n]) private(i) map(from:err)
       {
 	err = 0;
 	for (i = 0; i < 8; i++)
@@ -149,7 +149,7 @@ foo (int *&p, int *&q, int *&r, int n, int m)
 	abort ();
       /* Non-zero length array sections, though not known at compile,
 	 behave differently.  */
-      #pragma omp target map(p[ :m]) map(alloc:q[ :m]) map(tofrom:r[ :m]) private(i) map(from:err)
+      #pragma omp target map(p[:m]) map(alloc:q[:m]) map(tofrom:r[:m]) private(i) map(from:err)
       {
 	err = 0;
 	for (i = 0; i < 8; i++)
diff --git a/libgomp/testsuite/libgomp.c++/target-19.C b/libgomp/testsuite/libgomp.c++/target-19.C
index 3a00a6740ada..7bae31d2734d 100644
--- a/libgomp/testsuite/libgomp.c++/target-19.C
+++ b/libgomp/testsuite/libgomp.c++/target-19.C
@@ -21,7 +21,7 @@ foo (S s, int (&t)[3], int z)
   }
   if (err) abort ();
   // But explicit zero length array section mapping does.
-  #pragma omp target map(from: err) map(tofrom: s.r[ :0], t[ :0])
+  #pragma omp target map(from: err) map(tofrom: s.r[:0], t[:0])
   {
     if (sep)
       /* Since OpenMP 5.2, if no matching mapped list it has been found,
@@ -32,7 +32,7 @@ foo (S s, int (&t)[3], int z)
   }
   if (err) abort ();
   // Similarly zero length array section, but unknown at compile time.
-  #pragma omp target map(from: err) map(tofrom: s.r[ :z], t[ :z])
+  #pragma omp target map(from: err) map(tofrom: s.r[:z], t[:z])
   {
     if (sep)
       /* Since OpenMP 5.2, if no matching mapped list it has been found,
@@ -44,13 +44,13 @@ foo (S s, int (&t)[3], int z)
   if (err) abort ();
   #pragma omp target enter data map (to: s.r, t)
   // But when already mapped, it binds to existing mappings.
-  #pragma omp target map(from: err) map(tofrom: s.r[ :0], t[ :0])
+  #pragma omp target map(from: err) map(tofrom: s.r[:0], t[:0])
   {
     err = t[0] != 1 || t[1] != 2 || t[2] != 3 || s.r[0] != 6 || s.r[1] != 7;
     sep = 0;
   }
   if (err) abort ();
-  #pragma omp target map(from: err) map(tofrom: s.r[ :z], t[ :z])
+  #pragma omp target map(from: err) map(tofrom: s.r[:z], t[:z])
   {
     err = t[0] != 1 || t[1] != 2 || t[2] != 3 || s.r[0] != 6 || s.r[1] != 7;
     sep = 0;
diff --git a/libgomp/testsuite/libgomp.c++/target-2.C b/libgomp/testsuite/libgomp.c++/target-2.C
index bbf2d8a48e65..1eab7f29b4a7 100644
--- a/libgomp/testsuite/libgomp.c++/target-2.C
+++ b/libgomp/testsuite/libgomp.c++/target-2.C
@@ -32,7 +32,7 @@ fn2 (int x, double (&dr) [1024], double *&er)
   double *&ir = i;
   int j;
   fn1 (hr + 2 * x, ir + 2 * x, x);
-  #pragma omp target map(to: br[ :x], cr[0:x], dr[x:x], er[x:x]) \
+  #pragma omp target map(to: br[:x], cr[0:x], dr[x:x], er[x:x]) \
 		     map(to: fr[0:x], gr[0:x], hr[2 * x:x], ir[2 * x:x]) \
 		     map(tofrom: s)
     #pragma omp parallel for reduction(+:s)
diff --git a/libgomp/testsuite/libgomp.c++/target-22.C b/libgomp/testsuite/libgomp.c++/target-22.C
index da7967b8d24d..9d9dea01c757 100644
--- a/libgomp/testsuite/libgomp.c++/target-22.C
+++ b/libgomp/testsuite/libgomp.c++/target-22.C
@@ -20,7 +20,7 @@ foo (int *&p, int (&s)[5], int &t, S &u, int n)
   }
   if (err)
     abort ();
-  #pragma omp target data use_device_ptr(p) map(from:err) map(to:q[ :4])
+  #pragma omp target data use_device_ptr(p) map(from:err) map(to:q[:4])
   #pragma omp target is_device_ptr(p) private(i) map(from:err)
   {
     err = 0;
@@ -50,7 +50,7 @@ foo (int *&p, int (&s)[5], int &t, S &u, int n)
   }
   if (err)
     abort ();
-  #pragma omp target data map(to:s[ :5]) use_device_addr(s) map(from:err)
+  #pragma omp target data map(to:s[:5]) use_device_addr(s) map(from:err)
   #pragma omp target is_device_ptr(s) private(i) map(from:err)
   {
     err = 0;
diff --git a/libgomp/testsuite/libgomp.c++/target-23.C b/libgomp/testsuite/libgomp.c++/target-23.C
index 66a693e37507..63d343624b0c 100644
--- a/libgomp/testsuite/libgomp.c++/target-23.C
+++ b/libgomp/testsuite/libgomp.c++/target-23.C
@@ -16,13 +16,13 @@ main (void)
     s->data[i] = 0;
 
   #pragma omp target enter data map(to: s)
-  #pragma omp target enter data map(to: s->data, s->data[ :SZ])
+  #pragma omp target enter data map(to: s->data, s->data[:SZ])
   #pragma omp target
   {
     for (int i = 0; i < SZ; i++)
       s->data[i] = i;
   }
-  #pragma omp target exit data map(from: s->data, s->data[ :SZ])
+  #pragma omp target exit data map(from: s->data, s->data[:SZ])
   #pragma omp target exit data map(from: s)
 
   for (int i = 0; i < SZ; i++)
diff --git a/libgomp/testsuite/libgomp.c++/target-9.C b/libgomp/testsuite/libgomp.c++/target-9.C
index 1b6d2b45c291..83a61cf599b4 100644
--- a/libgomp/testsuite/libgomp.c++/target-9.C
+++ b/libgomp/testsuite/libgomp.c++/target-9.C
@@ -21,7 +21,7 @@ foo (int *&p, int (&s)[5], int &t, S &u, int n)
   }
   if (err)
     abort ();
-  #pragma omp target data map(to:q[ :4])
+  #pragma omp target data map(to:q[:4])
   #pragma omp target data use_device_ptr(p) map(from:err)
   #pragma omp target is_device_ptr(p) private(i) map(from:err)
   {
@@ -54,7 +54,7 @@ foo (int *&p, int (&s)[5], int &t, S &u, int n)
   }
   if (err)
     abort ();
-  #pragma omp target data map(to:s[ :5])
+  #pragma omp target data map(to:s[:5])
   #pragma omp target data use_device_addr(s) map(from:err)
   #pragma omp target is_device_ptr(s) private(i) map(from:err)
   {
diff --git a/libgomp/testsuite/libgomp.c++/target-flex-100.C b/libgomp/testsuite/libgomp.c++/target-flex-100.C
index 38b0381cb12d..7ab047ffb490 100644
--- a/libgomp/testsuite/libgomp.c++/target-flex-100.C
+++ b/libgomp/testsuite/libgomp.c++/target-flex-100.C
@@ -15,7 +15,7 @@ template<typename T, std::size_t Size>
 bool test_stack(T (&arr)[Size])
 {
   bool ok;
-  #pragma omp target map(from: ok) map(to: arr[ :Size])
+  #pragma omp target map(from: ok) map(to: arr[:Size])
     {
       bool inner_ok = true;
       const std::size_t half_size = Size / 2;
@@ -79,7 +79,7 @@ template<typename T, std::size_t Size>
 bool test_queue(T (&arr)[Size])
 {
   bool ok;
-  #pragma omp target map(from: ok) map(to: arr[ :Size])
+  #pragma omp target map(from: ok) map(to: arr[:Size])
     {
       bool inner_ok = true;
       const std::size_t half_size = Size / 2;
@@ -156,7 +156,7 @@ template<typename T, std::size_t Size>
 bool test_priority_queue(T (&arr)[Size], const T min_value, const T max_value)
 {
   bool ok;
-  #pragma omp target map(from: ok) map(to: arr[ :Size])
+  #pragma omp target map(from: ok) map(to: arr[:Size])
     {
       bool inner_ok = true;
       typedef std::priority_queue<T, std::vector<T> > priority_queue_type;
diff --git a/libgomp/testsuite/libgomp.c++/target-flex-101.C b/libgomp/testsuite/libgomp.c++/target-flex-101.C
index 9eaa8a9933a9..28201f468b61 100644
--- a/libgomp/testsuite/libgomp.c++/target-flex-101.C
+++ b/libgomp/testsuite/libgomp.c++/target-flex-101.C
@@ -31,7 +31,7 @@ template<typename K, typename V, typename std::size_t Size>
 bool test_flat_map(std::pair<K, V> (&arr)[Size])
 {
   bool ok;
-  #pragma omp target map(from: ok) map(to: arr[ :Size])
+  #pragma omp target map(from: ok) map(to: arr[:Size])
     {
       bool inner_ok = true;
       {
@@ -52,7 +52,7 @@ template<typename K, typename V, typename std::size_t Size>
 bool test_flat_multimap(std::pair<K, V> (&arr)[Size])
 {
   bool ok;
-  #pragma omp target map(from: ok) map(to: arr[ :Size])
+  #pragma omp target map(from: ok) map(to: arr[:Size])
     {
       bool inner_ok = true;
       {
@@ -81,7 +81,7 @@ template<typename T, typename std::size_t Size>
 bool test_flat_set(T (&arr)[Size])
 {
   bool ok;
-  #pragma omp target map(from: ok) map(to: arr[ :Size])
+  #pragma omp target map(from: ok) map(to: arr[:Size])
     {
       bool inner_ok = true;
       {
@@ -102,7 +102,7 @@ template<typename T, typename std::size_t Size>
 bool test_flat_multiset(T (&arr)[Size])
 {
   bool ok;
-  #pragma omp target map(from: ok) map(to: arr[ :Size])
+  #pragma omp target map(from: ok) map(to: arr[:Size])
     {
       bool inner_ok = true;
       {
diff --git a/libgomp/testsuite/libgomp.c++/target-flex-12.C b/libgomp/testsuite/libgomp.c++/target-flex-12.C
index d4534c7f486b..024fb731fd80 100644
--- a/libgomp/testsuite/libgomp.c++/target-flex-12.C
+++ b/libgomp/testsuite/libgomp.c++/target-flex-12.C
@@ -89,8 +89,8 @@ bool vector_test(const T (&arr)[Size])
   bool ok;
   T out_arr[Size];
   T out_mut_arr[Size];
-  #pragma omp target map(from: ok, out_arr[ :Size], out_mut_arr[ :Size]) \
-		     map(to: arr[ :Size])
+  #pragma omp target map(from: ok, out_arr[:Size], out_mut_arr[:Size]) \
+		     map(to: arr[:Size])
     {
       bool inner_ok = true;
       {
@@ -121,8 +121,8 @@ bool deque_test(const T (&arr)[Size])
   bool ok;
   T out_arr[Size];
   T out_mut_arr[Size];
-  #pragma omp target map(from: ok, out_arr[ :Size], out_mut_arr[ :Size]) \
-		     map(to: arr[ :Size])
+  #pragma omp target map(from: ok, out_arr[:Size], out_mut_arr[:Size]) \
+		     map(to: arr[:Size])
     {
       bool inner_ok = true;
       {
@@ -153,8 +153,8 @@ bool list_test(const T (&arr)[Size])
   bool ok;
   T out_arr[Size];
   T out_mut_arr[Size];
-  #pragma omp target map(from: ok, out_arr[ :Size], out_mut_arr[ :Size]) \
-		     map(to: arr[ :Size])
+  #pragma omp target map(from: ok, out_arr[:Size], out_mut_arr[:Size]) \
+		     map(to: arr[:Size])
     {
       bool inner_ok = true;
       {
@@ -254,9 +254,9 @@ bool map_test(const std::pair<K, V> (&arr)[Size])
   std::size_t out_size;
   std::pair<K, V> out_pairs_mut[Size];
   std::size_t out_size_mut;
-  #pragma omp target map(from: ok, out_pairs[ :Size], out_size, \
-			       out_pairs_mut[ :Size], out_size_mut) \
-		     map(to: arr[ :Size])
+  #pragma omp target map(from: ok, out_pairs[:Size], out_size, \
+			       out_pairs_mut[:Size], out_size_mut) \
+		     map(to: arr[:Size])
     {
       bool inner_ok = true;
       {
@@ -296,8 +296,8 @@ bool set_test(const T (&arr)[Size])
   /* Both sizes should be the same.  */
   T out_arr[Size];
   std::size_t out_size;
-  #pragma omp target map(from: ok, out_arr[ :Size], out_size) \
-		     map(to: arr[ :Size])
+  #pragma omp target map(from: ok, out_arr[:Size], out_size) \
+		     map(to: arr[:Size])
     {
       bool inner_ok = true;
       {
@@ -382,8 +382,8 @@ bool multimap_test(const std::pair<K, V> (&arr)[Size])
   bool ok;
   std::pair<K, V> out_pairs[Size];
   std::pair<K, V> out_pairs_mut[Size];
-  #pragma omp target map(from: ok, out_pairs[ :Size], out_pairs_mut[ :Size]) \
-		     map(to: arr[ :Size])
+  #pragma omp target map(from: ok, out_pairs[:Size], out_pairs_mut[:Size]) \
+		     map(to: arr[:Size])
     {
       bool inner_ok = true;
       {
@@ -413,8 +413,8 @@ bool multiset_test(const T (&arr)[Size])
   std::multiset<T> reference_multiset(arr, arr + Size);
   bool ok;
   T out_arr[Size];
-  #pragma omp target map(from: ok, out_arr[ :Size]) \
-		     map(to: arr[ :Size])
+  #pragma omp target map(from: ok, out_arr[:Size]) \
+		     map(to: arr[:Size])
     {
       bool inner_ok = true;
       {
@@ -442,8 +442,8 @@ bool array_test(const T (&arr)[Size])
   bool ok;
   T out_arr[Size];
   T out_mut_arr[Size];
-  #pragma omp target map(from: ok, out_arr[ :Size], out_mut_arr[ :Size]) \
-		     map(to: arr[ :Size])
+  #pragma omp target map(from: ok, out_arr[:Size], out_mut_arr[:Size]) \
+		     map(to: arr[:Size])
     {
       bool inner_ok = true;
       {
@@ -482,8 +482,8 @@ bool forward_list_test(const T (&arr)[Size])
   bool ok;
   T out_arr[Size];
   T out_mut_arr[Size];
-  #pragma omp target map(from: ok, out_arr[ :Size], out_mut_arr[ :Size]) \
-		     map(to: arr[ :Size])
+  #pragma omp target map(from: ok, out_arr[:Size], out_mut_arr[:Size]) \
+		     map(to: arr[:Size])
     {
       bool inner_ok = true;
       {
@@ -518,9 +518,9 @@ bool unordered_map_test(const std::pair<K, V> (&arr)[Size])
   std::size_t out_size;
   std::pair<K, V> out_pairs_mut[Size];
   std::size_t out_size_mut;
-  #pragma omp target map(from: ok, out_pairs[ :Size], out_size, \
-			       out_pairs_mut[ :Size], out_size_mut) \
-		     map(to: arr[ :Size])
+  #pragma omp target map(from: ok, out_pairs[:Size], out_size, \
+			       out_pairs_mut[:Size], out_size_mut) \
+		     map(to: arr[:Size])
     {
       bool inner_ok = true;
       {
@@ -560,8 +560,8 @@ bool unordered_set_test(const T (&arr)[Size])
   /* Both sizes should be the same.  */
   T out_arr[Size];
   std::size_t out_size;
-  #pragma omp target map(from: ok, out_arr[ :Size], out_size) \
-		     map(to: arr[ :Size])
+  #pragma omp target map(from: ok, out_arr[:Size], out_size) \
+		     map(to: arr[:Size])
     {
       bool inner_ok = true;
       {
@@ -593,8 +593,8 @@ bool unordered_multimap_test(const std::pair<K, V> (&arr)[Size])
   bool ok;
   std::pair<K, V> out_pairs[Size];
   std::pair<K, V> out_pairs_mut[Size];
-  #pragma omp target map(from: ok, out_pairs[ :Size], out_pairs_mut[ :Size]) \
-		     map(to: arr[ :Size])
+  #pragma omp target map(from: ok, out_pairs[:Size], out_pairs_mut[:Size]) \
+		     map(to: arr[:Size])
     {
       bool inner_ok = true;
       {
@@ -624,8 +624,8 @@ bool unordered_multiset_test(const T (&arr)[Size])
   std::unordered_multiset<T> reference_multiset(arr, arr + Size);
   bool ok;
   T out_arr[Size];
-  #pragma omp target map(from: ok, out_arr[ :Size]) \
-		     map(to: arr[ :Size])
+  #pragma omp target map(from: ok, out_arr[:Size]) \
+		     map(to: arr[:Size])
     {
       bool inner_ok = true;
       {
diff --git a/libgomp/testsuite/libgomp.c++/target-flex-2003.C b/libgomp/testsuite/libgomp.c++/target-flex-2003.C
index 9303ee54a42e..8e8ca8eabb31 100644
--- a/libgomp/testsuite/libgomp.c++/target-flex-2003.C
+++ b/libgomp/testsuite/libgomp.c++/target-flex-2003.C
@@ -101,7 +101,7 @@ bool test_memcpy(int arg, const int *nums, std::size_t nums_size)
 {
   bool ok;
   Extendable2 e2_out;
-  #pragma omp target map(from: ok, e2_out) map(to: arg, nums[ :nums_size], nums_size)
+  #pragma omp target map(from: ok, e2_out) map(to: arg, nums[:nums_size], nums_size)
     {
       bool inner_ok = true;
       {
diff --git a/libgomp/testsuite/libgomp.c++/target-flex-30.C b/libgomp/testsuite/libgomp.c++/target-flex-30.C
index 7a7eb39f3a5c..c66075b05322 100644
--- a/libgomp/testsuite/libgomp.c++/target-flex-30.C
+++ b/libgomp/testsuite/libgomp.c++/target-flex-30.C
@@ -10,7 +10,7 @@ bool test_initializer_list(int arg)
   static constexpr std::size_t out_arr_size = 7;
   int out_arr[out_arr_size];
   bool ok;
-  #pragma omp target map(from: ok, out_arr[ :out_arr_size]) map(to: arg)
+  #pragma omp target map(from: ok, out_arr[:out_arr_size]) map(to: arg)
     {
       bool inner_ok = true;
       {
diff --git a/libgomp/testsuite/libgomp.c++/target-flex-300.C b/libgomp/testsuite/libgomp.c++/target-flex-300.C
index ecfd8cb108a4..ef9e5a9b29bb 100644
--- a/libgomp/testsuite/libgomp.c++/target-flex-300.C
+++ b/libgomp/testsuite/libgomp.c++/target-flex-300.C
@@ -22,7 +22,7 @@ bool test(std::size_t arg)
   std::vector<int> vec(arg);
   int *data = vec.data();
   std::size_t size = vec.size();
-  #pragma omp target defaultmap(none) map(from: ok, midpoint_out) map(tofrom: data[ :size]) map(to: arg, size)
+  #pragma omp target defaultmap(none) map(from: ok, midpoint_out) map(tofrom: data[:size]) map(to: arg, size)
     {
       std::span span = {data, size};
       bool inner_ok = true;
diff --git a/libgomp/testsuite/libgomp.c++/target-flex-32.C b/libgomp/testsuite/libgomp.c++/target-flex-32.C
index 0ed4fbcaa12d..7f74401a6841 100644
--- a/libgomp/testsuite/libgomp.c++/target-flex-32.C
+++ b/libgomp/testsuite/libgomp.c++/target-flex-32.C
@@ -10,7 +10,7 @@ bool test_initializer_list(int arg)
   static constexpr std::size_t out_arr_size = 7;
   int out_arr[out_arr_size];
   bool ok;
-  #pragma omp target map(from: ok, out_arr[ :out_arr_size]) map(to: arg)
+  #pragma omp target map(from: ok, out_arr[:out_arr_size]) map(to: arg)
     {
       bool inner_ok = true;
       {
diff --git a/libgomp/testsuite/libgomp.c++/target-flex-33.C b/libgomp/testsuite/libgomp.c++/target-flex-33.C
index 6c16c794a1d2..bb8a39bb2658 100644
--- a/libgomp/testsuite/libgomp.c++/target-flex-33.C
+++ b/libgomp/testsuite/libgomp.c++/target-flex-33.C
@@ -12,7 +12,7 @@ bool test_initializer_list(int arg)
   static constexpr std::size_t out_arr_size = 7;
   int out_arr[out_arr_size];
   bool ok;
-  #pragma omp target map(from: ok, out_arr[ :out_arr_size]) map(to: arg)
+  #pragma omp target map(from: ok, out_arr[:out_arr_size]) map(to: arg)
     {
       bool inner_ok = true;
       {
diff --git a/libgomp/testsuite/libgomp.c++/target-flex-41.C b/libgomp/testsuite/libgomp.c++/target-flex-41.C
index 7232d920751b..4d36341f5672 100644
--- a/libgomp/testsuite/libgomp.c++/target-flex-41.C
+++ b/libgomp/testsuite/libgomp.c++/target-flex-41.C
@@ -42,9 +42,9 @@ bool test(const T (&arr)[Size])
   T out_fwd_arr[Size];
   T out_first_half_arr[Size / 2];
   #pragma omp target defaultmap(none) \
-		     map(from: ok, out_rev_arr[ :Size], out_fwd_arr[ :Size], \
-			       out_first_half_arr[ :Size / 2]) \
-		     map(to: arr[ :Size])
+		     map(from: ok, out_rev_arr[:Size], out_fwd_arr[:Size], \
+			       out_first_half_arr[:Size / 2]) \
+		     map(to: arr[:Size])
     {
       bool inner_ok = true;
       {
diff --git a/libgomp/testsuite/libgomp.c++/target-flex-60.C b/libgomp/testsuite/libgomp.c++/target-flex-60.C
index 7e1bf96c8d17..014b9f5807a6 100644
--- a/libgomp/testsuite/libgomp.c++/target-flex-60.C
+++ b/libgomp/testsuite/libgomp.c++/target-flex-60.C
@@ -11,8 +11,8 @@ bool test(const T (&arr)[Size])
   bool ok;
   T out_2x_arr[Size];
   T out_shifted_arr[Size];
-  #pragma omp target map(from: ok, out_2x_arr[ :Size], out_shifted_arr[ :Size]) \
-		     map(to: arr[ :Size])
+  #pragma omp target map(from: ok, out_2x_arr[:Size], out_shifted_arr[:Size]) \
+		     map(to: arr[:Size])
     {
       std::vector<T> vec(Size);
       std::vector<T> mutated(Size);
diff --git a/libgomp/testsuite/libgomp.c++/target-flex-61.C b/libgomp/testsuite/libgomp.c++/target-flex-61.C
index 551679f65fb0..9070c2d34b83 100644
--- a/libgomp/testsuite/libgomp.c++/target-flex-61.C
+++ b/libgomp/testsuite/libgomp.c++/target-flex-61.C
@@ -20,8 +20,8 @@ bool test(const T (&arr)[Size])
   T out_2x_arr[Size];
   T out_shifted_arr[Size];
   #pragma omp target defaultmap(none) \
-		     map(from: ok, out_2x_arr[ :Size], out_shifted_arr[ :Size]) \
-		     map(to: arr[ :Size])
+		     map(from: ok, out_2x_arr[:Size], out_shifted_arr[:Size]) \
+		     map(to: arr[:Size])
     {
       std::vector<T> vec(Size);
       std::vector<T> mutated(Size);
diff --git a/libgomp/testsuite/libgomp.c++/target-flex-62.C b/libgomp/testsuite/libgomp.c++/target-flex-62.C
index 6fb434504ffb..ef6b942059c1 100644
--- a/libgomp/testsuite/libgomp.c++/target-flex-62.C
+++ b/libgomp/testsuite/libgomp.c++/target-flex-62.C
@@ -20,7 +20,7 @@ bool f()
   const int arr_rev[8] = {7, 6, 5, 4, 3, 2, 1, 0};
 
   bool ok;
-  #pragma omp target defaultmap(none) map(from: ok) map(to: arr_fwd[ :8], arr_rev[ :8])
+  #pragma omp target defaultmap(none) map(from: ok) map(to: arr_fwd[:8], arr_rev[:8])
     {
       std::span<const int> fwd = {arr_fwd, 8};
       std::span<const int> rev = {arr_rev, 8};
diff --git a/libgomp/testsuite/libgomp.c++/target-flex-80.C b/libgomp/testsuite/libgomp.c++/target-flex-80.C
index 6e1c4d65f64a..f41a1bbed366 100644
--- a/libgomp/testsuite/libgomp.c++/target-flex-80.C
+++ b/libgomp/testsuite/libgomp.c++/target-flex-80.C
@@ -21,7 +21,7 @@ bool test(const T (&arr)[Size])
 {
   bool ok;
   T out_arr[Size];
-  #pragma omp target map(from: ok) map(to: arr[ :Size])
+  #pragma omp target map(from: ok) map(to: arr[:Size])
     {
       std::span span = {arr, Size};
       bool inner_ok = true;
diff --git a/libgomp/testsuite/libgomp.c++/target-flex-81.C b/libgomp/testsuite/libgomp.c++/target-flex-81.C
index d7ed69fdd84c..a86fefb8d793 100644
--- a/libgomp/testsuite/libgomp.c++/target-flex-81.C
+++ b/libgomp/testsuite/libgomp.c++/target-flex-81.C
@@ -34,7 +34,7 @@ bool test(Rn&& range)
   value_type *data = vec.data();
   std::size_t size = vec.size();
   bool ok;
-  #pragma omp target map(from: ok) map(tofrom: data[ :size]) map(to: size)
+  #pragma omp target map(from: ok) map(tofrom: data[:size]) map(to: size)
     {
       std::vector<value_type> orig = {data, data + size};
       std::span<value_type> span = {data, size};
diff --git a/libgomp/testsuite/libgomp.c++/target-has-device-addr-7.C b/libgomp/testsuite/libgomp.c++/target-has-device-addr-7.C
index ae5b09ad2993..2c4571be4555 100644
--- a/libgomp/testsuite/libgomp.c++/target-has-device-addr-7.C
+++ b/libgomp/testsuite/libgomp.c++/target-has-device-addr-7.C
@@ -18,8 +18,8 @@ void
 bar (T (&x)[])
 {
   x[0] = 24;
-  #pragma omp target data map(x[ :2]) use_device_addr(x)
-    #pragma omp target has_device_addr(x[ :2])
+  #pragma omp target data map(x[:2]) use_device_addr(x)
+    #pragma omp target has_device_addr(x[:2])
       x[0] = 42;
 
   if (x[0] != 42)
diff --git a/libgomp/testsuite/libgomp.c++/target-in-reduction-1.C b/libgomp/testsuite/libgomp.c++/target-in-reduction-1.C
index 28942c193ede..8392cd45377b 100644
--- a/libgomp/testsuite/libgomp.c++/target-in-reduction-1.C
+++ b/libgomp/testsuite/libgomp.c++/target-in-reduction-1.C
@@ -10,9 +10,9 @@ foo (int &x, int *&y, int n, int v)
   int (&w)[n] = wu;
   for (i = 0; i < n; i++)
     w[i] = u[i] = n + i;
-  #pragma omp taskgroup task_reduction (+: x, y[ :2], z[1:2], u, w[1:v])
+  #pragma omp taskgroup task_reduction (+: x, y[:2], z[1:2], u, w[1:v])
   {
-    #pragma omp task in_reduction (+: x, y[ :2], z[1:2], u, w[1:v])
+    #pragma omp task in_reduction (+: x, y[:2], z[1:2], u, w[1:v])
     {
       x++;
       y[0] += 2;
@@ -21,7 +21,7 @@ foo (int &x, int *&y, int n, int v)
       u[0] += 5;
       w[1] += 6;
     }
-    #pragma omp target in_reduction (+: x, y[ :2], z[1:2], u, w[1:v])
+    #pragma omp target in_reduction (+: x, y[:2], z[1:2], u, w[1:v])
     {
       x += 4;
       y[0] += 5;
@@ -30,7 +30,7 @@ foo (int &x, int *&y, int n, int v)
       u[1] += 8;
       w[2] += 7;
     }
-    #pragma omp target in_reduction (+: x, y[ :v], z[1:v], u, w[1:2])
+    #pragma omp target in_reduction (+: x, y[:v], z[1:v], u, w[1:2])
     {
       x += 9;
       y[0] += 10;
@@ -61,9 +61,9 @@ bar (int &x, int *&y, int n, int v)
   for (i = 0; i < n; i++)
     w[i] = u[i] = n + i;
   #pragma omp parallel master
-  #pragma omp taskgroup task_reduction (+: x, y[ :2], z[1:2], u, w[1:v])
+  #pragma omp taskgroup task_reduction (+: x, y[:2], z[1:2], u, w[1:v])
   {
-    #pragma omp task in_reduction (+: x, y[ :2], z[1:2], u, w[1:v])
+    #pragma omp task in_reduction (+: x, y[:2], z[1:2], u, w[1:v])
     {
       x++;
       y[0] += 2;
@@ -72,7 +72,7 @@ bar (int &x, int *&y, int n, int v)
       u[0] += 5;
       w[1] += 6;
     }
-    #pragma omp target in_reduction (+: x, y[ :2], z[1:2], u, w[1:v])
+    #pragma omp target in_reduction (+: x, y[:2], z[1:2], u, w[1:v])
     {
       x += 4;
       y[0] += 5;
@@ -81,7 +81,7 @@ bar (int &x, int *&y, int n, int v)
       u[1] += 8;
       w[2] += 7;
     }
-    #pragma omp target in_reduction (+: x, y[ :v], z[1:v], u, w[1:2])
+    #pragma omp target in_reduction (+: x, y[:v], z[1:v], u, w[1:2])
     {
       x += 9;
       y[0] += 10;
diff --git a/libgomp/testsuite/libgomp.c++/target-in-reduction-2.C b/libgomp/testsuite/libgomp.c++/target-in-reduction-2.C
index 3c1cfc3e3bc4..e4480e124ff6 100644
--- a/libgomp/testsuite/libgomp.c++/target-in-reduction-2.C
+++ b/libgomp/testsuite/libgomp.c++/target-in-reduction-2.C
@@ -20,9 +20,9 @@ foo (S &x, S *&y, int n, int v)
       w[i].c[0] = u[i].c[0] = 0;
       w[i].c[1] = u[i].c[1] = 0;
     }
-  #pragma omp taskgroup task_reduction (+: x, y[ :2], z[1:2], u, w[1:v])
+  #pragma omp taskgroup task_reduction (+: x, y[:2], z[1:2], u, w[1:v])
   {
-    #pragma omp task in_reduction (+: x, y[ :2], z[1:2], u, w[1:v])
+    #pragma omp task in_reduction (+: x, y[:2], z[1:2], u, w[1:v])
     {
       x.a++;
       x.b++;
@@ -37,7 +37,7 @@ foo (S &x, S *&y, int n, int v)
       w[1].a += 6;
       w[1].b += 16;
     }
-    #pragma omp target in_reduction (+: x, y[ :2], z[1:2], u, w[1:v])
+    #pragma omp target in_reduction (+: x, y[:2], z[1:2], u, w[1:v])
     {
       x.a += 4;
       x.b += 14;
@@ -52,7 +52,7 @@ foo (S &x, S *&y, int n, int v)
       w[2].a += 7;
       w[2].b += 17;
     }
-    #pragma omp target in_reduction (+: x, y[ :v], z[1:v], u, w[1:2])
+    #pragma omp target in_reduction (+: x, y[:v], z[1:v], u, w[1:2])
     {
       x.a += 9;
       x.b += 19;
@@ -103,9 +103,9 @@ bar (S &x, S *&y, int n, int v)
       w[i].c[1] = u[i].c[1] = 0;
     }
   #pragma omp parallel master
-  #pragma omp taskgroup task_reduction (+: x, y[ :2], z[1:2], u, w[1:v])
+  #pragma omp taskgroup task_reduction (+: x, y[:2], z[1:2], u, w[1:v])
   {
-    #pragma omp task in_reduction (+: x, y[ :2], z[1:2], u, w[1:v])
+    #pragma omp task in_reduction (+: x, y[:2], z[1:2], u, w[1:v])
     {
       x.a++;
       x.b++;
@@ -120,7 +120,7 @@ bar (S &x, S *&y, int n, int v)
       w[1].a += 6;
       w[1].b += 16;
     }
-    #pragma omp target in_reduction (+: x, y[ :2], z[1:2], u, w[1:v])
+    #pragma omp target in_reduction (+: x, y[:2], z[1:2], u, w[1:v])
     {
       x.a += 4;
       x.b += 14;
@@ -135,7 +135,7 @@ bar (S &x, S *&y, int n, int v)
       w[2].a += 7;
       w[2].b += 17;
     }
-    #pragma omp target in_reduction (+: x, y[ :v], z[1:v], u, w[1:2])
+    #pragma omp target in_reduction (+: x, y[:v], z[1:v], u, w[1:2])
     {
       x.a += 9;
       x.b += 19;
diff --git a/libgomp/testsuite/libgomp.c++/target-lambda-1.C b/libgomp/testsuite/libgomp.c++/target-lambda-1.C
index e3a71d5db57d..37cb6ad4b3ca 100644
--- a/libgomp/testsuite/libgomp.c++/target-lambda-1.C
+++ b/libgomp/testsuite/libgomp.c++/target-lambda-1.C
@@ -56,12 +56,12 @@ int main (void)
 
   int val = 1;
   int &valref = val;
-  #pragma omp target enter data map(alloc: data1[ :N], data2[ :N])
+  #pragma omp target enter data map(alloc: data1[:N], data2[:N])
 
   omp_target_loop (0, N, [=](int i) { data1[i] = val; });
   omp_target_loop (0, N, [=](int i) { data2[i] = valref + 1; });
 
-  #pragma omp target update from(data1[ :N], data2[ :N])
+  #pragma omp target update from(data1[:N], data2[:N])
 
   for (int i = 0; i < N; i++)
     {
@@ -69,7 +69,7 @@ int main (void)
       if (data2[i] != 2) abort ();
     }
 
-  #pragma omp target exit data map(delete: data1[ :N], data2[ :N])
+  #pragma omp target exit data map(delete: data1[:N], data2[:N])
 
   int b = 8;
   S s = { 4, N, data1 };
@@ -77,13 +77,13 @@ int main (void)
 
   if (f ()) abort ();
 
-  #pragma omp target enter data map(to: data1[ :N])
+  #pragma omp target enter data map(to: data1[:N])
   if (f ()) abort ();
 
-  #pragma omp target enter data map(to: data2[ :N])
+  #pragma omp target enter data map(to: data2[:N])
   if (!f () && !shared_mem) abort ();
 
-  #pragma omp target exit data map(from: data1[ :N], data2[ :N])
+  #pragma omp target exit data map(from: data1[:N], data2[:N])
 
   if (!shared_mem)
   for (int i = 0; i < N; i++)
diff --git a/libgomp/testsuite/libgomp.c++/target-lambda-3.C b/libgomp/testsuite/libgomp.c++/target-lambda-3.C
index 6531acd970dd..6be8426bd3e0 100644
--- a/libgomp/testsuite/libgomp.c++/target-lambda-3.C
+++ b/libgomp/testsuite/libgomp.c++/target-lambda-3.C
@@ -52,12 +52,12 @@ void run (int dev)
 		     && omp_target_is_present (data2, dev));
   int val = 1;
   int &valref = val;
-  #pragma omp target enter data map(alloc: data1[ :N], data2[ :N]) device(dev)
+  #pragma omp target enter data map(alloc: data1[:N], data2[:N]) device(dev)
 
   omp_target_loop (0, N, [=](int i) { data1[i] = val; }, dev);
   omp_target_loop (0, N, [=](int i) { data2[i] = valref + 1; }, dev);
 
-  #pragma omp target update from(data1[ :N], data2[ :N]) device(dev)
+  #pragma omp target update from(data1[:N], data2[:N]) device(dev)
 
   for (int i = 0; i < N; i++)
     {
@@ -65,20 +65,20 @@ void run (int dev)
       if (data2[i] != 2) abort ();
     }
 
-  #pragma omp target exit data map(delete: data1[ :N], data2[ :N]) device(dev)
+  #pragma omp target exit data map(delete: data1[:N], data2[:N]) device(dev)
 
   int b = 8;
   S s = { 4, N, data1 };
   auto f = s.merge_data_func (data2, b, dev);
   if (f () ^ shared_mem) abort ();
 
-  #pragma omp target enter data map(to: data1[ :N]) device(dev)
+  #pragma omp target enter data map(to: data1[:N]) device(dev)
   if (f () ^ shared_mem) abort ();
 
-  #pragma omp target enter data map(to: data2[ :N]) device(dev)
+  #pragma omp target enter data map(to: data2[:N]) device(dev)
   if (!f ()) abort ();
 
-  #pragma omp target exit data map(from: data1[ :N], data2[ :N]) device(dev)
+  #pragma omp target exit data map(from: data1[:N], data2[:N]) device(dev)
 
   for (int i = 0; i < N; i++)
     {
diff --git a/libgomp/testsuite/libgomp.c++/target-map-class-1.C b/libgomp/testsuite/libgomp.c++/target-map-class-1.C
index bf11a97ca379..ad4802d2766a 100644
--- a/libgomp/testsuite/libgomp.c++/target-map-class-1.C
+++ b/libgomp/testsuite/libgomp.c++/target-map-class-1.C
@@ -30,7 +30,7 @@ test_map_tofrom_class_heap ()
   int *array = new int[N];
   A *obj = new A (array, N);
 
-  #pragma omp target map(from: array[ :N]) map(tofrom: obj[ :1])
+  #pragma omp target map(from: array[:N]) map(tofrom: obj[:1])
     {
       int *tmp_h_array = obj->h_array;
       obj->h_array = array;
@@ -64,7 +64,7 @@ test_map_tofrom_class_stack ()
   int array[N];
   A obj(array, N);
 
-  #pragma omp target map(from: array[ :N]) map(tofrom: obj)
+  #pragma omp target map(from: array[:N]) map(tofrom: obj)
     {
       int *tmp_h_array = obj.h_array;
       obj.h_array = array;
diff --git a/libgomp/testsuite/libgomp.c++/target-std__array-concurrent.C b/libgomp/testsuite/libgomp.c++/target-std__array-concurrent.C
index f4a3049bc24e..68a0afbbde37 100644
--- a/libgomp/testsuite/libgomp.c++/target-std__array-concurrent.C
+++ b/libgomp/testsuite/libgomp.c++/target-std__array-concurrent.C
@@ -35,7 +35,7 @@ int main (void)
   init (data);
 
 #ifndef MEM_SHARED
-  #pragma omp target data map (to: data[ :N]) map (alloc: arr)
+  #pragma omp target data map (to: data[:N]) map (alloc: arr)
 #endif
     {
       #pragma omp target
diff --git a/libgomp/testsuite/libgomp.c++/target-std__bitset-concurrent.C b/libgomp/testsuite/libgomp.c++/target-std__bitset-concurrent.C
index 9cc98976cca8..94b2c4affd4a 100644
--- a/libgomp/testsuite/libgomp.c++/target-std__bitset-concurrent.C
+++ b/libgomp/testsuite/libgomp.c++/target-std__bitset-concurrent.C
@@ -41,7 +41,7 @@ int main (void)
   init (data);
 
 #ifndef MEM_SHARED
-  #pragma omp target data map (to: data[ :N]) map (alloc: _set)
+  #pragma omp target data map (to: data[:N]) map (alloc: _set)
 #endif
     {
       #pragma omp target
diff --git a/libgomp/testsuite/libgomp.c++/target-std__deque-concurrent.C b/libgomp/testsuite/libgomp.c++/target-std__deque-concurrent.C
index e2cf17bda616..434d9a1a547e 100644
--- a/libgomp/testsuite/libgomp.c++/target-std__deque-concurrent.C
+++ b/libgomp/testsuite/libgomp.c++/target-std__deque-concurrent.C
@@ -39,7 +39,7 @@ int main (void)
 #endif
 
 #ifndef MEM_SHARED
-  #pragma omp target data map (to: data[ :N]) map (alloc: _deque)
+  #pragma omp target data map (to: data[:N]) map (alloc: _deque)
 #endif
     {
 #ifndef MEM_SHARED
diff --git a/libgomp/testsuite/libgomp.c++/target-std__flat_map-concurrent.C b/libgomp/testsuite/libgomp.c++/target-std__flat_map-concurrent.C
index 311f9fc4ef62..c74189eeac85 100644
--- a/libgomp/testsuite/libgomp.c++/target-std__flat_map-concurrent.C
+++ b/libgomp/testsuite/libgomp.c++/target-std__flat_map-concurrent.C
@@ -40,7 +40,7 @@ int main (void)
   init (data, false);
 
 #ifndef MEM_SHARED
-  #pragma omp target enter data map (to: keys[ :N], data[ :N]) map (alloc: _map)
+  #pragma omp target enter data map (to: keys[:N], data[:N]) map (alloc: _map)
 #endif
 
   #pragma omp target
diff --git a/libgomp/testsuite/libgomp.c++/target-std__flat_multimap-concurrent.C b/libgomp/testsuite/libgomp.c++/target-std__flat_multimap-concurrent.C
index 0afbd56138f8..0c3cf3666af3 100644
--- a/libgomp/testsuite/libgomp.c++/target-std__flat_multimap-concurrent.C
+++ b/libgomp/testsuite/libgomp.c++/target-std__flat_multimap-concurrent.C
@@ -34,7 +34,7 @@ int main (void)
   init (data, RAND_MAX);
 
 #ifndef MEM_SHARED
-  #pragma omp target enter data map (to: keys[ :N], data[ :N]) map (alloc: _map)
+  #pragma omp target enter data map (to: keys[:N], data[:N]) map (alloc: _map)
 #endif
 
   #pragma omp target
diff --git a/libgomp/testsuite/libgomp.c++/target-std__flat_multiset-concurrent.C b/libgomp/testsuite/libgomp.c++/target-std__flat_multiset-concurrent.C
index a2af7f24ff0d..9d6bafbf2db8 100644
--- a/libgomp/testsuite/libgomp.c++/target-std__flat_multiset-concurrent.C
+++ b/libgomp/testsuite/libgomp.c++/target-std__flat_multiset-concurrent.C
@@ -35,7 +35,7 @@ int main (void)
   init (data);
 
 #ifndef MEM_SHARED
-  #pragma omp target data map (to: data[ :N]) map (alloc: set)
+  #pragma omp target data map (to: data[:N]) map (alloc: set)
 #endif
     {
       #pragma omp target
diff --git a/libgomp/testsuite/libgomp.c++/target-std__flat_set-concurrent.C b/libgomp/testsuite/libgomp.c++/target-std__flat_set-concurrent.C
index dce213c213c8..a6cf29d52b38 100644
--- a/libgomp/testsuite/libgomp.c++/target-std__flat_set-concurrent.C
+++ b/libgomp/testsuite/libgomp.c++/target-std__flat_set-concurrent.C
@@ -41,7 +41,7 @@ int main (void)
   init (data);
 
 #ifndef MEM_SHARED
-  #pragma omp target data map (to: data[ :N]) map (alloc: _set)
+  #pragma omp target data map (to: data[:N]) map (alloc: _set)
 #endif
     {
       #pragma omp target
diff --git a/libgomp/testsuite/libgomp.c++/target-std__forward_list-concurrent.C b/libgomp/testsuite/libgomp.c++/target-std__forward_list-concurrent.C
index 7b9c4221e0c2..8a025d7cfd69 100644
--- a/libgomp/testsuite/libgomp.c++/target-std__forward_list-concurrent.C
+++ b/libgomp/testsuite/libgomp.c++/target-std__forward_list-concurrent.C
@@ -44,7 +44,7 @@ int main (void)
 #endif
 
 #ifndef MEM_SHARED
-  #pragma omp target data map (to: data[ :N]) map (alloc: list)
+  #pragma omp target data map (to: data[:N]) map (alloc: list)
 #endif
     {
 #ifndef MEM_SHARED
diff --git a/libgomp/testsuite/libgomp.c++/target-std__list-concurrent.C b/libgomp/testsuite/libgomp.c++/target-std__list-concurrent.C
index 3cd9ab8242ed..41520074d0af 100644
--- a/libgomp/testsuite/libgomp.c++/target-std__list-concurrent.C
+++ b/libgomp/testsuite/libgomp.c++/target-std__list-concurrent.C
@@ -44,7 +44,7 @@ int main (void)
 #endif
 
 #ifndef MEM_SHARED
-  #pragma omp target data map (to: data[ :N]) map (alloc: _list)
+  #pragma omp target data map (to: data[:N]) map (alloc: _list)
 #endif
     {
 #ifndef MEM_SHARED
diff --git a/libgomp/testsuite/libgomp.c++/target-std__map-concurrent.C b/libgomp/testsuite/libgomp.c++/target-std__map-concurrent.C
index 8d1c6dac2411..0c063c2d4480 100644
--- a/libgomp/testsuite/libgomp.c++/target-std__map-concurrent.C
+++ b/libgomp/testsuite/libgomp.c++/target-std__map-concurrent.C
@@ -39,7 +39,7 @@ int main (void)
   init (data, false);
 
 #ifndef MEM_SHARED
-  #pragma omp target enter data map (to: keys[ :N], data[ :N]) map (alloc: _map)
+  #pragma omp target enter data map (to: keys[:N], data[:N]) map (alloc: _map)
 #endif
 
   #pragma omp target
diff --git a/libgomp/testsuite/libgomp.c++/target-std__multimap-concurrent.C b/libgomp/testsuite/libgomp.c++/target-std__multimap-concurrent.C
index 81932a0c1e43..ac882a398462 100644
--- a/libgomp/testsuite/libgomp.c++/target-std__multimap-concurrent.C
+++ b/libgomp/testsuite/libgomp.c++/target-std__multimap-concurrent.C
@@ -34,7 +34,7 @@ int main (void)
   init (data, RAND_MAX);
 
 #ifndef MEM_SHARED
-  #pragma omp target enter data map (to: keys[ :N], data[ :N]) map (alloc: _map)
+  #pragma omp target enter data map (to: keys[:N], data[:N]) map (alloc: _map)
 #endif
 
   #pragma omp target
diff --git a/libgomp/testsuite/libgomp.c++/target-std__multiset-concurrent.C b/libgomp/testsuite/libgomp.c++/target-std__multiset-concurrent.C
index 7b5841609be4..b69c63dcf456 100644
--- a/libgomp/testsuite/libgomp.c++/target-std__multiset-concurrent.C
+++ b/libgomp/testsuite/libgomp.c++/target-std__multiset-concurrent.C
@@ -35,7 +35,7 @@ int main (void)
   init (data);
 
 #ifndef MEM_SHARED
-  #pragma omp target data map (to: data[ :N]) map (alloc: set)
+  #pragma omp target data map (to: data[:N]) map (alloc: set)
 #endif
     {
       #pragma omp target
diff --git a/libgomp/testsuite/libgomp.c++/target-std__set-concurrent.C b/libgomp/testsuite/libgomp.c++/target-std__set-concurrent.C
index 1730f57c607d..99b3945e8cb8 100644
--- a/libgomp/testsuite/libgomp.c++/target-std__set-concurrent.C
+++ b/libgomp/testsuite/libgomp.c++/target-std__set-concurrent.C
@@ -40,7 +40,7 @@ int main (void)
   init (data);
 
 #ifndef MEM_SHARED
-  #pragma omp target data map (to: data[ :N]) map (alloc: _set)
+  #pragma omp target data map (to: data[:N]) map (alloc: _set)
 #endif
     {
       #pragma omp target
diff --git a/libgomp/testsuite/libgomp.c++/target-std__span-concurrent.C b/libgomp/testsuite/libgomp.c++/target-std__span-concurrent.C
index 6b1b20fb3978..d70253a1c719 100644
--- a/libgomp/testsuite/libgomp.c++/target-std__span-concurrent.C
+++ b/libgomp/testsuite/libgomp.c++/target-std__span-concurrent.C
@@ -35,7 +35,7 @@ int main (void)
   init (data);
 
 #ifndef MEM_SHARED
-  #pragma omp target enter data map (to: data[ :N]) map (alloc: elements, span)
+  #pragma omp target enter data map (to: data[:N]) map (alloc: elements, span)
 #endif
 
   #pragma omp target
diff --git a/libgomp/testsuite/libgomp.c++/target-std__unordered_map-concurrent.C b/libgomp/testsuite/libgomp.c++/target-std__unordered_map-concurrent.C
index 2643f2662ca3..328c707b1463 100644
--- a/libgomp/testsuite/libgomp.c++/target-std__unordered_map-concurrent.C
+++ b/libgomp/testsuite/libgomp.c++/target-std__unordered_map-concurrent.C
@@ -39,7 +39,7 @@ int main (void)
   init (data, false);
 
 #ifndef MEM_SHARED
-  #pragma omp target enter data map (to: keys[ :N], data[ :N]) map (alloc: _map)
+  #pragma omp target enter data map (to: keys[:N], data[:N]) map (alloc: _map)
 #endif
 
   #pragma omp target
diff --git a/libgomp/testsuite/libgomp.c++/target-std__unordered_multimap-concurrent.C b/libgomp/testsuite/libgomp.c++/target-std__unordered_multimap-concurrent.C
index 4edce7e7d881..aa1b9f0fc5e8 100644
--- a/libgomp/testsuite/libgomp.c++/target-std__unordered_multimap-concurrent.C
+++ b/libgomp/testsuite/libgomp.c++/target-std__unordered_multimap-concurrent.C
@@ -33,7 +33,7 @@ int main (void)
   init (data, RAND_MAX);
 
 #ifndef MEM_SHARED
-  #pragma omp target enter data map (to: keys[ :N], data[ :N]) map (alloc: _map)
+  #pragma omp target enter data map (to: keys[:N], data[:N]) map (alloc: _map)
 #endif
 
   #pragma omp target
diff --git a/libgomp/testsuite/libgomp.c++/target-std__unordered_multiset-concurrent.C b/libgomp/testsuite/libgomp.c++/target-std__unordered_multiset-concurrent.C
index e461408fdbcd..ffaf724a994a 100644
--- a/libgomp/testsuite/libgomp.c++/target-std__unordered_multiset-concurrent.C
+++ b/libgomp/testsuite/libgomp.c++/target-std__unordered_multiset-concurrent.C
@@ -34,7 +34,7 @@ int main (void)
   init (data);
 
 #ifndef MEM_SHARED
-  #pragma omp target data map (to: data[ :N]) map (alloc: set)
+  #pragma omp target data map (to: data[:N]) map (alloc: set)
 #endif
     {
       #pragma omp target
diff --git a/libgomp/testsuite/libgomp.c++/target-std__unordered_set-concurrent.C b/libgomp/testsuite/libgomp.c++/target-std__unordered_set-concurrent.C
index b672b9638412..7a03067dc966 100644
--- a/libgomp/testsuite/libgomp.c++/target-std__unordered_set-concurrent.C
+++ b/libgomp/testsuite/libgomp.c++/target-std__unordered_set-concurrent.C
@@ -40,7 +40,7 @@ int main (void)
   init (data);
 
 #ifndef MEM_SHARED
-  #pragma omp target data map (to: data[ :N]) map (alloc: _set)
+  #pragma omp target data map (to: data[:N]) map (alloc: _set)
 #endif
     {
       #pragma omp target
diff --git a/libgomp/testsuite/libgomp.c++/target-std__valarray-1.C b/libgomp/testsuite/libgomp.c++/target-std__valarray-1.C
index f15ba7ec005b..f27a7fba8426 100644
--- a/libgomp/testsuite/libgomp.c++/target-std__valarray-1.C
+++ b/libgomp/testsuite/libgomp.c++/target-std__valarray-1.C
@@ -56,9 +56,9 @@ int main()
   size_t shiftData_i_size = shiftData_i.size();
 #pragma omp target \
   defaultmap(none) \
-  map(to: v1_i_data[ :v1_i_size], v1_i_size, \
-          v2_i_data[ :v2_i_size], v2_i_size, \
-          shiftData_i_data[ :shiftData_i_size], shiftData_i_size)
+  map(to: v1_i_data[:v1_i_size], v1_i_size, \
+          v2_i_data[:v2_i_size], v2_i_size, \
+          shiftData_i_data[:shiftData_i_size], shiftData_i_size)
   {
     /* Manually set up a buffer we can stream into, similar to 'cout << [...]', and print it at the end of region.  */
     std::stringbuf out_b;
diff --git a/libgomp/testsuite/libgomp.c++/target-std__valarray-concurrent.C b/libgomp/testsuite/libgomp.c++/target-std__valarray-concurrent.C
index 64fdcceb7b7d..243c932c458e 100644
--- a/libgomp/testsuite/libgomp.c++/target-std__valarray-concurrent.C
+++ b/libgomp/testsuite/libgomp.c++/target-std__valarray-concurrent.C
@@ -38,7 +38,7 @@ int main (void)
 #endif
 
 #ifndef MEM_SHARED
-  #pragma omp target data map (to: data[ :N]) map (alloc: arr)
+  #pragma omp target data map (to: data[:N]) map (alloc: arr)
 #endif
     {
       #pragma omp target
diff --git a/libgomp/testsuite/libgomp.c++/target-std__vector-concurrent.C b/libgomp/testsuite/libgomp.c++/target-std__vector-concurrent.C
index cb1e97df6b90..7dcf77b99d13 100644
--- a/libgomp/testsuite/libgomp.c++/target-std__vector-concurrent.C
+++ b/libgomp/testsuite/libgomp.c++/target-std__vector-concurrent.C
@@ -38,7 +38,7 @@ int main (void)
 #endif
 
 #ifndef MEM_SHARED
-  #pragma omp target data map (to: data[ :N]) map (alloc: vec)
+  #pragma omp target data map (to: data[:N]) map (alloc: vec)
 #endif
     {
 #ifndef MEM_SHARED
diff --git a/libgomp/testsuite/libgomp.c++/target-this-3.C b/libgomp/testsuite/libgomp.c++/target-this-3.C
index 65b4cdc96cee..986582430e24 100644
--- a/libgomp/testsuite/libgomp.c++/target-this-3.C
+++ b/libgomp/testsuite/libgomp.c++/target-this-3.C
@@ -74,7 +74,7 @@ int main (void)
     if (ptr2[i] != 0)
       abort ();
 
-  #pragma omp target data map(ptr1[ :N])
+  #pragma omp target data map(ptr1[:N])
   mapped = s.set_ptr (val);
 
   if (!mapped)
@@ -87,7 +87,7 @@ int main (void)
     if (ptr1[i] != val)
       abort ();
 
-  #pragma omp target data map(ptr2[ :N])
+  #pragma omp target data map(ptr2[:N])
   mapped = s.set_refptr (val);
 
   if (!mapped)
diff --git a/libgomp/testsuite/libgomp.c++/target-this-4.C b/libgomp/testsuite/libgomp.c++/target-this-4.C
index 8f164448a0f3..b2a593d03afa 100644
--- a/libgomp/testsuite/libgomp.c++/target-this-4.C
+++ b/libgomp/testsuite/libgomp.c++/target-this-4.C
@@ -83,7 +83,7 @@ int main (void)
     if (ptr2[i] != 0)
       abort ();
 
-  #pragma omp target data map(ptr1[ :N], ptr2[ :N])
+  #pragma omp target data map(ptr1[:N], ptr2[:N])
   {
     if (!p1 ())
       abort ();
diff --git a/libgomp/testsuite/libgomp.c++/target-virtual-1.C b/libgomp/testsuite/libgomp.c++/target-virtual-1.C
index 7b09f8fdc61f..a6ac30e7cf0a 100644
--- a/libgomp/testsuite/libgomp.c++/target-virtual-1.C
+++ b/libgomp/testsuite/libgomp.c++/target-virtual-1.C
@@ -15,7 +15,7 @@ struct derived : public base {
     void do_work ()
     {
       int error = 0;
-      #pragma omp target map (tofrom: this[ :1], error)
+      #pragma omp target map (tofrom: this[:1], error)
       {
 	if (scalar != 42 || this->array[0] != 123 || array[4] != 555)
 	  error = 1;
diff --git a/libgomp/testsuite/libgomp.c++/task-reduction-11.C b/libgomp/testsuite/libgomp.c++/task-reduction-11.C
index faa199afd2de..542bdd64da1c 100644
--- a/libgomp/testsuite/libgomp.c++/task-reduction-11.C
+++ b/libgomp/testsuite/libgomp.c++/task-reduction-11.C
@@ -25,10 +25,10 @@ foo (T &n, T *&c, long long int *&d, T (&m)[3], T *&r, T (&o)[4], T *&p, T (&q)[
 {
   T i;
   for (i = 0; i < 2; i++)
-    #pragma omp task in_reduction (+: a, c[ :2]) in_reduction (*: b[2 * n:3 * n], d[0:2]) \
-		     in_reduction (+: o[n:n*2], m[1], k[1:2][ : ], p[0], f[2:2]) \
-		     in_reduction (+: q[1:2][ : ], g[n:n*2], e[1], h[0], r[2:2]) \
-		     in_reduction (*: s[1:2], t[2:2][ : ])
+    #pragma omp task in_reduction (+: a, c[:2]) in_reduction (*: b[2 * n:3 * n], d[0:2]) \
+		     in_reduction (+: o[n:n*2], m[1], k[1:2][:], p[0], f[2:2]) \
+		     in_reduction (+: q[1:2][:], g[n:n*2], e[1], h[0], r[2:2]) \
+		     in_reduction (*: s[1:2], t[2:2][:])
     {
       a[0] += 7;
       a[1] += 17;
@@ -84,15 +84,15 @@ test (T &n)
     T (&o)[4] = os;
     #pragma omp parallel reduction (task,+: a, c) reduction (task,*: b[2 * n:3 * n], d) \
 			 reduction (task,+: e[1], f[2:2], g[n:n*2], h[0], k[1:2][0:2]) \
-			 reduction (task,+: o[n:n*2], m[1], q[1:2][ : ], p[0], r[2:2]) \
-			 reduction (task,*: t[2:2][ : ], s[1:n + 1])
+			 reduction (task,+: o[n:n*2], m[1], q[1:2][:], p[0], r[2:2]) \
+			 reduction (task,*: t[2:2][:], s[1:n + 1])
     {
       #pragma omp for
       for (int i = 0; i < 4; i++)
 	#pragma omp task in_reduction (+: a, c) in_reduction (*: b[2 * n:3 * n], d) \
-			 in_reduction (+: o[n:n*2], q[1:2][ : ], p[0], m[1], r[2:2]) \
-			 in_reduction (+: g[n:n * 2], e[1], k[1:2][ : ], h[0], f[2:2]) \
-			 in_reduction (*: s[1:2], t[2:2][ : ])
+			 in_reduction (+: o[n:n*2], q[1:2][:], p[0], m[1], r[2:2]) \
+			 in_reduction (+: g[n:n * 2], e[1], k[1:2][:], h[0], f[2:2]) \
+			 in_reduction (*: s[1:2], t[2:2][:])
 	{
 	  T j;
 	  a[0] += 2;
@@ -110,11 +110,11 @@ test (T &n)
 	  t[2][1] *= 2;
 	  t[3][1] *= 2;
 	  for (j = 0; j < 2; j++)
-	    #pragma omp task in_reduction (+: a, c[ :2]) \
+	    #pragma omp task in_reduction (+: a, c[:2]) \
 			     in_reduction (*: b[2 * n:3 * n], d[n - 1:n + 1]) \
-			     in_reduction (+: e[1], f[2:2], g[n:n*2], h[0], k[1:2][ :2]) \
-			     in_reduction (+: m[1], r[2:2], o[n:n*2], p[0], q[1:2][ :2]) \
-			     in_reduction (*: s[n:2], t[2:2][ : ])
+			     in_reduction (+: e[1], f[2:2], g[n:n*2], h[0], k[1:2][:2]) \
+			     in_reduction (+: m[1], r[2:2], o[n:n*2], p[0], q[1:2][:2]) \
+			     in_reduction (*: s[n:2], t[2:2][:])
 	    {
 	      m[1] += 6;
 	      r[2] += 7;
diff --git a/libgomp/testsuite/libgomp.c++/task-reduction-12.C b/libgomp/testsuite/libgomp.c++/task-reduction-12.C
index 8b1f31e03300..02c1a787cbf4 100644
--- a/libgomp/testsuite/libgomp.c++/task-reduction-12.C
+++ b/libgomp/testsuite/libgomp.c++/task-reduction-12.C
@@ -62,10 +62,10 @@ foo (int n, S *c, S *d, S m[3], S *r, S o[4], S *p, S q[4][2])
 {
   int i;
   for (i = 0; i < 2; i++)
-    #pragma omp task in_reduction (+: a, c[ :2]) in_reduction (*: b[2 * n:3 * n], d[0:2]) \
-		     in_reduction (+: o[n:n*2], m[1], k[1:2][ : ], p[0], f[2:2]) \
-		     in_reduction (+: q[1:2][ : ], g[n:n*2], e[1], h[0], r[2:2]) \
-		     in_reduction (*: s[1:2], t[2:2][ : ])
+    #pragma omp task in_reduction (+: a, c[:2]) in_reduction (*: b[2 * n:3 * n], d[0:2]) \
+		     in_reduction (+: o[n:n*2], m[1], k[1:2][:], p[0], f[2:2]) \
+		     in_reduction (+: q[1:2][:], g[n:n*2], e[1], h[0], r[2:2]) \
+		     in_reduction (*: s[1:2], t[2:2][:])
     {
       a[0].s += 7;
       a[1].s += 17;
@@ -129,15 +129,15 @@ test (int n)
     S o[4] = { { 1, 7 }, { 0, 7 }, { 0, 7 }, { 2, 7 } };
     #pragma omp parallel reduction (task, +: a, c) reduction (task, *: b[2 * n:3 * n], d) \
 			 reduction (task, +: e[1], f[2:2], g[n:n*2], h[0], k[1:2][0:2]) \
-			 reduction (task, +: o[n:n*2], m[1], q[1:2][ : ], p[0], r[2:2]) \
-			 reduction (task, *: t[2:2][ : ], s[1:n + 1])
+			 reduction (task, +: o[n:n*2], m[1], q[1:2][:], p[0], r[2:2]) \
+			 reduction (task, *: t[2:2][:], s[1:n + 1])
     {
       #pragma omp for
       for (int i = 0; i < 4; i++)
 	#pragma omp task in_reduction (+: a, c) in_reduction (*: b[2 * n:3 * n], d) \
-			 in_reduction (+: o[n:n*2], q[1:2][ : ], p[0], m[1], r[2:2]) \
-			 in_reduction (+: g[n:n * 2], e[1], k[1:2][ : ], h[0], f[2:2]) \
-			 in_reduction (*: s[1:2], t[2:2][ : ])
+			 in_reduction (+: o[n:n*2], q[1:2][:], p[0], m[1], r[2:2]) \
+			 in_reduction (+: g[n:n * 2], e[1], k[1:2][:], h[0], f[2:2]) \
+			 in_reduction (*: s[1:2], t[2:2][:])
 	{
 	  int j;
 	  a[0].s += 2;
@@ -170,11 +170,11 @@ test (int n)
 	    if (b[z + 2].t != 5 && b[z + 2].t != 9)
 	      abort ();
 	  for (j = 0; j < 2; j++)
-	    #pragma omp task in_reduction (+: a, c[ :2]) \
+	    #pragma omp task in_reduction (+: a, c[:2]) \
 			     in_reduction (*: b[2 * n:3 * n], d[n - 1:n + 1]) \
-			     in_reduction (+: e[1], f[2:2], g[n:n*2], h[0], k[1:2][ :2]) \
-			     in_reduction (+: m[1], r[2:2], o[n:n*2], p[0], q[1:2][ :2]) \
-			     in_reduction (*: s[n:2], t[2:2][ : ])
+			     in_reduction (+: e[1], f[2:2], g[n:n*2], h[0], k[1:2][:2]) \
+			     in_reduction (+: m[1], r[2:2], o[n:n*2], p[0], q[1:2][:2]) \
+			     in_reduction (*: s[n:2], t[2:2][:])
 	    {
 	      m[1].s += 6;
 	      r[2].s += 7;
diff --git a/libgomp/testsuite/libgomp.c++/task-reduction-13.C b/libgomp/testsuite/libgomp.c++/task-reduction-13.C
index 596bcea4313d..3d0165dfa92f 100644
--- a/libgomp/testsuite/libgomp.c++/task-reduction-13.C
+++ b/libgomp/testsuite/libgomp.c++/task-reduction-13.C
@@ -71,10 +71,10 @@ foo (T &n, S *&c, S *&d, S (&m)[3], S *&r, S (&o)[4], S *&p, S (&q)[4][2])
 {
   T i;
   for (i = 0; i < 2; i++)
-    #pragma omp task in_reduction (+: a, c[ :2]) in_reduction (*: b[2 * n:3 * n], d[0:2]) \
-		     in_reduction (+: o[n:n*2], m[1], k[1:2][ : ], p[0], f[2:2]) \
-		     in_reduction (+: q[1:2][ : ], g[n:n*2], e[1], h[0], r[2:2]) \
-		     in_reduction (*: s[1:2], t[2:2][ : ])
+    #pragma omp task in_reduction (+: a, c[:2]) in_reduction (*: b[2 * n:3 * n], d[0:2]) \
+		     in_reduction (+: o[n:n*2], m[1], k[1:2][:], p[0], f[2:2]) \
+		     in_reduction (+: q[1:2][:], g[n:n*2], e[1], h[0], r[2:2]) \
+		     in_reduction (*: s[1:2], t[2:2][:])
     {
       a[0].s += 7;
       a[1].s += 17;
@@ -145,15 +145,15 @@ test (T &n)
     S (&o)[4] = os;
     #pragma omp parallel reduction (task, +: a, c) reduction (task, *: b[2 * n:3 * n], d) \
 			 reduction (task, +: e[1], f[2:2], g[n:n*2], h[0], k[1:2][0:2]) \
-			 reduction (task, +: o[n:n*2], m[1], q[1:2][ : ], p[0], r[2:2]) \
-			 reduction (task, *: t[2:2][ : ], s[1:n + 1])
+			 reduction (task, +: o[n:n*2], m[1], q[1:2][:], p[0], r[2:2]) \
+			 reduction (task, *: t[2:2][:], s[1:n + 1])
     {
       #pragma omp for
       for (T i = 0; i < 4; i++)
 	#pragma omp task in_reduction (+: a, c) in_reduction (*: b[2 * n:3 * n], d) \
-			 in_reduction (+: o[n:n*2], q[1:2][ : ], p[0], m[1], r[2:2]) \
-			 in_reduction (+: g[n:n * 2], e[1], k[1:2][ : ], h[0], f[2:2]) \
-			 in_reduction (*: s[1:2], t[2:2][ : ])
+			 in_reduction (+: o[n:n*2], q[1:2][:], p[0], m[1], r[2:2]) \
+			 in_reduction (+: g[n:n * 2], e[1], k[1:2][:], h[0], f[2:2]) \
+			 in_reduction (*: s[1:2], t[2:2][:])
 	{
 	  T j;
 	  a[0].s += 2;
@@ -186,11 +186,11 @@ test (T &n)
 	    if (b[z + 2].t != 5 && b[z + 2].t != 9)
 	      abort ();
 	  for (j = 0; j < 2; j++)
-	    #pragma omp task in_reduction (+: a, c[ :2]) \
+	    #pragma omp task in_reduction (+: a, c[:2]) \
 			     in_reduction (*: b[2 * n:3 * n], d[n - 1:n + 1]) \
-			     in_reduction (+: e[1], f[2:2], g[n:n*2], h[0], k[1:2][ :2]) \
-			     in_reduction (+: m[1], r[2:2], o[n:n*2], p[0], q[1:2][ :2]) \
-			     in_reduction (*: s[n:2], t[2:2][ : ])
+			     in_reduction (+: e[1], f[2:2], g[n:n*2], h[0], k[1:2][:2]) \
+			     in_reduction (+: m[1], r[2:2], o[n:n*2], p[0], q[1:2][:2]) \
+			     in_reduction (*: s[n:2], t[2:2][:])
 	    {
 	      m[1].s += 6;
 	      r[2].s += 7;
diff --git a/libgomp/testsuite/libgomp.c++/task-reduction-17.C b/libgomp/testsuite/libgomp.c++/task-reduction-17.C
index 5a2b1e332a4b..c00c8e46542e 100644
--- a/libgomp/testsuite/libgomp.c++/task-reduction-17.C
+++ b/libgomp/testsuite/libgomp.c++/task-reduction-17.C
@@ -25,10 +25,10 @@ foo (T &n, T *&c, long long int *&d, T (&m)[3], T *&r, T (&o)[4], T *&p, T (&q)[
 {
   T i;
   for (i = 0; i < 2; i++)
-    #pragma omp task in_reduction (+: a, c[ :2]) in_reduction (*: b[2 * n:3 * n], d[0:2]) \
-		     in_reduction (+: o[n:n*2], m[1], k[1:2][ : ], p[0], f[2:2]) \
-		     in_reduction (+: q[1:2][ : ], g[n:n*2], e[1], h[0], r[2:2]) \
-		     in_reduction (*: s[1:2], t[2:2][ : ])
+    #pragma omp task in_reduction (+: a, c[:2]) in_reduction (*: b[2 * n:3 * n], d[0:2]) \
+		     in_reduction (+: o[n:n*2], m[1], k[1:2][:], p[0], f[2:2]) \
+		     in_reduction (+: q[1:2][:], g[n:n*2], e[1], h[0], r[2:2]) \
+		     in_reduction (*: s[1:2], t[2:2][:])
     {
       a[0] += 7;
       a[1] += 17;
@@ -86,13 +86,13 @@ test (T &n, I x, I y)
     {
       #pragma omp for reduction (task,+: a, c) reduction (task,*: b[2 * n:3 * n], d) \
 		      reduction (task,+: e[1], f[2:2], g[n:n*2], h[0], k[1:2][0:2]) \
-		      reduction (task,+: o[n:n*2], m[1], q[1:2][ : ], p[0], r[2:2]) \
-		      reduction (task,*: t[2:2][ : ], s[1:n + 1]) schedule (dynamic)
+		      reduction (task,+: o[n:n*2], m[1], q[1:2][:], p[0], r[2:2]) \
+		      reduction (task,*: t[2:2][:], s[1:n + 1]) schedule (dynamic)
       for (I i = x; i != y; i++)
 	#pragma omp task in_reduction (+: a, c) in_reduction (*: b[2 * n:3 * n], d) \
-			 in_reduction (+: o[n:n*2], q[1:2][ : ], p[0], m[1], r[2:2]) \
-			 in_reduction (+: g[n:n * 2], e[1], k[1:2][ : ], h[0], f[2:2]) \
-			 in_reduction (*: s[1:2], t[2:2][ : ])
+			 in_reduction (+: o[n:n*2], q[1:2][:], p[0], m[1], r[2:2]) \
+			 in_reduction (+: g[n:n * 2], e[1], k[1:2][:], h[0], f[2:2]) \
+			 in_reduction (*: s[1:2], t[2:2][:])
 	{
 	  T j;
 	  a[0] += 2;
@@ -110,11 +110,11 @@ test (T &n, I x, I y)
 	  t[2][1] *= 2;
 	  t[3][1] *= 2;
 	  for (j = 0; j < 2; j++)
-	    #pragma omp task in_reduction (+: a, c[ :2]) \
+	    #pragma omp task in_reduction (+: a, c[:2]) \
 			     in_reduction (*: b[2 * n:3 * n], d[n - 1:n + 1]) \
-			     in_reduction (+: e[1], f[2:2], g[n:n*2], h[0], k[1:2][ :2]) \
-			     in_reduction (+: m[1], r[2:2], o[n:n*2], p[0], q[1:2][ :2]) \
-			     in_reduction (*: s[n:2], t[2:2][ : ])
+			     in_reduction (+: e[1], f[2:2], g[n:n*2], h[0], k[1:2][:2]) \
+			     in_reduction (+: m[1], r[2:2], o[n:n*2], p[0], q[1:2][:2]) \
+			     in_reduction (*: s[n:2], t[2:2][:])
 	    {
 	      m[1] += 6;
 	      r[2] += 7;
diff --git a/libgomp/testsuite/libgomp.c++/task-reduction-18.C b/libgomp/testsuite/libgomp.c++/task-reduction-18.C
index 68ca151df83e..99c0e3727d43 100644
--- a/libgomp/testsuite/libgomp.c++/task-reduction-18.C
+++ b/libgomp/testsuite/libgomp.c++/task-reduction-18.C
@@ -62,10 +62,10 @@ foo (int n, S *c, S *d, S m[3], S *r, S o[4], S *p, S q[4][2])
 {
   int i;
   for (i = 0; i < 2; i++)
-    #pragma omp task in_reduction (+: a, c[ :2]) in_reduction (*: b[2 * n:3 * n], d[0:2]) \
-		     in_reduction (+: o[n:n*2], m[1], k[1:2][ : ], p[0], f[2:2]) \
-		     in_reduction (+: q[1:2][ : ], g[n:n*2], e[1], h[0], r[2:2]) \
-		     in_reduction (*: s[1:2], t[2:2][ : ])
+    #pragma omp task in_reduction (+: a, c[:2]) in_reduction (*: b[2 * n:3 * n], d[0:2]) \
+		     in_reduction (+: o[n:n*2], m[1], k[1:2][:], p[0], f[2:2]) \
+		     in_reduction (+: q[1:2][:], g[n:n*2], e[1], h[0], r[2:2]) \
+		     in_reduction (*: s[1:2], t[2:2][:])
     {
       a[0].s += 7;
       a[1].s += 17;
@@ -134,14 +134,14 @@ test (int n)
     {
       #pragma omp for reduction (task, +: a, c) reduction (task, *: b[2 * n:3 * n], d) \
 		      reduction (task, +: e[1], f[2:2], g[n:n*2], h[0], k[1:2][0:2]) \
-		      reduction (task, +: o[n:n*2], m[1], q[1:2][ : ], p[0], r[2:2]) \
-		      reduction (task, *: t[2:2][ : ], s[1:n + 1]) \
+		      reduction (task, +: o[n:n*2], m[1], q[1:2][:], p[0], r[2:2]) \
+		      reduction (task, *: t[2:2][:], s[1:n + 1]) \
 		      schedule (nonmonotonic: guided, 1)
       for (unsigned long long i = x; i < y; i += z)
 	#pragma omp task in_reduction (+: a, c) in_reduction (*: b[2 * n:3 * n], d) \
-			 in_reduction (+: o[n:n*2], q[1:2][ : ], p[0], m[1], r[2:2]) \
-			 in_reduction (+: g[n:n * 2], e[1], k[1:2][ : ], h[0], f[2:2]) \
-			 in_reduction (*: s[1:2], t[2:2][ : ])
+			 in_reduction (+: o[n:n*2], q[1:2][:], p[0], m[1], r[2:2]) \
+			 in_reduction (+: g[n:n * 2], e[1], k[1:2][:], h[0], f[2:2]) \
+			 in_reduction (*: s[1:2], t[2:2][:])
 	{
 	  int j;
 	  a[0].s += 2;
@@ -174,11 +174,11 @@ test (int n)
 	    if (b[z + 2].t != 5 && b[z + 2].t != 9)
 	      abort ();
 	  for (j = 0; j < 2; j++)
-	    #pragma omp task in_reduction (+: a, c[ :2]) \
+	    #pragma omp task in_reduction (+: a, c[:2]) \
 			     in_reduction (*: b[2 * n:3 * n], d[n - 1:n + 1]) \
-			     in_reduction (+: e[1], f[2:2], g[n:n*2], h[0], k[1:2][ :2]) \
-			     in_reduction (+: m[1], r[2:2], o[n:n*2], p[0], q[1:2][ :2]) \
-			     in_reduction (*: s[n:2], t[2:2][ : ])
+			     in_reduction (+: e[1], f[2:2], g[n:n*2], h[0], k[1:2][:2]) \
+			     in_reduction (+: m[1], r[2:2], o[n:n*2], p[0], q[1:2][:2]) \
+			     in_reduction (*: s[n:2], t[2:2][:])
 	    {
 	      m[1].s += 6;
 	      r[2].s += 7;
diff --git a/libgomp/testsuite/libgomp.c++/task-reduction-19.C b/libgomp/testsuite/libgomp.c++/task-reduction-19.C
index baed72a35129..15945c57cc24 100644
--- a/libgomp/testsuite/libgomp.c++/task-reduction-19.C
+++ b/libgomp/testsuite/libgomp.c++/task-reduction-19.C
@@ -71,10 +71,10 @@ foo (T &n, S *&c, S *&d, S (&m)[3], S *&r, S (&o)[4], S *&p, S (&q)[4][2])
 {
   T i;
   for (i = 0; i < 2; i++)
-    #pragma omp task in_reduction (+: a, c[ :2]) in_reduction (*: b[2 * n:3 * n], d[0:2]) \
-		     in_reduction (+: o[n:n*2], m[1], k[1:2][ : ], p[0], f[2:2]) \
-		     in_reduction (+: q[1:2][ : ], g[n:n*2], e[1], h[0], r[2:2]) \
-		     in_reduction (*: s[1:2], t[2:2][ : ])
+    #pragma omp task in_reduction (+: a, c[:2]) in_reduction (*: b[2 * n:3 * n], d[0:2]) \
+		     in_reduction (+: o[n:n*2], m[1], k[1:2][:], p[0], f[2:2]) \
+		     in_reduction (+: q[1:2][:], g[n:n*2], e[1], h[0], r[2:2]) \
+		     in_reduction (*: s[1:2], t[2:2][:])
     {
       a[0].s += 7;
       a[1].s += 17;
@@ -147,14 +147,14 @@ test (T &n)
     {
       #pragma omp for reduction (task, +: a, c) reduction (task, *: b[2 * n:3 * n], d) \
 		      reduction (task, +: e[1], f[2:2], g[n:n*2], h[0], k[1:2][0:2]) \
-		      reduction (task, +: o[n:n*2], m[1], q[1:2][ : ], p[0], r[2:2]) \
-		      reduction (task, *: t[2:2][ : ], s[1:n + 1]) \
+		      reduction (task, +: o[n:n*2], m[1], q[1:2][:], p[0], r[2:2]) \
+		      reduction (task, *: t[2:2][:], s[1:n + 1]) \
 		      schedule (monotonic: runtime)
       for (T i = 0; i < 4; i++)
 	#pragma omp task in_reduction (+: a, c) in_reduction (*: b[2 * n:3 * n], d) \
-			 in_reduction (+: o[n:n*2], q[1:2][ : ], p[0], m[1], r[2:2]) \
-			 in_reduction (+: g[n:n * 2], e[1], k[1:2][ : ], h[0], f[2:2]) \
-			 in_reduction (*: s[1:2], t[2:2][ : ])
+			 in_reduction (+: o[n:n*2], q[1:2][:], p[0], m[1], r[2:2]) \
+			 in_reduction (+: g[n:n * 2], e[1], k[1:2][:], h[0], f[2:2]) \
+			 in_reduction (*: s[1:2], t[2:2][:])
 	{
 	  T j;
 	  a[0].s += 2;
@@ -187,11 +187,11 @@ test (T &n)
 	    if (b[z + 2].t != 5 && b[z + 2].t != 9)
 	      abort ();
 	  for (j = 0; j < 2; j++)
-	    #pragma omp task in_reduction (+: a, c[ :2]) \
+	    #pragma omp task in_reduction (+: a, c[:2]) \
 			     in_reduction (*: b[2 * n:3 * n], d[n - 1:n + 1]) \
-			     in_reduction (+: e[1], f[2:2], g[n:n*2], h[0], k[1:2][ :2]) \
-			     in_reduction (+: m[1], r[2:2], o[n:n*2], p[0], q[1:2][ :2]) \
-			     in_reduction (*: s[n:2], t[2:2][ : ])
+			     in_reduction (+: e[1], f[2:2], g[n:n*2], h[0], k[1:2][:2]) \
+			     in_reduction (+: m[1], r[2:2], o[n:n*2], p[0], q[1:2][:2]) \
+			     in_reduction (*: s[n:2], t[2:2][:])
 	    {
 	      m[1].s += 6;
 	      r[2].s += 7;
diff --git a/libgomp/testsuite/libgomp.c++/task-reduction-4.C b/libgomp/testsuite/libgomp.c++/task-reduction-4.C
index 0edc9657ce06..1d4da79b3c12 100644
--- a/libgomp/testsuite/libgomp.c++/task-reduction-4.C
+++ b/libgomp/testsuite/libgomp.c++/task-reduction-4.C
@@ -25,10 +25,10 @@ foo (T &n, T *&c, long long int *&d, T (&m)[3], T *&r, T (&o)[4], T *&p, T (&q)[
 {
   T i;
   for (i = 0; i < 2; i++)
-    #pragma omp task in_reduction (+: a, c[ :2]) in_reduction (*: b[2 * n:3 * n], d[0:2]) \
-		     in_reduction (+: o[n:n*2], m[1], k[1:2][ : ], p[0], f[2:2]) \
-		     in_reduction (+: q[1:2][ : ], g[n:n*2], e[1], h[0], r[2:2]) \
-		     in_reduction (*: s[1:2], t[2:2][ : ])
+    #pragma omp task in_reduction (+: a, c[:2]) in_reduction (*: b[2 * n:3 * n], d[0:2]) \
+		     in_reduction (+: o[n:n*2], m[1], k[1:2][:], p[0], f[2:2]) \
+		     in_reduction (+: q[1:2][:], g[n:n*2], e[1], h[0], r[2:2]) \
+		     in_reduction (*: s[1:2], t[2:2][:])
     {
       a[0] += 7;
       a[1] += 17;
@@ -85,15 +85,15 @@ test (T &n)
     T (&o)[4] = os;
     #pragma omp taskgroup task_reduction (+: a, c) task_reduction (*: b[2 * n:3 * n], d) \
 			  task_reduction (+: e[1], f[2:2], g[n:n*2], h[0], k[1:2][0:2]) \
-			  task_reduction (+: o[n:n*2], m[1], q[1:2][ : ], p[0], r[2:2]) \
-			  task_reduction (*: t[2:2][ : ], s[1:n + 1])
+			  task_reduction (+: o[n:n*2], m[1], q[1:2][:], p[0], r[2:2]) \
+			  task_reduction (*: t[2:2][:], s[1:n + 1])
     {
       T i;
       for (i = 0; i < 4; i++)
 	#pragma omp task in_reduction (+: a, c) in_reduction (*: b[2 * n:3 * n], d) \
-			 in_reduction (+: o[n:n*2], q[1:2][ : ], p[0], m[1], r[2:2]) \
-			 in_reduction (+: g[n:n * 2], e[1], k[1:2][ : ], h[0], f[2:2]) \
-			 in_reduction (*: s[1:2], t[2:2][ : ])
+			 in_reduction (+: o[n:n*2], q[1:2][:], p[0], m[1], r[2:2]) \
+			 in_reduction (+: g[n:n * 2], e[1], k[1:2][:], h[0], f[2:2]) \
+			 in_reduction (*: s[1:2], t[2:2][:])
 	{
 	  T j;
 	  a[0] += 2;
@@ -111,11 +111,11 @@ test (T &n)
 	  t[2][1] *= 2;
 	  t[3][1] *= 2;
 	  for (j = 0; j < 2; j++)
-	    #pragma omp task in_reduction (+: a, c[ :2]) \
+	    #pragma omp task in_reduction (+: a, c[:2]) \
 			     in_reduction (*: b[2 * n:3 * n], d[n - 1:n + 1]) \
-			     in_reduction (+: e[1], f[2:2], g[n:n*2], h[0], k[1:2][ :2]) \
-			     in_reduction (+: m[1], r[2:2], o[n:n*2], p[0], q[1:2][ :2]) \
-			     in_reduction (*: s[n:2], t[2:2][ : ])
+			     in_reduction (+: e[1], f[2:2], g[n:n*2], h[0], k[1:2][:2]) \
+			     in_reduction (+: m[1], r[2:2], o[n:n*2], p[0], q[1:2][:2]) \
+			     in_reduction (*: s[n:2], t[2:2][:])
 	    {
 	      m[1] += 6;
 	      r[2] += 7;
diff --git a/libgomp/testsuite/libgomp.c++/task-reduction-5.C b/libgomp/testsuite/libgomp.c++/task-reduction-5.C
index 296bf9dcfd05..59583f15c826 100644
--- a/libgomp/testsuite/libgomp.c++/task-reduction-5.C
+++ b/libgomp/testsuite/libgomp.c++/task-reduction-5.C
@@ -61,10 +61,10 @@ foo (int n, S *c, S *d, S m[3], S *r, S o[4], S *p, S q[4][2])
 {
   int i;
   for (i = 0; i < 2; i++)
-    #pragma omp task in_reduction (+: a, c[ :2]) in_reduction (*: b[2 * n:3 * n], d[0:2]) \
-		     in_reduction (+: o[n:n*2], m[1], k[1:2][ : ], p[0], f[2:2]) \
-		     in_reduction (+: q[1:2][ : ], g[n:n*2], e[1], h[0], r[2:2]) \
-		     in_reduction (*: s[1:2], t[2:2][ : ])
+    #pragma omp task in_reduction (+: a, c[:2]) in_reduction (*: b[2 * n:3 * n], d[0:2]) \
+		     in_reduction (+: o[n:n*2], m[1], k[1:2][:], p[0], f[2:2]) \
+		     in_reduction (+: q[1:2][:], g[n:n*2], e[1], h[0], r[2:2]) \
+		     in_reduction (*: s[1:2], t[2:2][:])
     {
       a[0].s += 7;
       a[1].s += 17;
@@ -128,15 +128,15 @@ test (int n)
     S o[4] = { { 1, 7 }, { 0, 7 }, { 0, 7 }, { 2, 7 } };
     #pragma omp taskgroup task_reduction (+: a, c) task_reduction (*: b[2 * n:3 * n], d) \
 			  task_reduction (+: e[1], f[2:2], g[n:n*2], h[0], k[1:2][0:2]) \
-			  task_reduction (+: o[n:n*2], m[1], q[1:2][ : ], p[0], r[2:2]) \
-			  task_reduction (*: t[2:2][ : ], s[1:n + 1])
+			  task_reduction (+: o[n:n*2], m[1], q[1:2][:], p[0], r[2:2]) \
+			  task_reduction (*: t[2:2][:], s[1:n + 1])
     {
       int i;
       for (i = 0; i < 4; i++)
 	#pragma omp task in_reduction (+: a, c) in_reduction (*: b[2 * n:3 * n], d) \
-			 in_reduction (+: o[n:n*2], q[1:2][ : ], p[0], m[1], r[2:2]) \
-			 in_reduction (+: g[n:n * 2], e[1], k[1:2][ : ], h[0], f[2:2]) \
-			 in_reduction (*: s[1:2], t[2:2][ : ])
+			 in_reduction (+: o[n:n*2], q[1:2][:], p[0], m[1], r[2:2]) \
+			 in_reduction (+: g[n:n * 2], e[1], k[1:2][:], h[0], f[2:2]) \
+			 in_reduction (*: s[1:2], t[2:2][:])
 	{
 	  int j;
 	  a[0].s += 2;
@@ -169,11 +169,11 @@ test (int n)
 	    if (b[z + 2].t != 5 && b[z + 2].t != 9)
 	      abort ();
 	  for (j = 0; j < 2; j++)
-	    #pragma omp task in_reduction (+: a, c[ :2]) \
+	    #pragma omp task in_reduction (+: a, c[:2]) \
 			     in_reduction (*: b[2 * n:3 * n], d[n - 1:n + 1]) \
-			     in_reduction (+: e[1], f[2:2], g[n:n*2], h[0], k[1:2][ :2]) \
-			     in_reduction (+: m[1], r[2:2], o[n:n*2], p[0], q[1:2][ :2]) \
-			     in_reduction (*: s[n:2], t[2:2][ : ])
+			     in_reduction (+: e[1], f[2:2], g[n:n*2], h[0], k[1:2][:2]) \
+			     in_reduction (+: m[1], r[2:2], o[n:n*2], p[0], q[1:2][:2]) \
+			     in_reduction (*: s[n:2], t[2:2][:])
 	    {
 	      m[1].s += 6;
 	      r[2].s += 7;
diff --git a/libgomp/testsuite/libgomp.c++/task-reduction-6.C b/libgomp/testsuite/libgomp.c++/task-reduction-6.C
index a1dfc87d4534..d7f69da219b0 100644
--- a/libgomp/testsuite/libgomp.c++/task-reduction-6.C
+++ b/libgomp/testsuite/libgomp.c++/task-reduction-6.C
@@ -70,10 +70,10 @@ foo (int &n, S *&c, S *&d, S (&m)[3], S *&r, S (&o)[4], S *&p, S (&q)[4][2])
 {
   int i;
   for (i = 0; i < 2; i++)
-    #pragma omp task in_reduction (+: a, c[ :2]) in_reduction (*: b[2 * n:3 * n], d[0:2]) \
-		     in_reduction (+: o[n:n*2], m[1], k[1:2][ : ], p[0], f[2:2]) \
-		     in_reduction (+: q[1:2][ : ], g[n:n*2], e[1], h[0], r[2:2]) \
-		     in_reduction (*: s[1:2], t[2:2][ : ])
+    #pragma omp task in_reduction (+: a, c[:2]) in_reduction (*: b[2 * n:3 * n], d[0:2]) \
+		     in_reduction (+: o[n:n*2], m[1], k[1:2][:], p[0], f[2:2]) \
+		     in_reduction (+: q[1:2][:], g[n:n*2], e[1], h[0], r[2:2]) \
+		     in_reduction (*: s[1:2], t[2:2][:])
     {
       a[0].s += 7;
       a[1].s += 17;
@@ -144,15 +144,15 @@ test (int &n)
     S (&o)[4] = os;
     #pragma omp taskgroup task_reduction (+: a, c) task_reduction (*: b[2 * n:3 * n], d) \
 			  task_reduction (+: e[1], f[2:2], g[n:n*2], h[0], k[1:2][0:2]) \
-			  task_reduction (+: o[n:n*2], m[1], q[1:2][ : ], p[0], r[2:2]) \
-			  task_reduction (*: t[2:2][ : ], s[1:n + 1])
+			  task_reduction (+: o[n:n*2], m[1], q[1:2][:], p[0], r[2:2]) \
+			  task_reduction (*: t[2:2][:], s[1:n + 1])
     {
       int i;
       for (i = 0; i < 4; i++)
 	#pragma omp task in_reduction (+: a, c) in_reduction (*: b[2 * n:3 * n], d) \
-			 in_reduction (+: o[n:n*2], q[1:2][ : ], p[0], m[1], r[2:2]) \
-			 in_reduction (+: g[n:n * 2], e[1], k[1:2][ : ], h[0], f[2:2]) \
-			 in_reduction (*: s[1:2], t[2:2][ : ])
+			 in_reduction (+: o[n:n*2], q[1:2][:], p[0], m[1], r[2:2]) \
+			 in_reduction (+: g[n:n * 2], e[1], k[1:2][:], h[0], f[2:2]) \
+			 in_reduction (*: s[1:2], t[2:2][:])
 	{
 	  int j;
 	  a[0].s += 2;
@@ -185,11 +185,11 @@ test (int &n)
 	    if (b[z + 2].t != 5 && b[z + 2].t != 9)
 	      abort ();
 	  for (j = 0; j < 2; j++)
-	    #pragma omp task in_reduction (+: a, c[ :2]) \
+	    #pragma omp task in_reduction (+: a, c[:2]) \
 			     in_reduction (*: b[2 * n:3 * n], d[n - 1:n + 1]) \
-			     in_reduction (+: e[1], f[2:2], g[n:n*2], h[0], k[1:2][ :2]) \
-			     in_reduction (+: m[1], r[2:2], o[n:n*2], p[0], q[1:2][ :2]) \
-			     in_reduction (*: s[n:2], t[2:2][ : ])
+			     in_reduction (+: e[1], f[2:2], g[n:n*2], h[0], k[1:2][:2]) \
+			     in_reduction (+: m[1], r[2:2], o[n:n*2], p[0], q[1:2][:2]) \
+			     in_reduction (*: s[n:2], t[2:2][:])
 	    {
 	      m[1].s += 6;
 	      r[2].s += 7;
diff --git a/libgomp/testsuite/libgomp.c++/task-reduction-7.C b/libgomp/testsuite/libgomp.c++/task-reduction-7.C
index c3965abb4e1d..cb92084a57d6 100644
--- a/libgomp/testsuite/libgomp.c++/task-reduction-7.C
+++ b/libgomp/testsuite/libgomp.c++/task-reduction-7.C
@@ -5,7 +5,7 @@ extern "C" void abort ();
 void
 bar (int *a, int *b, int *c, int (*d)[2], int (*e)[4], int *f, int *g, size_t n)
 {
-  #pragma omp task in_reduction (*: a[ :n], b[3:n], c[n:n], d[0][ :n], e[0][1:n], f[ :n], g[1:n])
+  #pragma omp task in_reduction (*: a[:n], b[3:n], c[n:n], d[0][:n], e[0][1:n], f[:n], g[1:n])
   {
     a[0] *= 12;
     a[1] *= 13;
@@ -44,10 +44,10 @@ foo (size_t n, void *x, void *y)
       f[i] = 1;
       g[i + 1] = 1;
     }
-  #pragma omp taskgroup task_reduction (*: a, b[3:n], c[n:n], d[0][ :n], e[0][1:n], f, g[1:n])
+  #pragma omp taskgroup task_reduction (*: a, b[3:n], c[n:n], d[0][:n], e[0][1:n], f, g[1:n])
   {
     bar (a, b, c, (int (*)[2]) d, (int (*)[4]) e, &f[0], &g[0], n);
-    #pragma omp task in_reduction (*: a, b[3:n], c[n:n], d[0][ :n], e[0][1:n], f, g[1:n])
+    #pragma omp task in_reduction (*: a, b[3:n], c[n:n], d[0][:n], e[0][1:n], f, g[1:n])
     {
       a[0] *= 2;
       a[1] *= 3;
@@ -99,10 +99,10 @@ baz (size_t n, void *x, void *y)
   {
     int (&f)[n] = fb;
     int (&g)[n * 2] = gb;
-    #pragma omp taskgroup task_reduction (*: a, b[3:n], c[n:n], d[0][ :n], e[0][1:n], f, g[1:n])
+    #pragma omp taskgroup task_reduction (*: a, b[3:n], c[n:n], d[0][:n], e[0][1:n], f, g[1:n])
     {
       bar (a, b, c, (int (*)[2]) d, (int (*)[4]) e, &f[0], &g[0], n);
-      #pragma omp task in_reduction (*: a, b[3:n], c[n:n], d[0][ :n], e[0][1:n], f, g[1:n])
+      #pragma omp task in_reduction (*: a, b[3:n], c[n:n], d[0][:n], e[0][1:n], f, g[1:n])
       {
 	a[0] *= 2;
 	a[1] *= 3;
diff --git a/libgomp/testsuite/libgomp.c++/taskloop-reduction-2.C b/libgomp/testsuite/libgomp.c++/taskloop-reduction-2.C
index 698fb2368c21..f1de5dae2ea2 100644
--- a/libgomp/testsuite/libgomp.c++/taskloop-reduction-2.C
+++ b/libgomp/testsuite/libgomp.c++/taskloop-reduction-2.C
@@ -38,10 +38,10 @@ foo (int &n, int *&c, long long int *&d, int (&m)[3], int *&r, int (&o)[4], int
   int i;
   U u;
   u.u[2] = 8;
-  #pragma omp taskloop in_reduction (+: a, c[ :2]) in_reduction (*: b[2 * n:3 * n], d[0:2]) \
-		       in_reduction (+: o[n:n*2], m[1], k[1:2][ : ], p[0], f[2:2]) \
-		       in_reduction (+: q[1:2][ : ], g[n:n*2], e[1], h[0], r[2:2]) \
-		       in_reduction (*: s[1:2], t[2:2][ : ]) firstprivate (u) nogroup
+  #pragma omp taskloop in_reduction (+: a, c[:2]) in_reduction (*: b[2 * n:3 * n], d[0:2]) \
+		       in_reduction (+: o[n:n*2], m[1], k[1:2][:], p[0], f[2:2]) \
+		       in_reduction (+: q[1:2][:], g[n:n*2], e[1], h[0], r[2:2]) \
+		       in_reduction (*: s[1:2], t[2:2][:]) firstprivate (u) nogroup
   for (i = 0; i < 2; i++)
     {
       a[0] += 7;
@@ -103,8 +103,8 @@ test (int &n)
     int i;
     #pragma omp taskloop reduction (+: a, c) reduction (*: b[2 * n:3 * n], d) \
 			 reduction (+: e[1], f[2:2], g[n:n*2], h[0], k[1:2][0:2]) \
-			 reduction (+: o[n:n*2], m[1], q[1:2][ : ], p[0], r[2:2]) \
-			 reduction (*: t[2:2][ : ], s[1:n + 1]) firstprivate (u)
+			 reduction (+: o[n:n*2], m[1], q[1:2][:], p[0], r[2:2]) \
+			 reduction (*: t[2:2][:], s[1:n + 1]) firstprivate (u)
     for (i = 0; i < 4; i++)
       {
 	int j;
@@ -125,11 +125,11 @@ test (int &n)
 	if (u.u[2] != 10)
 	  abort ();
 	for (j = 0; j < 2; j++)
-	  #pragma omp task in_reduction (+: a, c[ :2]) \
+	  #pragma omp task in_reduction (+: a, c[:2]) \
 			   in_reduction (*: b[2 * n:3 * n], d[n - 1:n + 1]) \
-			   in_reduction (+: e[1], f[2:2], g[n:n*2], h[0], k[1:2][ :2]) \
-			   in_reduction (+: m[1], r[2:2], o[n:n*2], p[0], q[1:2][ :2]) \
-			   in_reduction (*: s[n:2], t[2:2][ : ]) firstprivate (u)
+			   in_reduction (+: e[1], f[2:2], g[n:n*2], h[0], k[1:2][:2]) \
+			   in_reduction (+: m[1], r[2:2], o[n:n*2], p[0], q[1:2][:2]) \
+			   in_reduction (*: s[n:2], t[2:2][:]) firstprivate (u)
 	  {
 	    m[1] += 6;
 	    r[2] += 7;
diff --git a/libgomp/testsuite/libgomp.c++/taskloop-reduction-3.C b/libgomp/testsuite/libgomp.c++/taskloop-reduction-3.C
index 04b7d1b34bc4..0588e4744f95 100644
--- a/libgomp/testsuite/libgomp.c++/taskloop-reduction-3.C
+++ b/libgomp/testsuite/libgomp.c++/taskloop-reduction-3.C
@@ -60,10 +60,10 @@ void
 foo (int n, S *c, S *d, S m[3], S *r, S o[4], S *p, S q[4][2])
 {
   int i;
-  #pragma omp taskloop in_reduction (+: a, c[ :2]) in_reduction (*: b[2 * n:3 * n], d[0:2]) \
-		       in_reduction (+: o[n:n*2], m[1], k[1:2][ : ], p[0], f[2:2]) \
-		       in_reduction (+: q[1:2][ : ], g[n:n*2], e[1], h[0], r[2:2]) \
-		       in_reduction (*: s[1:2], t[2:2][ : ]) nogroup
+  #pragma omp taskloop in_reduction (+: a, c[:2]) in_reduction (*: b[2 * n:3 * n], d[0:2]) \
+		       in_reduction (+: o[n:n*2], m[1], k[1:2][:], p[0], f[2:2]) \
+		       in_reduction (+: q[1:2][:], g[n:n*2], e[1], h[0], r[2:2]) \
+		       in_reduction (*: s[1:2], t[2:2][:]) nogroup
   for (i = 0; i < 2; i++)
     {
       a[0].s += 7;
@@ -129,8 +129,8 @@ test (int n)
     int i;
     #pragma omp taskloop reduction (+: a, c) reduction (*: b[2 * n:3 * n], d) \
 			 reduction (+: e[1], f[2:2], g[n:n*2], h[0], k[1:2][0:2]) \
-			 reduction (+: o[n:n*2], m[1], q[1:2][ : ], p[0], r[2:2]) \
-			 reduction (*: t[2:2][ : ], s[1:n + 1])
+			 reduction (+: o[n:n*2], m[1], q[1:2][:], p[0], r[2:2]) \
+			 reduction (*: t[2:2][:], s[1:n + 1])
     for (i = 0; i < 4; i++)
       {
 	int j;
@@ -163,11 +163,11 @@ test (int n)
 	for (int z = 0; z < 3; z++)
 	  if (b[z + 2].t != 5 && b[z + 2].t != 9)
 	    abort ();
-	#pragma omp taskloop in_reduction (+: a, c[ :2]) \
+	#pragma omp taskloop in_reduction (+: a, c[:2]) \
 			     in_reduction (*: b[2 * n:3 * n], d[n - 1:n + 1]) \
-			     in_reduction (+: e[1], f[2:2], g[n:n*2], h[0], k[1:2][ :2]) \
-			     in_reduction (+: m[1], r[2:2], o[n:n*2], p[0], q[1:2][ :2]) \
-			     in_reduction (*: s[n:2], t[2:2][ : ]) nogroup
+			     in_reduction (+: e[1], f[2:2], g[n:n*2], h[0], k[1:2][:2]) \
+			     in_reduction (+: m[1], r[2:2], o[n:n*2], p[0], q[1:2][:2]) \
+			     in_reduction (*: s[n:2], t[2:2][:]) nogroup
 	for (j = 0; j < 2; j++)
 	  {
 	    m[1].s += 6;
diff --git a/libgomp/testsuite/libgomp.c++/taskloop-reduction-4.C b/libgomp/testsuite/libgomp.c++/taskloop-reduction-4.C
index 4afb05cd5072..41c7040ff1a6 100644
--- a/libgomp/testsuite/libgomp.c++/taskloop-reduction-4.C
+++ b/libgomp/testsuite/libgomp.c++/taskloop-reduction-4.C
@@ -61,10 +61,10 @@ void
 foo (int n, S *c, S *d, S m[3], S *r, S o[4], S *p, S q[4][2])
 {
   int i;
-  #pragma omp taskloop in_reduction (+: a, c[ :2]) in_reduction (*: b[2 * n:3 * n], d[0:2]) \
-		       reduction (default, +: o[n:n*2], m[1], p[0]) in_reduction (+: k[1:2][ : ], f[2:2]) \
-		       reduction (+: q[1:2][ : ], r[2:2]) in_reduction (+: g[n:n*2], e[1], h[0]) \
-		       in_reduction (*: s[1:2], t[2:2][ : ])
+  #pragma omp taskloop in_reduction (+: a, c[:2]) in_reduction (*: b[2 * n:3 * n], d[0:2]) \
+		       reduction (default, +: o[n:n*2], m[1], p[0]) in_reduction (+: k[1:2][:], f[2:2]) \
+		       reduction (+: q[1:2][:], r[2:2]) in_reduction (+: g[n:n*2], e[1], h[0]) \
+		       in_reduction (*: s[1:2], t[2:2][:])
   for (i = 0; i < 2; i++)
     {
       a[0].s += 7;
@@ -131,8 +131,8 @@ test (int n)
     int i;
     #pragma omp taskloop reduction (+: a, c) reduction (default, *: b[2 * n:3 * n], d) \
 			 reduction (+: e[1], f[2:2], g[n:n*2], h[0], k[1:2][0:2]) \
-			 reduction (+: o[n:n*2], m[1], q[1:2][ : ], p[0], r[2:2]) \
-			 reduction (*: t[2:2][ : ], s[1:n + 1])
+			 reduction (+: o[n:n*2], m[1], q[1:2][:], p[0], r[2:2]) \
+			 reduction (*: t[2:2][:], s[1:n + 1])
     for (i = 0; i < 4; i++)
       {
 	int j;
@@ -165,11 +165,11 @@ test (int n)
 	for (int z = 0; z < 3; z++)
 	  if (b[z + 2].t != 5 && b[z + 2].t != 9)
 	    abort ();
-	#pragma omp taskloop in_reduction (+: a, c[ :2]) \
+	#pragma omp taskloop in_reduction (+: a, c[:2]) \
 			     in_reduction (*: b[2 * n:3 * n], d[n - 1:n + 1]) \
-			     in_reduction (+: e[1], f[2:2], g[n:n*2], h[0], k[1:2][ :2]) \
-			     in_reduction (+: m[1], r[2:2], o[n:n*2], p[0], q[1:2][ :2]) \
-			     in_reduction (*: s[n:2], t[2:2][ : ]) nogroup
+			     in_reduction (+: e[1], f[2:2], g[n:n*2], h[0], k[1:2][:2]) \
+			     in_reduction (+: m[1], r[2:2], o[n:n*2], p[0], q[1:2][:2]) \
+			     in_reduction (*: s[n:2], t[2:2][:]) nogroup
 	for (j = 0; j < 2; j++)
 	  {
 	    m[1].s += 6;
diff --git a/libgomp/testsuite/libgomp.c-c++-common/allocate-1.c b/libgomp/testsuite/libgomp.c-c++-common/allocate-1.c
index 2e6b22e8781a..d3af3b8170e4 100644
--- a/libgomp/testsuite/libgomp.c-c++-common/allocate-1.c
+++ b/libgomp/testsuite/libgomp.c-c++-common/allocate-1.c
@@ -126,7 +126,7 @@ foo (int x, int *p, int *q, int px, omp_allocator_handle_t h, int fl)
 	if ((fl & 2) && (((uintptr_t) &i5) & 63) != 0)
 	  abort ();
       }
-    #pragma omp for reduction(+:p[2:px], q[ :3], r2) allocate(h: p, q, r2)
+    #pragma omp for reduction(+:p[2:px], q[:3], r2) allocate(h: p, q, r2)
     for (i = 0; i < 32; i++)
       {
 	p[2] += i;
diff --git a/libgomp/testsuite/libgomp.c-c++-common/allocate-3.c b/libgomp/testsuite/libgomp.c-c++-common/allocate-3.c
index 373064ee3cb6..0b507448e292 100644
--- a/libgomp/testsuite/libgomp.c-c++-common/allocate-3.c
+++ b/libgomp/testsuite/libgomp.c-c++-common/allocate-3.c
@@ -148,7 +148,7 @@ foo (int x, int *p, int *q, int px, omp_allocator_handle_t h, int fl)
 	if ((((uintptr_t) &i5) & 31) != 0)
 	  abort ();
       }
-    #pragma omp for reduction(+:p[2:px], q[ :3], r2) allocate(align (16), allocator (h): p, q, r2)
+    #pragma omp for reduction(+:p[2:px], q[:3], r2) allocate(align (16), allocator (h): p, q, r2)
     for (i = 0; i < 32; i++)
       {
 	p[2] += i;
diff --git a/libgomp/testsuite/libgomp.c-c++-common/baseptrs-2.c b/libgomp/testsuite/libgomp.c-c++-common/baseptrs-2.c
index d8ee3d1ae3eb..e335d7da9669 100644
--- a/libgomp/testsuite/libgomp.c-c++-common/baseptrs-2.c
+++ b/libgomp/testsuite/libgomp.c-c++-common/baseptrs-2.c
@@ -39,7 +39,7 @@ int main (int argc, char *argv[])
 
 #pragma omp target map(to: p->b, p->b[0], p->c, p->c[0], p->b->c, p->b->c[0]) \
 		   map(to: p->b->c->ptr, p->c->ptr) \
-		   map(tofrom: p->b->c->ptr[ :N], p->c->ptr[ :N])
+		   map(tofrom: p->b->c->ptr[:N], p->c->ptr[:N])
   {
     for (int i = 0; i < N; i++)
       {
diff --git a/libgomp/testsuite/libgomp.c-c++-common/dispatch-1.c b/libgomp/testsuite/libgomp.c-c++-common/dispatch-1.c
index ab11303d35c5..0efc075a8596 100644
--- a/libgomp/testsuite/libgomp.c-c++-common/dispatch-1.c
+++ b/libgomp/testsuite/libgomp.c-c++-common/dispatch-1.c
@@ -45,7 +45,7 @@ int test (int n)
     }
 
   int f, last_dev = omp_get_num_devices () - 1;
-#pragma omp target data map(to: av[ :n]) map(from: d_bv[ :n]) device(last_dev) if (n == 1024)
+#pragma omp target data map(to: av[:n]) map(from: d_bv[:n]) device(last_dev) if (n == 1024)
   {
     #pragma omp dispatch nocontext(n > 1024) novariants(n < 1024) device(last_dev)
     f = foo (d_bv, av, n);
diff --git a/libgomp/testsuite/libgomp.c-c++-common/dispatch-2.c b/libgomp/testsuite/libgomp.c-c++-common/dispatch-2.c
index 187fc610c6d3..faa0d8a1d1c1 100644
--- a/libgomp/testsuite/libgomp.c-c++-common/dispatch-2.c
+++ b/libgomp/testsuite/libgomp.c-c++-common/dispatch-2.c
@@ -53,7 +53,7 @@ int test (int n)
     }
 
   int f, last_dev = omp_get_num_devices () - 1;
-#pragma omp target data map(to: av[ :n]) map(from: d_bv[ :n]) device(last_dev) if (n == 1024)
+#pragma omp target data map(to: av[:n]) map(from: d_bv[:n]) device(last_dev) if (n == 1024)
   {
     #pragma omp dispatch nocontext(n > 1024) novariants(n < 1024) device(last_dev)
     f = foo (d_bv, av, n);
diff --git a/libgomp/testsuite/libgomp.c-c++-common/interop-2.c b/libgomp/testsuite/libgomp.c-c++-common/interop-2.c
index ab989499a9b5..a7526dcf41ea 100644
--- a/libgomp/testsuite/libgomp.c-c++-common/interop-2.c
+++ b/libgomp/testsuite/libgomp.c-c++-common/interop-2.c
@@ -58,7 +58,7 @@ test_async (const int dev)
      As OpenMP_VV's Issue #863 shows, the overhead is high enough to
      fail even when only doing an atomic integer increment.  */
 
-  #pragma omp target device(dev) map(A) depend(out: A[ :N]) nowait
+  #pragma omp target device(dev) map(A) depend(out: A[:N]) nowait
   for (int i = 0; i < N; i++)
     #pragma omp atomic update
     A[i] += __builtin_sin (2*i*M_PI/N);
@@ -68,11 +68,11 @@ test_async (const int dev)
   if (obj1 == omp_interop_none)
     {
       // Same as below as 'nowait' is ignored.
-      #pragma omp interop destroy(obj1) depend(in: A[ :N]) nowait
+      #pragma omp interop destroy(obj1) depend(in: A[:N]) nowait
     }
   else
     {
-      #pragma omp interop destroy(obj1) depend(in: A[ :N])
+      #pragma omp interop destroy(obj1) depend(in: A[:N])
     }
 
   /* ... this code is only executed once the dependency as been fulfilled.  */
@@ -93,7 +93,7 @@ test_async (const int dev)
 
   /* Integer */
 
-  #pragma omp target device(dev) map(B) depend(out: B[ :N]) nowait
+  #pragma omp target device(dev) map(B) depend(out: B[:N]) nowait
   for (int i = 0; i < N; i++)
     #pragma omp atomic update
     B[i] += 42;
@@ -102,11 +102,11 @@ test_async (const int dev)
   if (obj2 == omp_interop_none)
     {
       // Same as below as 'nowait' is ignored.
-      #pragma omp interop use(obj2) depend(in: B[ :N]) nowait
+      #pragma omp interop use(obj2) depend(in: B[:N]) nowait
     }
   else
     {
-      #pragma omp interop use(obj2) depend(in: B[ :N])
+      #pragma omp interop use(obj2) depend(in: B[:N])
     }
 
   for (int i = 0; i < N; i++)
diff --git a/libgomp/testsuite/libgomp.c-c++-common/matrix-omp-target-teams-distribute-parallel-for-1.c b/libgomp/testsuite/libgomp.c-c++-common/matrix-omp-target-teams-distribute-parallel-for-1.c
index 587fb77d97ac..c86050e2f9ce 100644
--- a/libgomp/testsuite/libgomp.c-c++-common/matrix-omp-target-teams-distribute-parallel-for-1.c
+++ b/libgomp/testsuite/libgomp.c-c++-common/matrix-omp-target-teams-distribute-parallel-for-1.c
@@ -2,7 +2,7 @@
 /* { dg-do run { target { offload_device } } } */
 /* { dg-additional-options "-Wall -Wno-unknown-pragmas" } */
 
-#define COMMON_DIRECTIVE omp target teams distribute parallel for map(tofrom:result[ :dim0 * dim1]) map(to:matrix1[0:dim0 * dim1], matrix2[0:dim0 * dim1])
+#define COMMON_DIRECTIVE omp target teams distribute parallel for map(tofrom:result[:dim0 * dim1]) map(to:matrix1[0:dim0 * dim1], matrix2[0:dim0 * dim1])
 #define COLLAPSE_1 collapse(1)
 #define COLLAPSE_2 collapse(2)
 #define COLLAPSE_3
diff --git a/libgomp/testsuite/libgomp.c-c++-common/ptr-attach-1.c b/libgomp/testsuite/libgomp.c-c++-common/ptr-attach-1.c
index 05b712b87519..b1e2294c8e8e 100644
--- a/libgomp/testsuite/libgomp.c-c++-common/ptr-attach-1.c
+++ b/libgomp/testsuite/libgomp.c-c++-common/ptr-attach-1.c
@@ -21,7 +21,7 @@ int main (void)
   int *ptr = (int *) malloc (sizeof (int) * N);
   int *orig_ptr = ptr;
 
-  #pragma omp target map (ptr, ptr[ :N])
+  #pragma omp target map (ptr, ptr[:N])
   {
     for (int i = 0; i < N; i++)
       ptr[i] = N - i;
@@ -36,7 +36,7 @@ int main (void)
 
   S s = { 0 };
   s.ptr = ptr;
-  #pragma omp target map (s, s.ptr[ :N])
+  #pragma omp target map (s, s.ptr[:N])
   {
     for (int i = 0; i < N; i++)
       s.ptr[i] = i;
@@ -61,7 +61,7 @@ int main (void)
   for (int i = 0; i < N; i++)
     gp[i] = i - 1;
 
-  #pragma omp target map (gp[ :N])
+  #pragma omp target map (gp[:N])
   {
     for (int i = 0; i < N; i++)
       gp[i] += 1;
diff --git a/libgomp/testsuite/libgomp.c-c++-common/ptr-attach-2.c b/libgomp/testsuite/libgomp.c-c++-common/ptr-attach-2.c
index 60f938f0d37b..889a4a253ae8 100644
--- a/libgomp/testsuite/libgomp.c-c++-common/ptr-attach-2.c
+++ b/libgomp/testsuite/libgomp.c-c++-common/ptr-attach-2.c
@@ -18,10 +18,10 @@ void foo (struct L *l)
       l->m.num_blocks[i] = N;
     }
 
-  #pragma omp target enter data map(to:l[ :1])
+  #pragma omp target enter data map(to:l[:1])
   for (int i = 0; i < N; i++)
     {
-      #pragma omp target enter data map(to:l->m.blocks[i][ :l->m.num_blocks[i]])
+      #pragma omp target enter data map(to:l->m.blocks[i][:l->m.num_blocks[i]])
     }
 
   #pragma omp target
@@ -36,9 +36,9 @@ void foo (struct L *l)
 
   for (int i = 0; i < N; i++)
     {
-      #pragma omp target exit data map(from:l->m.blocks[i][ :l->m.num_blocks[i]])
+      #pragma omp target exit data map(from:l->m.blocks[i][:l->m.num_blocks[i]])
     }
-  #pragma omp target exit data map(from:l[ :1])
+  #pragma omp target exit data map(from:l[:1])
 
 
   for (int i = 0; i < N; i++)
diff --git a/libgomp/testsuite/libgomp.c-c++-common/refcount-1.c b/libgomp/testsuite/libgomp.c-c++-common/refcount-1.c
index 0dd197b27fde..5ccd908aa85e 100644
--- a/libgomp/testsuite/libgomp.c-c++-common/refcount-1.c
+++ b/libgomp/testsuite/libgomp.c-c++-common/refcount-1.c
@@ -16,7 +16,7 @@ int main (void)
   unsigned char *p = (unsigned char *) &a;
   unsigned char *q = p + 2;
 
-  #pragma omp target enter data map (alloc:p[ :1], q[ :1])
+  #pragma omp target enter data map (alloc:p[:1], q[:1])
 
   if (d != id)
     {
@@ -40,7 +40,7 @@ int main (void)
 	abort ();
     }
 
-  #pragma omp target exit data map (from:q[ :1])
+  #pragma omp target exit data map (from:q[:1])
 
   if (d != id)
     {
diff --git a/libgomp/testsuite/libgomp.c-c++-common/struct-elem-4.c b/libgomp/testsuite/libgomp.c-c++-common/struct-elem-4.c
index 935f7af723cb..9a23b4fbb811 100644
--- a/libgomp/testsuite/libgomp.c-c++-common/struct-elem-4.c
+++ b/libgomp/testsuite/libgomp.c-c++-common/struct-elem-4.c
@@ -20,7 +20,7 @@ int main (void)
 
   int *p = &s.b;
   int *q = &s.d;
-  #pragma omp target enter data map (alloc: p[ :1], q[ :1])
+  #pragma omp target enter data map (alloc: p[:1], q[:1])
 
   s.b = 88;
   s.d = 99;
@@ -36,7 +36,7 @@ int main (void)
 	abort ();
     }
 
-  #pragma omp target exit data map (from: q[ :1])
+  #pragma omp target exit data map (from: q[:1])
   if (d != id)
     {
       if (omp_target_is_present (&s, d))
diff --git a/libgomp/testsuite/libgomp.c-c++-common/target-2.c b/libgomp/testsuite/libgomp.c-c++-common/target-2.c
index 6854bb5e7b73..0ba766c0a82b 100644
--- a/libgomp/testsuite/libgomp.c-c++-common/target-2.c
+++ b/libgomp/testsuite/libgomp.c-c++-common/target-2.c
@@ -23,7 +23,7 @@ fn2 (int x)
   int i;
   fn1 (b, c, x);
   fn1 (e, d + x, x);
-  #pragma omp target map(to: b, c[ :x], d[x:x], e) map(tofrom: s)
+  #pragma omp target map(to: b, c[:x], d[x:x], e) map(tofrom: s)
     #pragma omp parallel for reduction(+:s)
       for (i = 0; i < x; i++)
 	s += b[i] * c[i] + d[x + i] + sizeof (b) - sizeof (c);
@@ -53,10 +53,10 @@ fn4 (int x)
   int i;
   fn1 (b, c, x);
   fn1 (e, d + x, x);
-  #pragma omp target data map(from: b, c[ :x], d[x:x], e)
+  #pragma omp target data map(from: b, c[:x], d[x:x], e)
     {
-      #pragma omp target update to(b, c[ :x], d[x:x], e)
-      #pragma omp target map(c[ :x], d[x:x], s)
+      #pragma omp target update to(b, c[:x], d[x:x], e)
+      #pragma omp target map(c[:x], d[x:x], s)
 	#pragma omp parallel for reduction(+:s)
 	  for (i = 0; i < x; i++)
 	    {
diff --git a/libgomp/testsuite/libgomp.c-c++-common/target-has-device-addr-1.c b/libgomp/testsuite/libgomp.c-c++-common/target-has-device-addr-1.c
index 119f0f21f0aa..fcc5c9e85534 100644
--- a/libgomp/testsuite/libgomp.c-c++-common/target-has-device-addr-1.c
+++ b/libgomp/testsuite/libgomp.c-c++-common/target-has-device-addr-1.c
@@ -26,29 +26,29 @@ main ()
     if (y[i] != i)
       __builtin_abort ();
 
-  #pragma omp target data map(y[ :N]) use_device_addr(y)
-    #pragma omp target has_device_addr(y[ :N])
+  #pragma omp target data map(y[:N]) use_device_addr(y)
+    #pragma omp target has_device_addr(y[:N])
       for (int i = 0; i < N; i++)
 	y[i] = i + 2;
   for (int i = 0; i < N; i++)
     if (y[i] != i + 2)
       __builtin_abort ();
 
-  #pragma omp target data map(y[ :N]) use_device_addr(y)
+  #pragma omp target data map(y[:N]) use_device_addr(y)
     #pragma omp target has_device_addr(y[24])
 	y[24] = 42;
   if (y[24] != 42)
     __builtin_abort ();
 
-  #pragma omp target data map(y[ :N]) use_device_addr(y)
-    #pragma omp target has_device_addr(y[24: ])
+  #pragma omp target data map(y[:N]) use_device_addr(y)
+    #pragma omp target has_device_addr(y[24:])
       for (int i = 24; i < N; i++)
 	y[i] = i + 3;
   for (int i = 24; i < N; i++)
     if (y[i] != i + 3)
       __builtin_abort ();
 
-  #pragma omp target data map(y[ :N]) use_device_addr(y)
+  #pragma omp target data map(y[:N]) use_device_addr(y)
     #pragma omp target has_device_addr(y[12:24])
       for (int i = 12; i < 24; i++)
 	y[i] = i + 4;
diff --git a/libgomp/testsuite/libgomp.c-c++-common/target-implicit-map-2.c b/libgomp/testsuite/libgomp.c-c++-common/target-implicit-map-2.c
index dd3e45b093dd..4c49cd091c38 100644
--- a/libgomp/testsuite/libgomp.c-c++-common/target-implicit-map-2.c
+++ b/libgomp/testsuite/libgomp.c-c++-common/target-implicit-map-2.c
@@ -18,29 +18,29 @@ main (void)
   for (int i = 0; i < N; i++)
     a.ptr[i] = 0;
 
-  #pragma omp target enter data map(to: a.ptr, a.ptr[ :N])
+  #pragma omp target enter data map(to: a.ptr, a.ptr[:N])
 
   #pragma omp target
   for (int i = 0; i < N; i++)
     a.ptr[i] += 1;
 
-  #pragma omp target update from(a.ptr[ :N])
+  #pragma omp target update from(a.ptr[:N])
 
   for (int i = 0; i < N; i++)
     if (a.ptr[i] != 1)
       abort ();
 
-  #pragma omp target map(a.ptr[ :N])
+  #pragma omp target map(a.ptr[:N])
   for (int i = 0; i < N; i++)
     a.ptr[i] += 1;
 
-  #pragma omp target update from(a.ptr[ :N])
+  #pragma omp target update from(a.ptr[:N])
 
   for (int i = 0; i < N; i++)
     if (a.ptr[i] != 2)
       abort ();
 
-  #pragma omp target exit data map(from:a.ptr, a.ptr[ :N])
+  #pragma omp target exit data map(from:a.ptr, a.ptr[:N])
 
   free (a.ptr);
 
diff --git a/libgomp/testsuite/libgomp.c-c++-common/target-implicit-map-5.c b/libgomp/testsuite/libgomp.c-c++-common/target-implicit-map-5.c
index 087d20be5e21..81a7752685c5 100644
--- a/libgomp/testsuite/libgomp.c-c++-common/target-implicit-map-5.c
+++ b/libgomp/testsuite/libgomp.c-c++-common/target-implicit-map-5.c
@@ -19,29 +19,29 @@ main (void)
     a.ptr[i] = 0;
 
   #pragma omp target enter data map(to: a.ptr)
-  #pragma omp target enter data map(to: a.ptr[ :N])
+  #pragma omp target enter data map(to: a.ptr[:N])
 
   #pragma omp target
   for (int i = 0; i < N; i++)
     a.ptr[i] += 1;
 
-  #pragma omp target update from(a.ptr[ :N])
+  #pragma omp target update from(a.ptr[:N])
 
   for (int i = 0; i < N; i++)
     if (a.ptr[i] != 1)
       abort ();
 
-  #pragma omp target map(a.ptr[ :N])
+  #pragma omp target map(a.ptr[:N])
   for (int i = 0; i < N; i++)
     a.ptr[i] += 1;
 
-  #pragma omp target update from(a.ptr[ :N])
+  #pragma omp target update from(a.ptr[:N])
 
   for (int i = 0; i < N; i++)
     if (a.ptr[i] != 2)
       abort ();
 
-  #pragma omp target exit data map(release: a.ptr[ :N])
+  #pragma omp target exit data map(release: a.ptr[:N])
   #pragma omp target exit data map(release: a.ptr)
 
   free (a.ptr);
diff --git a/libgomp/testsuite/libgomp.c-c++-common/target-in-reduction-1.c b/libgomp/testsuite/libgomp.c-c++-common/target-in-reduction-1.c
index 587997447ec6..b14866be5bb2 100644
--- a/libgomp/testsuite/libgomp.c-c++-common/target-in-reduction-1.c
+++ b/libgomp/testsuite/libgomp.c-c++-common/target-in-reduction-1.c
@@ -7,9 +7,9 @@ foo (int x, int *y, int n, int v)
   int u[n], w[n], i;
   for (i = 0; i < n; i++)
     w[i] = u[i] = n + i;
-  #pragma omp taskgroup task_reduction (+: x, y[ :2], z[1:2], u, w[1:v])
+  #pragma omp taskgroup task_reduction (+: x, y[:2], z[1:2], u, w[1:v])
   {
-    #pragma omp task in_reduction (+: x, y[ :2], z[1:2], u, w[1:v])
+    #pragma omp task in_reduction (+: x, y[:2], z[1:2], u, w[1:v])
     {
       x++;
       y[0] += 2;
@@ -18,7 +18,7 @@ foo (int x, int *y, int n, int v)
       u[0] += 5;
       w[1] += 6;
     }
-    #pragma omp target in_reduction (+: x, y[ :2], z[1:2], u, w[1:v])
+    #pragma omp target in_reduction (+: x, y[:2], z[1:2], u, w[1:v])
     {
       x += 4;
       y[0] += 5;
@@ -27,7 +27,7 @@ foo (int x, int *y, int n, int v)
       u[1] += 8;
       w[2] += 7;
     }
-    #pragma omp target in_reduction (+: x, y[ :v], z[1:v], u, w[1:2])
+    #pragma omp target in_reduction (+: x, y[:v], z[1:v], u, w[1:2])
     {
       x += 9;
       y[0] += 10;
@@ -55,9 +55,9 @@ bar (int x, int *y, int n, int v)
   for (i = 0; i < n; i++)
     w[i] = u[i] = n + i;
   #pragma omp parallel master
-  #pragma omp taskgroup task_reduction (+: x, y[ :2], z[1:2], u, w[1:v])
+  #pragma omp taskgroup task_reduction (+: x, y[:2], z[1:2], u, w[1:v])
   {
-    #pragma omp task in_reduction (+: x, y[ :2], z[1:2], u, w[1:v])
+    #pragma omp task in_reduction (+: x, y[:2], z[1:2], u, w[1:v])
     {
       x++;
       y[0] += 2;
@@ -66,7 +66,7 @@ bar (int x, int *y, int n, int v)
       u[0] += 5;
       w[1] += 6;
     }
-    #pragma omp target in_reduction (+: x, y[ :2], z[1:2], u, w[1:v])
+    #pragma omp target in_reduction (+: x, y[:2], z[1:2], u, w[1:v])
     {
       x += 4;
       y[0] += 5;
@@ -75,7 +75,7 @@ bar (int x, int *y, int n, int v)
       u[1] += 8;
       w[2] += 7;
     }
-    #pragma omp target in_reduction (+: x, y[ :v], z[1:v], u, w[1:2])
+    #pragma omp target in_reduction (+: x, y[:v], z[1:v], u, w[1:2])
     {
       x += 9;
       y[0] += 10;
diff --git a/libgomp/testsuite/libgomp.c-c++-common/target-in-reduction-2.c b/libgomp/testsuite/libgomp.c-c++-common/target-in-reduction-2.c
index 08c621ff1f46..c3d35d7d83fb 100644
--- a/libgomp/testsuite/libgomp.c-c++-common/target-in-reduction-2.c
+++ b/libgomp/testsuite/libgomp.c-c++-common/target-in-reduction-2.c
@@ -17,9 +17,9 @@ foo (struct S x, struct S *y, int n, int v)
       w[i].c[0] = u[i].c[0] = 0;
       w[i].c[1] = u[i].c[1] = 0;
     }
-  #pragma omp taskgroup task_reduction (+: x, y[ :2], z[1:2], u, w[1:v])
+  #pragma omp taskgroup task_reduction (+: x, y[:2], z[1:2], u, w[1:v])
   {
-    #pragma omp task in_reduction (+: x, y[ :2], z[1:2], u, w[1:v])
+    #pragma omp task in_reduction (+: x, y[:2], z[1:2], u, w[1:v])
     {
       x.a++;
       x.b++;
@@ -34,7 +34,7 @@ foo (struct S x, struct S *y, int n, int v)
       w[1].a += 6;
       w[1].b += 16;
     }
-    #pragma omp target in_reduction (+: x, y[ :2], z[1:2], u, w[1:v]) map(tofrom: x.a, x.b, x.c[ :2])
+    #pragma omp target in_reduction (+: x, y[:2], z[1:2], u, w[1:v]) map(tofrom: x.a, x.b, x.c[:2])
     {
       x.a += 4;
       x.b += 14;
@@ -49,7 +49,7 @@ foo (struct S x, struct S *y, int n, int v)
       w[2].a += 7;
       w[2].b += 17;
     }
-    #pragma omp target in_reduction (+: x, y[ :v], z[1:v], u, w[1:2])
+    #pragma omp target in_reduction (+: x, y[:v], z[1:v], u, w[1:2])
     {
       x.a += 9;
       x.b += 19;
@@ -97,9 +97,9 @@ bar (struct S x, struct S *y, int n, int v)
       w[i].c[1] = u[i].c[1] = 0;
     }
   #pragma omp parallel master
-  #pragma omp taskgroup task_reduction (+: x, y[ :2], z[1:2], u, w[1:v])
+  #pragma omp taskgroup task_reduction (+: x, y[:2], z[1:2], u, w[1:v])
   {
-    #pragma omp task in_reduction (+: x, y[ :2], z[1:2], u, w[1:v])
+    #pragma omp task in_reduction (+: x, y[:2], z[1:2], u, w[1:v])
     {
       x.a++;
       x.b++;
@@ -114,7 +114,7 @@ bar (struct S x, struct S *y, int n, int v)
       w[1].a += 6;
       w[1].b += 16;
     }
-    #pragma omp target in_reduction (+: x, y[ :2], z[1:2], u, w[1:v]) map(tofrom: x.a, x.b, x.c[ :2])
+    #pragma omp target in_reduction (+: x, y[:2], z[1:2], u, w[1:v]) map(tofrom: x.a, x.b, x.c[:2])
     {
       x.a += 4;
       x.b += 14;
@@ -129,7 +129,7 @@ bar (struct S x, struct S *y, int n, int v)
       w[2].a += 7;
       w[2].b += 17;
     }
-    #pragma omp target in_reduction (+: x, y[ :v], z[1:v], u, w[1:2])
+    #pragma omp target in_reduction (+: x, y[:v], z[1:v], u, w[1:2])
     {
       x.a += 9;
       x.b += 19;
diff --git a/libgomp/testsuite/libgomp.c-c++-common/target-map-iterators-1.c b/libgomp/testsuite/libgomp.c-c++-common/target-map-iterators-1.c
index af733991eaf5..b3d87f231df1 100644
--- a/libgomp/testsuite/libgomp.c-c++-common/target-map-iterators-1.c
+++ b/libgomp/testsuite/libgomp.c-c++-common/target-map-iterators-1.c
@@ -34,7 +34,7 @@ int main (void)
   int expected = mkarray (x);
 
   #pragma omp target enter data map(to: x)
-  #pragma omp target map(iterator(i=0:DIM1), to: x[i][ :DIM2]) \
+  #pragma omp target map(iterator(i=0:DIM1), to: x[i][:DIM2]) \
 		     map(from: y)
     {
       y = 0;
diff --git a/libgomp/testsuite/libgomp.c-c++-common/target-map-iterators-2.c b/libgomp/testsuite/libgomp.c-c++-common/target-map-iterators-2.c
index ba3954d08e34..8569b55ab5b5 100644
--- a/libgomp/testsuite/libgomp.c-c++-common/target-map-iterators-2.c
+++ b/libgomp/testsuite/libgomp.c-c++-common/target-map-iterators-2.c
@@ -23,7 +23,7 @@ int main (void)
   mkarray (x);
 
   #pragma omp target enter data map(alloc: x)
-  #pragma omp target map(iterator(i=0:DIM1), from: x[i][ :DIM2]) \
+  #pragma omp target map(iterator(i=0:DIM1), from: x[i][:DIM2]) \
 		     map(from: expected)
     {
       expected = 0;
diff --git a/libgomp/testsuite/libgomp.c-c++-common/target-map-iterators-3.c b/libgomp/testsuite/libgomp.c-c++-common/target-map-iterators-3.c
index fc05e0e1bb57..be30fa65d807 100644
--- a/libgomp/testsuite/libgomp.c-c++-common/target-map-iterators-3.c
+++ b/libgomp/testsuite/libgomp.c-c++-common/target-map-iterators-3.c
@@ -42,8 +42,8 @@ int main (void)
   int expected = mkarrays (x, y);
 
   #pragma omp target enter data map(to: x, y)
-  #pragma omp target map(iterator(i=0:DIM1/4, j=0:4), to: x[f(i, j)][ :DIM2]) \
-		     map(iterator(i=0:DIM1), to: y[i][ :1]) \
+  #pragma omp target map(iterator(i=0:DIM1/4, j=0:4), to: x[f(i, j)][:DIM2]) \
+		     map(iterator(i=0:DIM1), to: y[i][:1]) \
 		     map(from: sum)
     {
       sum = 0;
diff --git a/libgomp/testsuite/libgomp.c-c++-common/target-map-zlas-1.c b/libgomp/testsuite/libgomp.c-c++-common/target-map-zlas-1.c
index 7ee483042ca3..1ec0c9a0d5f9 100644
--- a/libgomp/testsuite/libgomp.c-c++-common/target-map-zlas-1.c
+++ b/libgomp/testsuite/libgomp.c-c++-common/target-map-zlas-1.c
@@ -18,13 +18,13 @@ main (void)
   for (int i = 0; i < N; i++)
     a.ptr[i] = 0;
 
-  #pragma omp target enter data map(to: a.ptr[ :N])
+  #pragma omp target enter data map(to: a.ptr[:N])
 
-  #pragma omp target map(a, a.ptr[ :0])
+  #pragma omp target map(a, a.ptr[:0])
   for (int i = 0; i < N; i++)
     a.ptr[i] += 1;
 
-  #pragma omp target exit data map(from: a.ptr[ :N])
+  #pragma omp target exit data map(from: a.ptr[:N])
 
   for (int i = 0; i < N; i++)
     if (a.ptr[i] != 1)
diff --git a/libgomp/testsuite/libgomp.c-c++-common/target-update-iterators-1.c b/libgomp/testsuite/libgomp.c-c++-common/target-update-iterators-1.c
index 239406d5da0e..5a4cad5c2195 100644
--- a/libgomp/testsuite/libgomp.c-c++-common/target-update-iterators-1.c
+++ b/libgomp/testsuite/libgomp.c-c++-common/target-update-iterators-1.c
@@ -30,8 +30,8 @@ int main (void)
   int sum;
   int expected = mkarray (x);
 
-  #pragma omp target enter data map(to: x[ :DIM1])
-  #pragma omp target enter data map(iterator(i=0:DIM1), to: x[i][ :DIM2])
+  #pragma omp target enter data map(to: x[:DIM1])
+  #pragma omp target enter data map(iterator(i=0:DIM1), to: x[i][:DIM2])
   #pragma omp target map(from: sum)
     {
       sum = 0;
@@ -51,7 +51,7 @@ int main (void)
 	expected += x[i][j];
       }
 
-  #pragma omp target update to(iterator(i=0:DIM1): x[i][ :DIM2])
+  #pragma omp target update to(iterator(i=0:DIM1): x[i][:DIM2])
 
   #pragma omp target map(from: sum)
     {
diff --git a/libgomp/testsuite/libgomp.c-c++-common/target-update-iterators-2.c b/libgomp/testsuite/libgomp.c-c++-common/target-update-iterators-2.c
index c8058a0ef094..f0577c71148e 100644
--- a/libgomp/testsuite/libgomp.c-c++-common/target-update-iterators-2.c
+++ b/libgomp/testsuite/libgomp.c-c++-common/target-update-iterators-2.c
@@ -26,8 +26,8 @@ int main (void)
 
   mkarray (x);
 
-  #pragma omp target enter data map(alloc: x[ :DIM1])
-  #pragma omp target enter data map(iterator(i=0:DIM1), to: x[i][ :DIM2])
+  #pragma omp target enter data map(alloc: x[:DIM1])
+  #pragma omp target enter data map(iterator(i=0:DIM1), to: x[i][:DIM2])
   #pragma omp target map(from: expected)
     {
       expected = 0;
@@ -47,7 +47,7 @@ int main (void)
   if (sum != 0)
     return 1;
 
-  #pragma omp target update from(iterator(i=0:DIM1): x[i][ :DIM2])
+  #pragma omp target update from(iterator(i=0:DIM1): x[i][:DIM2])
 
   /* Host copy should now be updated.  */
   sum = 0;
diff --git a/libgomp/testsuite/libgomp.c-c++-common/target-update-iterators-3.c b/libgomp/testsuite/libgomp.c-c++-common/target-update-iterators-3.c
index 5416e2c2de9c..e03e776d4d23 100644
--- a/libgomp/testsuite/libgomp.c-c++-common/target-update-iterators-3.c
+++ b/libgomp/testsuite/libgomp.c-c++-common/target-update-iterators-3.c
@@ -31,8 +31,8 @@ int main (void)
 
   mkarray (x);
 
-  #pragma omp target enter data map(alloc: x[ :DIM1])
-  #pragma omp target enter data map(iterator(i=0:DIM1), to: x[i][ :DIM2])
+  #pragma omp target enter data map(alloc: x[:DIM1])
+  #pragma omp target enter data map(iterator(i=0:DIM1), to: x[i][:DIM2])
 
   /* Update x on host.  */
   for (int i = 0; i < DIM1; i++)
@@ -43,7 +43,7 @@ int main (void)
       }
 
   /* Update a subset of x on target.  */
-  #pragma omp target update to(iterator(i=0:DIM1/2): x[f (i)][ :DIM2])
+  #pragma omp target update to(iterator(i=0:DIM1/2): x[f (i)][:DIM2])
 
   #pragma omp target map(from: sum)
     {
diff --git a/libgomp/testsuite/libgomp.c-c++-common/task-reduction-11.c b/libgomp/testsuite/libgomp.c-c++-common/task-reduction-11.c
index 5dce5459cd0f..038b0e269e76 100644
--- a/libgomp/testsuite/libgomp.c-c++-common/task-reduction-11.c
+++ b/libgomp/testsuite/libgomp.c-c++-common/task-reduction-11.c
@@ -9,7 +9,7 @@ unsigned long int c[2] = { ~0UL, ~0UL };
 void
 bar (int i)
 {
-  #pragma omp task in_reduction (*: b[ :3]) in_reduction (&: c[1: ]) \
+  #pragma omp task in_reduction (*: b[:3]) in_reduction (&: c[1:]) \
 	      in_reduction (+: a)
   {
     a += 4;
diff --git a/libgomp/testsuite/libgomp.c-c++-common/task-reduction-12.c b/libgomp/testsuite/libgomp.c-c++-common/task-reduction-12.c
index 5a5273ebd893..0ad92735ca74 100644
--- a/libgomp/testsuite/libgomp.c-c++-common/task-reduction-12.c
+++ b/libgomp/testsuite/libgomp.c-c++-common/task-reduction-12.c
@@ -9,7 +9,7 @@ unsigned long int c[2] = { ~0UL, ~0UL };
 void
 bar (int i)
 {
-  #pragma omp task in_reduction (*: b[ :3]) in_reduction (&: c[1: ]) \
+  #pragma omp task in_reduction (*: b[:3]) in_reduction (&: c[1:]) \
 	      in_reduction (+: a)
   {
     a += 4;
diff --git a/libgomp/testsuite/libgomp.c-c++-common/task-reduction-16.c b/libgomp/testsuite/libgomp.c-c++-common/task-reduction-16.c
index 34e0eb465f45..44d32c7bc25a 100644
--- a/libgomp/testsuite/libgomp.c-c++-common/task-reduction-16.c
+++ b/libgomp/testsuite/libgomp.c-c++-common/task-reduction-16.c
@@ -9,7 +9,7 @@ unsigned long int c[2] = { ~0UL, ~0UL };
 void
 bar (int i)
 {
-  #pragma omp task in_reduction (*: b[ :3]) in_reduction (&: c[1: ]) \
+  #pragma omp task in_reduction (*: b[:3]) in_reduction (&: c[1:]) \
 	      in_reduction (+: a)
   {
     a += 4;
diff --git a/libgomp/testsuite/libgomp.c-c++-common/task-reduction-3.c b/libgomp/testsuite/libgomp.c-c++-common/task-reduction-3.c
index a2140cb0c150..8a90e86e8470 100644
--- a/libgomp/testsuite/libgomp.c-c++-common/task-reduction-3.c
+++ b/libgomp/testsuite/libgomp.c-c++-common/task-reduction-3.c
@@ -18,10 +18,10 @@ foo (int n, int *c, long long int *d, int m[3], int *r, int o[4], int *p, int q[
 {
   int i;
   for (i = 0; i < 2; i++)
-    #pragma omp task in_reduction (+: a, c[ :2]) in_reduction (*: b[2 * n:3 * n], d[0:2]) \
-		     in_reduction (+: o[n:n*2], m[1], k[1:2][ : ], p[0], f[2:2]) \
-		     in_reduction (+: q[1:2][ : ], g[n:n*2], e[1], h[0], r[2:2]) \
-		     in_reduction (*: s[1:2], t[2:2][ : ])
+    #pragma omp task in_reduction (+: a, c[:2]) in_reduction (*: b[2 * n:3 * n], d[0:2]) \
+		     in_reduction (+: o[n:n*2], m[1], k[1:2][:], p[0], f[2:2]) \
+		     in_reduction (+: q[1:2][:], g[n:n*2], e[1], h[0], r[2:2]) \
+		     in_reduction (*: s[1:2], t[2:2][:])
     {
       a[0] += 7;
       a[1] += 17;
@@ -70,15 +70,15 @@ test (int n)
     int o[4] = { 1, 0, 0, 2 };
     #pragma omp taskgroup task_reduction (+: a, c) task_reduction (*: b[2 * n:3 * n], d) \
 			  task_reduction (+: e[1], f[2:2], g[n:n*2], h[0], k[1:2][0:2]) \
-			  task_reduction (+: o[n:n*2], m[1], q[1:2][ : ], p[0], r[2:2]) \
-			  task_reduction (*: t[2:2][ : ], s[1:n + 1])
+			  task_reduction (+: o[n:n*2], m[1], q[1:2][:], p[0], r[2:2]) \
+			  task_reduction (*: t[2:2][:], s[1:n + 1])
     {
       int i;
       for (i = 0; i < 4; i++)
 	#pragma omp task in_reduction (+: a, c) in_reduction (*: b[2 * n:3 * n], d) \
-			 in_reduction (+: o[n:n*2], q[1:2][ : ], p[0], m[1], r[2:2]) \
-			 in_reduction (+: g[n:n * 2], e[1], k[1:2][ : ], h[0], f[2:2]) \
-			 in_reduction (*: s[1:2], t[2:2][ : ])
+			 in_reduction (+: o[n:n*2], q[1:2][:], p[0], m[1], r[2:2]) \
+			 in_reduction (+: g[n:n * 2], e[1], k[1:2][:], h[0], f[2:2]) \
+			 in_reduction (*: s[1:2], t[2:2][:])
 	{
 	  int j;
 	  a[0] += 2;
@@ -96,11 +96,11 @@ test (int n)
 	  t[2][1] *= 2;
 	  t[3][1] *= 2;
 	  for (j = 0; j < 2; j++)
-	    #pragma omp task in_reduction (+: a, c[ :2]) \
+	    #pragma omp task in_reduction (+: a, c[:2]) \
 			     in_reduction (*: b[2 * n:3 * n], d[n - 1:n + 1]) \
-			     in_reduction (+: e[1], f[2:2], g[n:n*2], h[0], k[1:2][ :2]) \
-			     in_reduction (+: m[1], r[2:2], o[n:n*2], p[0], q[1:2][ :2]) \
-			     in_reduction (*: s[n:2], t[2:2][ : ])
+			     in_reduction (+: e[1], f[2:2], g[n:n*2], h[0], k[1:2][:2]) \
+			     in_reduction (+: m[1], r[2:2], o[n:n*2], p[0], q[1:2][:2]) \
+			     in_reduction (*: s[n:2], t[2:2][:])
 	    {
 	      m[1] += 6;
 	      r[2] += 7;
diff --git a/libgomp/testsuite/libgomp.c-c++-common/task-reduction-7.c b/libgomp/testsuite/libgomp.c-c++-common/task-reduction-7.c
index 0ef7366b22f1..c656f5ff00bd 100644
--- a/libgomp/testsuite/libgomp.c-c++-common/task-reduction-7.c
+++ b/libgomp/testsuite/libgomp.c-c++-common/task-reduction-7.c
@@ -18,10 +18,10 @@ foo (int n, int *c, long long int *d, int m[3], int *r, int o[4], int *p, int q[
 {
   int i;
   for (i = 0; i < 2; i++)
-    #pragma omp task in_reduction (+: a, c[ :2]) in_reduction (*: b[2 * n:3 * n], d[0:2]) \
-		     in_reduction (+: o[n:n*2], m[1], k[1:2][ : ], p[0], f[2:2]) \
-		     in_reduction (+: q[1:2][ : ], g[n:n*2], e[1], h[0], r[2:2]) \
-		     in_reduction (*: s[1:2], t[2:2][ : ])
+    #pragma omp task in_reduction (+: a, c[:2]) in_reduction (*: b[2 * n:3 * n], d[0:2]) \
+		     in_reduction (+: o[n:n*2], m[1], k[1:2][:], p[0], f[2:2]) \
+		     in_reduction (+: q[1:2][:], g[n:n*2], e[1], h[0], r[2:2]) \
+		     in_reduction (*: s[1:2], t[2:2][:])
     {
       a[0] += 7;
       a[1] += 17;
@@ -67,17 +67,17 @@ test (int n)
   t = tt;
   #pragma omp parallel reduction (task, +: a, c) reduction (task, *: b[2 * n:3 * n], d) \
 		       reduction (task, +: e[1], f[2:2], g[n:n*2], h[0], k[1:2][0:2]) \
-		       reduction (task, +: o[n:n*2], m[1], q[1:2][ : ], p[0], r[2:2]) \
-		       reduction (task, *: t[2:2][ : ], s[1:n + 1]) num_threads(4)
+		       reduction (task, +: o[n:n*2], m[1], q[1:2][:], p[0], r[2:2]) \
+		       reduction (task, *: t[2:2][:], s[1:n + 1]) num_threads(4)
   {
     int i;
     #pragma omp for
     for (i = 0; i < 4; i++)
       {
 	#pragma omp task in_reduction (+: a, c) in_reduction (*: b[2 * n:3 * n], d) \
-			 in_reduction (+: o[n:n*2], q[1:2][ : ], p[0], m[1], r[2:2]) \
-			 in_reduction (+: g[n:n * 2], e[1], k[1:2][ : ], h[0], f[2:2]) \
-			 in_reduction (*: s[1:2], t[2:2][ : ])
+			 in_reduction (+: o[n:n*2], q[1:2][:], p[0], m[1], r[2:2]) \
+			 in_reduction (+: g[n:n * 2], e[1], k[1:2][:], h[0], f[2:2]) \
+			 in_reduction (*: s[1:2], t[2:2][:])
 	{
 	  int j;
 	  a[0] += 2;
@@ -95,11 +95,11 @@ test (int n)
 	  t[2][1] *= 2;
 	  t[3][1] *= 2;
 	  for (j = 0; j < 2; j++)
-	    #pragma omp task in_reduction (+: a, c[ :2]) \
+	    #pragma omp task in_reduction (+: a, c[:2]) \
 			     in_reduction (*: b[2 * n:3 * n], d[n - 1:n + 1]) \
-			     in_reduction (+: e[1], f[2:2], g[n:n*2], h[0], k[1:2][ :2]) \
-			     in_reduction (+: m[1], r[2:2], o[n:n*2], p[0], q[1:2][ :2]) \
-			     in_reduction (*: s[n:2], t[2:2][ : ])
+			     in_reduction (+: e[1], f[2:2], g[n:n*2], h[0], k[1:2][:2]) \
+			     in_reduction (+: m[1], r[2:2], o[n:n*2], p[0], q[1:2][:2]) \
+			     in_reduction (*: s[n:2], t[2:2][:])
 	    {
 	      m[1] += 6;
 	      r[2] += 7;
diff --git a/libgomp/testsuite/libgomp.c-c++-common/task-reduction-9.c b/libgomp/testsuite/libgomp.c-c++-common/task-reduction-9.c
index 1938cf3d3f2d..3d71fef86708 100644
--- a/libgomp/testsuite/libgomp.c-c++-common/task-reduction-9.c
+++ b/libgomp/testsuite/libgomp.c-c++-common/task-reduction-9.c
@@ -18,10 +18,10 @@ foo (int n, int *c, long long int *d, int m[3], int *r, int o[4], int *p, int q[
 {
   int i;
   for (i = 0; i < 2; i++)
-    #pragma omp task in_reduction (+: a, c[ :2]) in_reduction (*: b[2 * n:3 * n], d[0:2]) \
-		     in_reduction (+: o[n:n*2], m[1], k[1:2][ : ], p[0], f[2:2]) \
-		     in_reduction (+: q[1:2][ : ], g[n:n*2], e[1], h[0], r[2:2]) \
-		     in_reduction (*: s[1:2], t[2:2][ : ])
+    #pragma omp task in_reduction (+: a, c[:2]) in_reduction (*: b[2 * n:3 * n], d[0:2]) \
+		     in_reduction (+: o[n:n*2], m[1], k[1:2][:], p[0], f[2:2]) \
+		     in_reduction (+: q[1:2][:], g[n:n*2], e[1], h[0], r[2:2]) \
+		     in_reduction (*: s[1:2], t[2:2][:])
     {
       a[0] += 7;
       a[1] += 17;
@@ -70,15 +70,15 @@ test (int n)
     int i;
     #pragma omp for reduction (task, +: a, c) reduction (task, *: b[2 * n:3 * n], d) \
 		    reduction (task, +: e[1], f[2:2], g[n:n*2], h[0], k[1:2][0:2]) \
-		    reduction (task, +: o[n:n*2], m[1], q[1:2][ : ], p[0], r[2:2]) \
-		    reduction (task, *: t[2:2][ : ], s[1:n + 1]) \
+		    reduction (task, +: o[n:n*2], m[1], q[1:2][:], p[0], r[2:2]) \
+		    reduction (task, *: t[2:2][:], s[1:n + 1]) \
 		    schedule(nonmonotonic: runtime)
     for (i = 0; i < 4; i++)
       {
 	#pragma omp task in_reduction (+: a, c) in_reduction (*: b[2 * n:3 * n], d) \
-			 in_reduction (+: o[n:n*2], q[1:2][ : ], p[0], m[1], r[2:2]) \
-			 in_reduction (+: g[n:n * 2], e[1], k[1:2][ : ], h[0], f[2:2]) \
-			 in_reduction (*: s[1:2], t[2:2][ : ])
+			 in_reduction (+: o[n:n*2], q[1:2][:], p[0], m[1], r[2:2]) \
+			 in_reduction (+: g[n:n * 2], e[1], k[1:2][:], h[0], f[2:2]) \
+			 in_reduction (*: s[1:2], t[2:2][:])
 	{
 	  int j;
 	  a[0] += 2;
@@ -96,11 +96,11 @@ test (int n)
 	  t[2][1] *= 2;
 	  t[3][1] *= 2;
 	  for (j = 0; j < 2; j++)
-	    #pragma omp task in_reduction (+: a, c[ :2]) \
+	    #pragma omp task in_reduction (+: a, c[:2]) \
 			     in_reduction (*: b[2 * n:3 * n], d[n - 1:n + 1]) \
-			     in_reduction (+: e[1], f[2:2], g[n:n*2], h[0], k[1:2][ :2]) \
-			     in_reduction (+: m[1], r[2:2], o[n:n*2], p[0], q[1:2][ :2]) \
-			     in_reduction (*: s[n:2], t[2:2][ : ])
+			     in_reduction (+: e[1], f[2:2], g[n:n*2], h[0], k[1:2][:2]) \
+			     in_reduction (+: m[1], r[2:2], o[n:n*2], p[0], q[1:2][:2]) \
+			     in_reduction (*: s[n:2], t[2:2][:])
 	    {
 	      m[1] += 6;
 	      r[2] += 7;
diff --git a/libgomp/testsuite/libgomp.c-c++-common/taskloop-reduction-2.c b/libgomp/testsuite/libgomp.c-c++-common/taskloop-reduction-2.c
index 340c53ee9cf0..8fc05dc668e2 100644
--- a/libgomp/testsuite/libgomp.c-c++-common/taskloop-reduction-2.c
+++ b/libgomp/testsuite/libgomp.c-c++-common/taskloop-reduction-2.c
@@ -17,10 +17,10 @@ void
 foo (int n, int *c, long long int *d, int m[3], int *r, int o[4], int *p, int q[4][2])
 {
   int i;
-  #pragma omp taskloop in_reduction (+: a, c[ :2]) in_reduction (*: b[2 * n:3 * n], d[0:2]) \
-		       in_reduction (+: o[n:n*2], m[1], k[1:2][ : ], p[0], f[2:2]) \
-		       in_reduction (+: q[1:2][ : ], g[n:n*2], e[1], h[0], r[2:2]) \
-		       in_reduction (*: s[1:2], t[2:2][ : ]) nogroup
+  #pragma omp taskloop in_reduction (+: a, c[:2]) in_reduction (*: b[2 * n:3 * n], d[0:2]) \
+		       in_reduction (+: o[n:n*2], m[1], k[1:2][:], p[0], f[2:2]) \
+		       in_reduction (+: q[1:2][:], g[n:n*2], e[1], h[0], r[2:2]) \
+		       in_reduction (*: s[1:2], t[2:2][:]) nogroup
   for (i = 0; i < 2; i++)
     {
       a[0] += 7;
@@ -71,8 +71,8 @@ test (int n)
     int i;
     #pragma omp taskloop reduction (+: a, c) reduction (default, *: b[2 * n:3 * n], d) \
 			 reduction (+: e[1], f[2:2], g[n:n*2], h[0], k[1:2][0:2]) \
-			 reduction (default, +: o[n:n*2], m[1], q[1:2][ : ], p[0], r[2:2]) \
-			 reduction (*: t[2:2][ : ], s[1:n + 1])
+			 reduction (default, +: o[n:n*2], m[1], q[1:2][:], p[0], r[2:2]) \
+			 reduction (*: t[2:2][:], s[1:n + 1])
     for (i = 0; i < 4; i++)
       {
 	int j;
@@ -90,11 +90,11 @@ test (int n)
 	s[1] *= 2;
 	t[2][1] *= 2;
 	t[3][1] *= 2;
-	#pragma omp taskloop in_reduction (+: a, c[ :2]) \
+	#pragma omp taskloop in_reduction (+: a, c[:2]) \
 			     in_reduction (*: b[2 * n:3 * n], d[n - 1:n + 1]) \
-			     in_reduction (+: e[1], f[2:2], g[n:n*2], h[0], k[1:2][ :2]) \
-			     in_reduction (+: m[1], r[2:2], o[n:n*2], p[0], q[1:2][ :2]) \
-			     in_reduction (*: s[n:2], t[2:2][ : ]) nogroup
+			     in_reduction (+: e[1], f[2:2], g[n:n*2], h[0], k[1:2][:2]) \
+			     in_reduction (+: m[1], r[2:2], o[n:n*2], p[0], q[1:2][:2]) \
+			     in_reduction (*: s[n:2], t[2:2][:]) nogroup
 	for (j = 0; j < 2; j++)
 	  {
 	    m[1] += 6;
diff --git a/libgomp/testsuite/libgomp.c-c++-common/teams-nteams-icv-1.c b/libgomp/testsuite/libgomp.c-c++-common/teams-nteams-icv-1.c
index f2d0916ed597..c3c21091e970 100644
--- a/libgomp/testsuite/libgomp.c-c++-common/teams-nteams-icv-1.c
+++ b/libgomp/testsuite/libgomp.c-c++-common/teams-nteams-icv-1.c
@@ -19,7 +19,7 @@
    - OMP_NUM_TEAMS(_DEV(_<dev-num>)) overrides it
      OMP_NUM_TEAMS_ALL overrides it
    - Number of teams is:
-     -> the value specific by num_teams([lower: ]upper)
+     -> the value specific by num_teams([lower:]upper)
 	with lower := upper if unspecified
      -> Otherwise, if nteams-var ICV > 0, #teams <= nteams-var ICV
      -> Otherwise, if nteams-var ICV <= 0, #teams > 1
diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-1.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-1.c
index 071c94688d5f..d8d7067e452a 100644
--- a/libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-1.c
+++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-1.c
@@ -13,7 +13,7 @@ main ()
   int n = 100, i;
   struct dc v = { .a = 3, .b = (int *) malloc (sizeof (int) * n) };
 
-#pragma acc parallel loop copy(v.a, v.b[ :n])
+#pragma acc parallel loop copy(v.a, v.b[:n])
   for (i = 0; i < n; i++)
     v.b[i] = v.a;
 
diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-16.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-16.c
index 0735eae26cf1..a7308e8c98b9 100644
--- a/libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-16.c
+++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-16.c
@@ -65,11 +65,11 @@ int main (int argc, char* argv[])
 
   for (int i = 0; i < 99; i++)
     {
-#pragma acc enter data copyin(p.m.s2[ :1])
-#pragma acc parallel loop copy(p.m.s2->e[ :N])
+#pragma acc enter data copyin(p.m.s2[:1])
+#pragma acc parallel loop copy(p.m.s2->e[:N])
       for (int j = 0; j < N; j++)
 	p.m.s2->e[j]++;
-#pragma acc exit data delete(p.m.s2[ :1])
+#pragma acc exit data delete(p.m.s2[:1])
     }
 
   for (i = 0; i < N; i++)
@@ -80,16 +80,16 @@ int main (int argc, char* argv[])
 
   for (int i = 0; i < 99; i++)
     {
-#pragma acc enter data copyin(p.m.s2[ :1])
-#pragma acc enter data copyin(p.m.s2->f[ :1])
-#pragma acc parallel loop copy(p.m.s2->f->a[ :N]) copy(p.m.s2->f->c[ :N])
+#pragma acc enter data copyin(p.m.s2[:1])
+#pragma acc enter data copyin(p.m.s2->f[:1])
+#pragma acc parallel loop copy(p.m.s2->f->a[:N]) copy(p.m.s2->f->c[:N])
 	for (int j = 0; j < N; j++)
 	  {
 	    p.m.s2->f->a[j]++;
 	    p.m.s2->f->c[j]++;
 	  }
-#pragma acc exit data delete(p.m.s2->f[ :1])
-#pragma acc exit data delete(p.m.s2[ :1])
+#pragma acc exit data delete(p.m.s2->f[:1])
+#pragma acc exit data delete(p.m.s2[:1])
     }
 
   for (i = 0; i < N; i++)
@@ -100,10 +100,10 @@ int main (int argc, char* argv[])
 
   for (int i = 0; i < 99; i++)
     {
-#pragma acc enter data copyin(p.m.s2[ :1]) copyin(p.n.s2[ :1])
-#pragma acc enter data copyin(p.m.s2->f[ :1]) copyin(p.n.s2->f[ :1])
-#pragma acc parallel loop copy(p.m.s2->f->a[ :N]) copy(p.m.s2->f->c[ :N]) \
-			  copy(p.n.s2->f->a[ :N]) copy(p.n.s2->f->c[ :N])
+#pragma acc enter data copyin(p.m.s2[:1]) copyin(p.n.s2[:1])
+#pragma acc enter data copyin(p.m.s2->f[:1]) copyin(p.n.s2->f[:1])
+#pragma acc parallel loop copy(p.m.s2->f->a[:N]) copy(p.m.s2->f->c[:N]) \
+			  copy(p.n.s2->f->a[:N]) copy(p.n.s2->f->c[:N])
 	for (int j = 0; j < N; j++)
 	  {
 	    p.m.s2->f->a[j]++;
@@ -111,8 +111,8 @@ int main (int argc, char* argv[])
 	    p.n.s2->f->a[j]++;
 	    p.n.s2->f->c[j]++;
 	  }
-#pragma acc exit data delete(p.m.s2->f[ :1]) delete(p.n.s2->f[ :1])
-#pragma acc exit data delete(p.m.s2[ :1]) delete(p.n.s2[ :1])
+#pragma acc exit data delete(p.m.s2->f[:1]) delete(p.n.s2->f[:1])
+#pragma acc exit data delete(p.m.s2[:1]) delete(p.n.s2[:1])
     }
 
   for (i = 0; i < N; i++)
@@ -124,19 +124,19 @@ int main (int argc, char* argv[])
 
   for (int i = 0; i < 99; i++)
     {
-#pragma acc enter data copyin(p.m.s2[ :1]) copyin(p.n.s2[ :1])
-#pragma acc enter data copyin(p.n.s2->e[ :N]) copyin(p.n.s2->f[ :1]) \
-		       copyin(p.m.s2->f[ :1])
-#pragma acc parallel loop copy(p.m.s2->f->a[ :N]) copy(p.n.s2->f->a[ :N])
+#pragma acc enter data copyin(p.m.s2[:1]) copyin(p.n.s2[:1])
+#pragma acc enter data copyin(p.n.s2->e[:N]) copyin(p.n.s2->f[:1]) \
+		       copyin(p.m.s2->f[:1])
+#pragma acc parallel loop copy(p.m.s2->f->a[:N]) copy(p.n.s2->f->a[:N])
 	for (int j = 0; j < N; j++)
 	  {
 	    p.m.s2->f->a[j]++;
 	    p.n.s2->f->a[j]++;
 	    p.n.s2->e[j]++;
 	  }
-#pragma acc exit data delete(p.m.s2->f[ :1]) delete(p.n.s2->f[ :1]) \
-		      copyout(p.n.s2->e[ :N])
-#pragma acc exit data delete(p.m.s2[ :1]) delete(p.n.s2[ :1])
+#pragma acc exit data delete(p.m.s2->f[:1]) delete(p.n.s2->f[:1]) \
+		      copyout(p.n.s2->e[:N])
+#pragma acc exit data delete(p.m.s2[:1]) delete(p.n.s2[:1])
     }
 
   for (i = 0; i < N; i++)
@@ -148,11 +148,11 @@ int main (int argc, char* argv[])
 
   for (int i = 0; i < 99; i++)
     {
-#pragma acc enter data copyin(q->m.s2[ :1])
-#pragma acc parallel loop copy(q->m.s2->e[ :N])
+#pragma acc enter data copyin(q->m.s2[:1])
+#pragma acc parallel loop copy(q->m.s2->e[:N])
       for (int j = 0; j < N; j++)
 	q->m.s2->e[j]++;
-#pragma acc exit data delete(q->m.s2[ :1])
+#pragma acc exit data delete(q->m.s2[:1])
     }
 
   for (i = 0; i < N; i++)
@@ -163,16 +163,16 @@ int main (int argc, char* argv[])
 
   for (int i = 0; i < 99; i++)
     {
-#pragma acc enter data copyin(q->m.s2[ :1])
-#pragma acc enter data copyin(q->m.s2->f[ :1])
-#pragma acc parallel loop copy(q->m.s2->f->a[ :N]) copy(q->m.s2->f->c[ :N])
+#pragma acc enter data copyin(q->m.s2[:1])
+#pragma acc enter data copyin(q->m.s2->f[:1])
+#pragma acc parallel loop copy(q->m.s2->f->a[:N]) copy(q->m.s2->f->c[:N])
 	for (int j = 0; j < N; j++)
 	  {
 	    q->m.s2->f->a[j]++;
 	    q->m.s2->f->c[j]++;
 	  }
-#pragma acc exit data delete(q->m.s2->f[ :1])
-#pragma acc exit data delete(q->m.s2[ :1])
+#pragma acc exit data delete(q->m.s2->f[:1])
+#pragma acc exit data delete(q->m.s2[:1])
     }
 
   for (i = 0; i < N; i++)
@@ -183,10 +183,10 @@ int main (int argc, char* argv[])
 
   for (int i = 0; i < 99; i++)
     {
-#pragma acc enter data copyin(q->m.s2[ :1]) copyin(q->n.s2[ :1])
-#pragma acc enter data copyin(q->m.s2->f[ :1]) copyin(q->n.s2->f[ :1])
-#pragma acc parallel loop copy(q->m.s2->f->a[ :N]) copy(q->m.s2->f->c[ :N]) \
-			  copy(q->n.s2->f->a[ :N]) copy(q->n.s2->f->c[ :N])
+#pragma acc enter data copyin(q->m.s2[:1]) copyin(q->n.s2[:1])
+#pragma acc enter data copyin(q->m.s2->f[:1]) copyin(q->n.s2->f[:1])
+#pragma acc parallel loop copy(q->m.s2->f->a[:N]) copy(q->m.s2->f->c[:N]) \
+			  copy(q->n.s2->f->a[:N]) copy(q->n.s2->f->c[:N])
 	for (int j = 0; j < N; j++)
 	  {
 	    q->m.s2->f->a[j]++;
@@ -194,8 +194,8 @@ int main (int argc, char* argv[])
 	    q->n.s2->f->a[j]++;
 	    q->n.s2->f->c[j]++;
 	  }
-#pragma acc exit data delete(q->m.s2->f[ :1]) delete(q->n.s2->f[ :1])
-#pragma acc exit data delete(q->m.s2[ :1]) delete(q->n.s2[ :1])
+#pragma acc exit data delete(q->m.s2->f[:1]) delete(q->n.s2->f[:1])
+#pragma acc exit data delete(q->m.s2[:1]) delete(q->n.s2[:1])
     }
 
   for (i = 0; i < N; i++)
@@ -207,19 +207,19 @@ int main (int argc, char* argv[])
 
   for (int i = 0; i < 99; i++)
     {
-#pragma acc enter data copyin(q->m.s2[ :1]) copyin(q->n.s2[ :1])
-#pragma acc enter data copyin(q->n.s2->e[ :N]) copyin(q->m.s2->f[ :1]) \
-		       copyin(q->n.s2->f[ :1])
-#pragma acc parallel loop copy(q->m.s2->f->a[ :N]) copy(q->n.s2->f->a[ :N])
+#pragma acc enter data copyin(q->m.s2[:1]) copyin(q->n.s2[:1])
+#pragma acc enter data copyin(q->n.s2->e[:N]) copyin(q->m.s2->f[:1]) \
+		       copyin(q->n.s2->f[:1])
+#pragma acc parallel loop copy(q->m.s2->f->a[:N]) copy(q->n.s2->f->a[:N])
 	for (int j = 0; j < N; j++)
 	  {
 	    q->m.s2->f->a[j]++;
 	    q->n.s2->f->a[j]++;
 	    q->n.s2->e[j]++;
 	  }
-#pragma acc exit data delete(q->m.s2->f[ :1]) delete(q->n.s2->f[ :1]) \
-		      copyout(q->n.s2->e[ :N])
-#pragma acc exit data delete(q->m.s2[ :1]) delete(q->n.s2[ :1])
+#pragma acc exit data delete(q->m.s2->f[:1]) delete(q->n.s2->f[:1]) \
+		      copyout(q->n.s2->e[:N])
+#pragma acc exit data delete(q->m.s2[:1]) delete(q->n.s2[:1])
     }
 
   for (i = 0; i < N; i++)
diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-3.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-3.c
index 65950c569435..cec764bd3e7f 100644
--- a/libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-3.c
+++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-3.c
@@ -12,18 +12,18 @@ main ()
   for (i = 0; i < n; i++)
     a[i] = i+1;
 
-#pragma acc enter data copyin(a[ :n]) create(b)
+#pragma acc enter data copyin(a[:n]) create(b)
 
   b = a;
   acc_attach ((void **)&b);
 
-#pragma acc parallel loop present (b[ :n])
+#pragma acc parallel loop present (b[:n])
   for (i = 0; i < n; i++)
     b[i] = i+1;
 
   acc_detach ((void **)&b);
 
-#pragma acc exit data copyout(a[ :n], b)
+#pragma acc exit data copyout(a[:n], b)
 
   for (i = 0; i < 10; i++)
     assert (a[i] == b[i]);
diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-4.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-4.c
index acbca9d554be..8874ca0a5045 100644
--- a/libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-4.c
+++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-4.c
@@ -14,7 +14,7 @@ sum_nodes (struct node *head)
 {
   int i = 0, sum = 0;
 
-#pragma acc parallel reduction(+:sum) present(head[ :1])
+#pragma acc parallel reduction(+:sum) present(head[:1])
   {
     for (; head != NULL; head = head->next)
       sum += head->val;
@@ -37,7 +37,7 @@ insert (struct node *head, int val)
   n->next = head->next;
   head->next = n;
 
-#pragma acc enter data copyin(n[ :1])
+#pragma acc enter data copyin(n[:1])
 #pragma acc enter data attach(head->next)
   if (n->next)
     {
@@ -57,7 +57,7 @@ destroy (struct node *head)
 	{
 #pragma acc exit data detach(n->next)
 	}
-#pragma acc exit data delete (n[ :1])
+#pragma acc exit data delete (n[:1])
       if (head->next)
 	{
 #pragma acc enter data attach(head->next)
diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-5.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-5.c
index ce2f0d305152..89cafbb62abb 100644
--- a/libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-5.c
+++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-5.c
@@ -13,7 +13,7 @@ sum_nodes (struct node *head)
 {
   int i = 0, sum = 0;
 
-#pragma acc parallel reduction(+:sum) present(head[ :1])
+#pragma acc parallel reduction(+:sum) present(head[:1])
   {
     for (; head != NULL; head = head->next)
       sum += head->val;
diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-6.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-6.c
index 9603bdc0534e..391149459c90 100644
--- a/libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-6.c
+++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-6.c
@@ -24,7 +24,7 @@ main ()
     {
 #pragma acc data copy(v)
       {
-#pragma acc data copy(v.b[ :n])
+#pragma acc data copy(v.b[:n])
 	{
 	  for (i = 0; i < n; i++)
 	    {
diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-7.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-7.c
index 0bc735139832..13e5ca2e056c 100644
--- a/libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-7.c
+++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-7.c
@@ -31,7 +31,7 @@ main ()
       for (i = 0; i < n; i++)
 	v.b[i] = v.a + i;
 
-#pragma acc exit data copyout(v.b[ :n]) finalize
+#pragma acc exit data copyout(v.b[:n]) finalize
 #pragma acc exit data delete(v.a)
 
       for (i = 0; i < n; i++)
diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-8.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-8.c
index a132cb635f7b..e705f78c3112 100644
--- a/libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-8.c
+++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-8.c
@@ -35,15 +35,15 @@ test (unsigned variant)
 
   for (k = 0; k < 16; k++)
     {
-#pragma acc enter data copyin(v.a, v.b[ :n], v.c[ :n], v.d[ :n])
+#pragma acc enter data copyin(v.a, v.b[:n], v.c[:n], v.d[:n])
 
 #pragma acc parallel loop
       for (i = 0; i < n; i++)
 	v.b[i] = v.a + i;
 
-#pragma acc exit data copyout(v.b[ :n])
-#pragma acc exit data copyout(v.c[ :n])
-#pragma acc exit data copyout(v.d[ :n])
+#pragma acc exit data copyout(v.b[:n])
+#pragma acc exit data copyout(v.c[:n])
+#pragma acc exit data copyout(v.d[:n])
 #pragma acc exit data copyout(v.a)
 
       for (i = 0; i < n; i++)