[committed, v2] libstdc++: Test 17_intro/names.cc with -D_FORTIFY_SOURCE=2 [PR116210]
Jonathan Wakely
jwakely@redhat.com
Wed Oct 9 14:45:52 GMT 2024
I removed the >= 2.35 check, because it was failing on a RHEL glibc 2.34
with the fortify changes backported. So let's just #undef u for anything
older than 2.41 instead.
Tested powerpc64le-linux (glibc-2.34-100.el9_4.3) and x86_64-linux
(glibc-2.39-22.fc40).
Pushed to trunk.
-- >8 --
Add a new testcase that repeats 17_intro/names.cc but with
_FORTIFY_SOURCE defined, to find problems in Glibc fortify wrappers like
https://sourceware.org/bugzilla/show_bug.cgi?id=32052 (which is fixed
now).
libstdc++-v3/ChangeLog:
PR libstdc++/116210
* testsuite/17_intro/names.cc (sz): Undef for versions of Glibc
that use it in the fortify wrappers.
* testsuite/17_intro/names_fortify.cc: New test.
---
libstdc++-v3/testsuite/17_intro/names.cc | 7 +++++++
libstdc++-v3/testsuite/17_intro/names_fortify.cc | 6 ++++++
2 files changed, 13 insertions(+)
create mode 100644 libstdc++-v3/testsuite/17_intro/names_fortify.cc
diff --git a/libstdc++-v3/testsuite/17_intro/names.cc b/libstdc++-v3/testsuite/17_intro/names.cc
index bea2d19ecba..5deb310dc31 100644
--- a/libstdc++-v3/testsuite/17_intro/names.cc
+++ b/libstdc++-v3/testsuite/17_intro/names.cc
@@ -383,4 +383,11 @@
#undef y
#endif
+#if defined __GLIBC_PREREQ && defined _FORTIFY_SOURCE
+# if ! __GLIBC_PREREQ(2,41)
+// https://sourceware.org/bugzilla/show_bug.cgi?id=32052
+# undef sz
+# endif
+#endif
+
#include <bits/stdc++.h>
diff --git a/libstdc++-v3/testsuite/17_intro/names_fortify.cc b/libstdc++-v3/testsuite/17_intro/names_fortify.cc
new file mode 100644
index 00000000000..c975412074b
--- /dev/null
+++ b/libstdc++-v3/testsuite/17_intro/names_fortify.cc
@@ -0,0 +1,6 @@
+// { dg-do compile { target *-*-linux* } }
+// { dg-add-options no_pch }
+
+#define _FORTIFY_SOURCE 2
+// Now we can define the macros to poison uses of non-reserved names:
+#include "names.cc"
--
2.46.2
More information about the Gcc-patches
mailing list