diff --git a/libstdc++-v3/testsuite/24_iterators/headers/iterator/range_access.cc b/libstdc++-v3/testsuite/24_iterators/headers/iterator/range_access.cc
new file mode 100644
index 00000000000..23676ad1d7a
--- /dev/null
+++ b/libstdc++-v3/testsuite/24_iterators/headers/iterator/range_access.cc
@@ -0,0 +1,107 @@
+// { dg-do compile { target c++11 } }
+
+// Copyright (C) 2010-2025 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// .
+
+#include
+
+#ifdef _GLIBCXX_RELEASE
+// Conditional noexcept on these functions is a libstdc++ extension
+# define NOTHROW(F) noexcept(noexcept(c.F()))
+#else
+# define NOTHROW(F)
+#endif
+
+#if __cplusplus >= 201703L
+# define CONSTEXPR_17 constexpr
+#else
+# define CONSTEXPR_17
+#endif
+
+#if __cplusplus >= 201402L
+# define CONSTEXPR_14 constexpr
+#else
+# define CONSTEXPR_14
+#endif
+
+namespace std
+{
+ template
+ CONSTEXPR_17 auto
+ begin(C& c) NOTHROW(begin) -> decltype(c.begin());
+ template
+ CONSTEXPR_17 auto
+ begin(const C& c) NOTHROW(begin) -> decltype(c.begin());
+
+ template
+ CONSTEXPR_17 auto
+ end(C& c) NOTHROW(end) -> decltype(c.end());
+ template
+ CONSTEXPR_17 auto
+ end(const C& c) NOTHROW(end) -> decltype(c.end());
+
+ template
+ CONSTEXPR_14 T*
+ begin(T (&array)[N]) noexcept;
+ template
+ CONSTEXPR_14 T*
+ end(T (&array)[N]) noexcept;
+
+#if __cplusplus >= 201402L
+ template
+ constexpr auto
+ cbegin(const C& c) noexcept(noexcept(std::begin(c))) -> decltype(c.begin());
+ template
+ constexpr auto
+ cend(const C& c) noexcept(noexcept(std::end(c)))-> decltype(c.end());
+
+ template
+ CONSTEXPR_17 auto
+ rbegin(C& c) -> decltype(c.rbegin());
+ template
+ CONSTEXPR_17 auto
+ rbegin(const C& c) -> decltype(c.rbegin());
+
+ template
+ CONSTEXPR_17 auto
+ rend(C& c) -> decltype(c.rend());
+ template
+ CONSTEXPR_17 auto
+ rend(const C& c) -> decltype(c.rend());
+
+ template
+ CONSTEXPR_17 reverse_iterator
+ rbegin(T (&array)[N]) noexcept;
+ template
+ CONSTEXPR_17 reverse_iterator
+ rend(T (&array)[N]) noexcept;
+
+ template
+ CONSTEXPR_17 reverse_iterator
+ rbegin(initializer_list) noexcept;
+ template
+ CONSTEXPR_17 reverse_iterator
+ rend(initializer_list) noexcept;
+
+ template
+ CONSTEXPR_17 auto
+ crbegin(const C& c) -> decltype(std::rbegin(c));
+ template
+ CONSTEXPR_17 auto
+ cend(const C& c) -> decltype(std::rend(c));
+#endif // C++14
+}
diff --git a/libstdc++-v3/testsuite/24_iterators/headers/iterator/range_access_c++11.cc b/libstdc++-v3/testsuite/24_iterators/headers/iterator/range_access_c++11.cc
deleted file mode 100644
index 50f58053112..00000000000
--- a/libstdc++-v3/testsuite/24_iterators/headers/iterator/range_access_c++11.cc
+++ /dev/null
@@ -1,40 +0,0 @@
-// { dg-options "-std=gnu++11" }
-// { dg-do compile { target c++11_only } }
-
-// Copyright (C) 2010-2025 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3. If not see
-// .
-
-#include
-
-#ifdef _GLIBCXX_RELEASE
-// Conditional noexcept on these functions is a libstdc++ extension
-# define NOTHROW(F) noexcept(noexcept(c.F()))
-#else
-# define NOTHROW(F)
-#endif
-
-namespace std
-{
- template auto begin(C& c) NOTHROW(begin) -> decltype(c.begin());
- template auto begin(const C& c) NOTHROW(begin) -> decltype(c.begin());
-
- template auto end(C& c) NOTHROW(end) -> decltype(c.end());
- template auto end(const C& c) NOTHROW(end) -> decltype(c.end());
-
- template T* begin(T (&array)[N]) noexcept;
- template T* end(T (&array)[N]) noexcept;
-}
diff --git a/libstdc++-v3/testsuite/24_iterators/headers/iterator/range_access_c++14.cc b/libstdc++-v3/testsuite/24_iterators/headers/iterator/range_access_c++14.cc
deleted file mode 100644
index 6e56927c6a4..00000000000
--- a/libstdc++-v3/testsuite/24_iterators/headers/iterator/range_access_c++14.cc
+++ /dev/null
@@ -1,64 +0,0 @@
-// { dg-options "-std=gnu++14" }
-// { dg-do compile { target c++14_only } }
-
-// Copyright (C) 2016-2025 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3. If not see
-// .
-
-#include
-
-#ifdef _GLIBCXX_RELEASE
-// Conditional noexcept on these functions is a libstdc++ extension
-# define NOTHROW(F) noexcept(noexcept(c.F()))
-#else
-# define NOTHROW(F)
-#endif
-
-namespace std
-{
- template auto begin(C& c) NOTHROW(begin) -> decltype(c.begin());
- template auto begin(const C& c) NOTHROW(begin) -> decltype(c.begin());
-
- template auto end(C& c) NOTHROW(end) -> decltype(c.end());
- template auto end(const C& c) NOTHROW(end) -> decltype(c.end());
-
- template constexpr T* begin(T (&array)[N]) noexcept;
- template constexpr T* end(T (&array)[N]) noexcept;
-
- template auto cbegin(const C& c) -> decltype(c.begin());
- template auto cend(const C& c) -> decltype(c.end());
-
- template auto rbegin(C& c) -> decltype(c.rbegin());
- template auto rbegin(const C& c) -> decltype(c.rbegin());
-
- template auto rend(C& c) -> decltype(c.rend());
- template auto rend(const C& c) -> decltype(c.rend());
-
- template
- reverse_iterator rbegin(T (&array)[N]) noexcept;
- template
- reverse_iterator rend(T (&array)[N]) noexcept;
-
- template
- reverse_iterator rbegin(initializer_list) noexcept;
- template
- reverse_iterator rend(initializer_list) noexcept;
-
- template
- auto crbegin(const C& c) -> decltype(std::rbegin(c));
- template
- auto cend(const C& c) -> decltype(std::rend(c));
-}
diff --git a/libstdc++-v3/testsuite/24_iterators/headers/iterator/range_access_c++17.cc b/libstdc++-v3/testsuite/24_iterators/headers/iterator/range_access_c++17.cc
deleted file mode 100644
index e6c1c9a9496..00000000000
--- a/libstdc++-v3/testsuite/24_iterators/headers/iterator/range_access_c++17.cc
+++ /dev/null
@@ -1,63 +0,0 @@
-// { dg-do compile { target c++17 } }
-
-// Copyright (C) 2016-2025 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3. If not see
-// .
-
-#include
-
-#ifdef _GLIBCXX_RELEASE
-// Conditional noexcept on these functions is a libstdc++ extension
-# define NOTHROW(F) noexcept(noexcept(c.F()))
-#else
-# define NOTHROW(F)
-#endif
-
-namespace std
-{
- template constexpr auto begin(C& c) NOTHROW(begin) -> decltype(c.begin());
- template constexpr auto begin(const C& c) NOTHROW(begin) -> decltype(c.begin());
-
- template constexpr auto end(C& c) NOTHROW(end) -> decltype(c.end());
- template constexpr auto end(const C& c) NOTHROW(end) -> decltype(c.end());
-
- template constexpr T* begin(T (&array)[N]) noexcept;
- template constexpr T* end(T (&array)[N]) noexcept;
-
- template constexpr auto cbegin(const C& c) -> decltype(c.begin());
- template constexpr auto cend(const C& c) -> decltype(c.end());
-
- template constexpr auto rbegin(C& c) -> decltype(c.rbegin());
- template constexpr auto rbegin(const C& c) -> decltype(c.rbegin());
-
- template constexpr auto rend(C& c) -> decltype(c.rend());
- template constexpr auto rend(const C& c) -> decltype(c.rend());
-
- template
- constexpr reverse_iterator rbegin(T (&array)[N]) noexcept;
- template
- constexpr reverse_iterator rend(T (&array)[N]) noexcept;
-
- template
- constexpr reverse_iterator rbegin(initializer_list) noexcept;
- template
- constexpr reverse_iterator rend(initializer_list) noexcept;
-
- template
- constexpr auto crbegin(const C& c) -> decltype(std::rbegin(c));
- template
- constexpr auto cend(const C& c) -> decltype(std::rend(c));
-}