From: Luc Grosheintz <[email protected]>
When running the tests without pre-compiled headers
(--disable-libstdcxx-pch), the test fails, because the feature
testing macro (FTM) isn't defined yet.
This commit moves checking the FTM to a dedicated file (version.cc)
that's run without PCH.
libstdc++-v3/ChangeLog:
* testsuite/20_util/function_objects/not_fn/nttp.cc: Move
test of feature testing macro to version.cc
* testsuite/20_util/function_objects/not_fn/version.cc: New test.
Reviewed-by: Jonathan Wakely <[email protected]>
Co-authored-by: Tomasz Kamiński <[email protected]>
Signed-off-by: Luc Grosheintz <[email protected]>
Signed-off-by: Tomasz Kamiński <[email protected]>
---
v4 expands test to C++17.
Tested the file with all supported standard and got result:
# of expected passes 4 (17, 20, 23, 26)
# of unsupported tests 3 (98, 11, 14)
OK for trunk?
.../20_util/function_objects/not_fn/nttp.cc | 6 ------
.../20_util/function_objects/not_fn/version.cc | 12 ++++++++++++
2 files changed, 12 insertions(+), 6 deletions(-)
create mode 100644
libstdc++-v3/testsuite/20_util/function_objects/not_fn/version.cc
diff --git a/libstdc++-v3/testsuite/20_util/function_objects/not_fn/nttp.cc
b/libstdc++-v3/testsuite/20_util/function_objects/not_fn/nttp.cc
index d35d828f14c..d24ccf8a187 100644
--- a/libstdc++-v3/testsuite/20_util/function_objects/not_fn/nttp.cc
+++ b/libstdc++-v3/testsuite/20_util/function_objects/not_fn/nttp.cc
@@ -2,12 +2,6 @@
// { dg-do run { target c++26 } }
-#ifndef __cpp_lib_not_fn
-# error "Feature test macro for not_fn is missing in <functional>"
-#elif __cpp_lib_not_fn < 202306L
-# error "Feature test macro for not_fn has wrong value in <functional>"
-#endif
-
#include <functional>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/20_util/function_objects/not_fn/version.cc
b/libstdc++-v3/testsuite/20_util/function_objects/not_fn/version.cc
new file mode 100644
index 00000000000..11ae063e58e
--- /dev/null
+++ b/libstdc++-v3/testsuite/20_util/function_objects/not_fn/version.cc
@@ -0,0 +1,12 @@
+// { dg-do preprocess { target c++20 } }
+// { dg-add-options no_pch }
+
+#include <functional>
+
+#ifndef __cpp_lib_not_fn
+# error "Feature test macro for not_fn is missing in <functional>"
+#elif __cpp_lib_not_fn < 201603L
+#error "Feature test macro __cpp_lib_mdspan has the wrong value for C++20 or
later"
+#elif __cplusplus > 202302L && __cpp_lib_not_fn < 202306L
+#error "Feature test macro __cpp_lib_mdspan has the wrong value for C++26 or
later"
+#endif
--
2.51.0