aboutsummaryrefslogtreecommitdiff
path: root/string
diff options
context:
space:
mode:
authorAdhemerval Zanella Netto <adhemerval.zanella@linaro.org>2023-07-21 09:18:17 -0300
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2023-07-24 15:26:17 -0300
commitc2dc8ab6a5a4e67f96ddd3f6bfdf2c991385ec38 (patch)
treeb234bb8e1be55c408188d848a1c69a19fc0ba735 /string
parent85ac7edcdf67010c223541936243427213ac87a6 (diff)
downloadglibc-c2dc8ab6a5a4e67f96ddd3f6bfdf2c991385ec38.zip
glibc-c2dc8ab6a5a4e67f96ddd3f6bfdf2c991385ec38.tar.gz
glibc-c2dc8ab6a5a4e67f96ddd3f6bfdf2c991385ec38.tar.bz2
string: Fix tester with fortify enabled
If fortify is enabled, the truncated output warning is issued by the wrapper itself: In function ‘strncpy’, inlined from ‘test_strncpy’ at tester.c:505:10: ../string/bits/string_fortified.h:95:10: error: ‘__builtin_strncpy’ destination unchanged after copying no bytes from a string of length 3 [-Werror=stringop-truncation] 95 | return __builtin___strncpy_chk (__dest, __src, __len, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 96 | __glibc_objsize (__dest)); | ~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../include/bits/string_fortified.h:1, from ../string/string.h:548, from ../include/string.h:60, from tester.c:33, from inl-tester.c:6: In function ‘strncpy’, inlined from ‘test_strncpy’ at tester.c:505:10: Checked on x86_64-linux-gnu. Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Diffstat (limited to 'string')
-rw-r--r--string/tester.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/string/tester.c b/string/tester.c
index 8de70ad..da42c72 100644
--- a/string/tester.c
+++ b/string/tester.c
@@ -26,6 +26,14 @@
#undef __USE_STRING_INLINES
#endif
+#include <sys/cdefs.h>
+#include <libc-diag.h>
+
+/* Triggered by strncpy fortify wrapper when it is enabled. */
+#if __GNUC_PREREQ (8, 0)
+DIAG_IGNORE_NEEDS_COMMENT (8, "-Wstringop-truncation");
+#endif
+
#include <errno.h>
#include <stdint.h>
#include <stdio.h>
@@ -33,7 +41,6 @@
#include <string.h>
#include <strings.h>
#include <fcntl.h>
-#include <libc-diag.h>
/* This file tests a range of corner cases of string functions,
including cases where truncation occurs or where sizes specified
@@ -45,9 +52,6 @@ DIAG_IGNORE_NEEDS_COMMENT (5.0, "-Wmemset-transposed-args");
DIAG_IGNORE_NEEDS_COMMENT (9, "-Wrestrict");
DIAG_IGNORE_NEEDS_COMMENT (7, "-Wstringop-overflow=");
#endif
-#if __GNUC_PREREQ (8, 0)
-DIAG_IGNORE_NEEDS_COMMENT (8, "-Wstringop-truncation");
-#endif
#if __GNUC_PREREQ (11, 0)
DIAG_IGNORE_NEEDS_COMMENT (11, "-Wstringop-overread");
#endif