aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArsen Arsenović <arsen@aarsen.me>2023-03-08 17:01:24 +0100
committerArsen Arsenović <arsen@aarsen.me>2023-04-05 18:45:14 +0200
commit6f0d67b912900009bff5018bd58e17ea1db1de69 (patch)
tree8cd5cd11a20e511d0ec7eed0d126e1dba1cbef5b
parent9d63ce7c4c0a993c419dceb823e71cba5da99e24 (diff)
downloadgcc-6f0d67b912900009bff5018bd58e17ea1db1de69.zip
gcc-6f0d67b912900009bff5018bd58e17ea1db1de69.tar.gz
gcc-6f0d67b912900009bff5018bd58e17ea1db1de69.tar.bz2
libstdc++: Add a test for <version> FTM redefinitions
This test detects redefinitions by compiling stdc++.h and <version>, by disabling the system_header pragma on the latter, to allow warnings in it. Thanks Patrick Palka for the suggestion. libstdc++-v3/ChangeLog: * testsuite/17_intro/versionconflict.cc: New test. * include/std/version: Allow disabling the system_header pragma via _GLIBCXX_TESTING_SYSHDR.
-rw-r--r--libstdc++-v3/include/std/version5
-rw-r--r--libstdc++-v3/testsuite/17_intro/versionconflict.cc7
2 files changed, 11 insertions, 1 deletions
diff --git a/libstdc++-v3/include/std/version b/libstdc++-v3/include/std/version
index cdd2424..1069bc6 100644
--- a/libstdc++-v3/include/std/version
+++ b/libstdc++-v3/include/std/version
@@ -30,7 +30,10 @@
#ifndef _GLIBCXX_VERSION_INCLUDED
#define _GLIBCXX_VERSION_INCLUDED
-#pragma GCC system_header
+// To facilitate testsuite/17_intro/versionconflict.cc
+#ifndef _GLIBCXX_TESTING_SYSHDR
+# pragma GCC system_header
+#endif
#include <bits/c++config.h>
diff --git a/libstdc++-v3/testsuite/17_intro/versionconflict.cc b/libstdc++-v3/testsuite/17_intro/versionconflict.cc
new file mode 100644
index 0000000..6c21298
--- /dev/null
+++ b/libstdc++-v3/testsuite/17_intro/versionconflict.cc
@@ -0,0 +1,7 @@
+// { dg-do preprocess }
+// { dg-additional-options "-Werror" }
+
+// Test for redefinitions of FTMs using bits/stdc++.h.
+#define _GLIBCXX_TESTING_SYSHDR
+#include <bits/stdc++.h>
+#include <version>