Give more explicit errors if these files are not built with the correct
-std options.

libstdc++-v3/ChangeLog:

        * src/c++98/locale_init.cc: Require C++11.
        * src/c++98/localename.cc: Likewise.
        * src/c++98/misc-inst.cc: Require C++98.

Tested powerpc64le-linux. Committed to trunk.

commit d3a7fbcb7c7a1016ceac2ceaf79b28c17ce9fcd7
Author: Jonathan Wakely <jwak...@redhat.com>
Date:   Thu Aug 12 13:33:43 2021

    libstdc++: Add #error to some files that depend on a specific standard mode
    
    Give more explicit errors if these files are not built with the correct
    -std options.
    
    libstdc++-v3/ChangeLog:
    
            * src/c++98/locale_init.cc: Require C++11.
            * src/c++98/localename.cc: Likewise.
            * src/c++98/misc-inst.cc: Require C++98.

diff --git a/libstdc++-v3/src/c++98/locale_init.cc 
b/libstdc++-v3/src/c++98/locale_init.cc
index 4bec50bf595..e96b1a336aa 100644
--- a/libstdc++-v3/src/c++98/locale_init.cc
+++ b/libstdc++-v3/src/c++98/locale_init.cc
@@ -20,6 +20,10 @@
 // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 // <http://www.gnu.org/licenses/>.
 
+#if __cplusplus != 201103L
+# error This file must be compiled as C++11
+#endif
+
 #define _GLIBCXX_USE_CXX11_ABI 1
 #include <clocale>
 #include <cstring>
diff --git a/libstdc++-v3/src/c++98/localename.cc 
b/libstdc++-v3/src/c++98/localename.cc
index 350dcf5ad0f..9c707b2327c 100644
--- a/libstdc++-v3/src/c++98/localename.cc
+++ b/libstdc++-v3/src/c++98/localename.cc
@@ -20,6 +20,10 @@
 // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 // <http://www.gnu.org/licenses/>.
 
+#if __cplusplus != 201103L
+# error This file must be compiled as C++11
+#endif
+
 #define _GLIBCXX_USE_CXX11_ABI 1
 #include <clocale>
 #include <cstring>
diff --git a/libstdc++-v3/src/c++98/misc-inst.cc 
b/libstdc++-v3/src/c++98/misc-inst.cc
index 09851903600..85a4287e113 100644
--- a/libstdc++-v3/src/c++98/misc-inst.cc
+++ b/libstdc++-v3/src/c++98/misc-inst.cc
@@ -26,6 +26,10 @@
 // ISO C++ 14882:
 //
 
+#if __cplusplus != 199711L
+# error This file must be compiled as C++98
+#endif
+
 #define _GLIBCXX_USE_CXX11_ABI 1
 #define _GLIBCXX_DISAMBIGUATE_REPLACE_INST 1
 #include <string>

Reply via email to