This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Work around GCC 10 warning regression in string/tester.c
- From: Joseph Myers <joseph at codesourcery dot com>
- To: <libc-alpha at sourceware dot org>
- Date: Tue, 1 Oct 2019 21:50:19 +0000
- Subject: Work around GCC 10 warning regression in string/tester.c
- Ironport-sdr: o46B6JBUOLSbj7MlNqrAYp2NQezdY42fd8gNM6Lh/BN+B2jQjgthwWqNvzjKkG9xcMGapDKuOV 05evHB7Kyfbk4BTjn/ZMIiZhlitbiz1+jk1SSVc9p+xnmOmmONLWtDXrdHrAuCnwgqNd0OOYqV +zT8bBFBlHLcOu2Pp1pP7kl23JsaZCVd7PsKtQh0WJHhES2VA84AnSKB+xTMB4fp+VIhgXlbKx 4C3MiVsa/yj8Zy+wts12D1uK6DxA4QX0yfR6T+K2O1Y21ap8X4jFB6bYlvi8DmPdp21xWOvi8g +6I=
- Ironport-sdr: k5Zb3nFY3l3qOjjJqGs4Ks0zMcr6LsWdQKdWwNzbdcL6JsmdlzWf1wyF3y8ZH8HbC4XMVSePQt oFlr2OEkd25dCP8CVjasUfgRjGLv3OSd3v84Llgxy4c+2K8wLMEgmFmo7vHKrTXxDL5IreJQhk cO/UOOj3p2+OvA0eQeb33zKhWcJoMFi7U1I4SjOhZhW7R0aCxJxLB8/wH9fgrGiF2GTQ9qhn7C sadRW7nJDtptVo3mlM1WhO3FZRuJ5DHxSbUTGUcU1Vqh20RqZFp4D0g1ro0cyNc8x7cw1Fs5Me pZA=
string/tester.c contains code that correctly triggers various GCC
warnings about dubious uses of string functions (uses that are being
deliberately tested there), and duly disables those warnings around
the relevant code.
A change in GCC mainline resulted in this code failing to compile with
a -Warray-bounds error, despite the location with the error having
-Warray-bounds already disabled. This has been reported as
<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91890>. Since this
doesn't look like being fixed soon, and to keep regression testing
with GCC mainline useful rather than potentially covering up other
issues that might be appearing, this patch adds -Warray-bounds
disabling for a larger region of code that does suffice to avoid the
problem warning. This is on the basis that this would be removed if
the regression is fixed before GCC 10 is released.
Tested with build-many-glibcs.py for aarch64-linux-gnu with GCC
mainline.
2019-10-01 Joseph Myers <joseph@codesourcery.com>
* string/tester.c (test_strncat) [__GNUC_PREREQ (10, 0)]: Ignore
-Warray-bounds for more of the function.
---
Any comments on either the patch itself or the principle of working
around such issues in glibc to allow more effective testing if not
fixed quickly in GCC?
diff --git a/string/tester.c b/string/tester.c
index 24b0dad1cb..9350538996 100644
--- a/string/tester.c
+++ b/string/tester.c
@@ -359,6 +359,14 @@ test_strncat (void)
/* First test it as strcat, with big counts, then test the count
mechanism. */
it = "strncat";
+#if __GNUC_PREREQ (10, 0)
+ DIAG_PUSH_NEEDS_COMMENT;
+ /* A regression in GCC 10
+ <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91890>, present as
+ of 2019-10-01, means this warning needs to be disabled around
+ more code than just the relevant strncat call. */
+ DIAG_IGNORE_NEEDS_COMMENT (8, "-Warray-bounds");
+#endif
(void) strcpy (one, "ijk");
DIAG_PUSH_NEEDS_COMMENT;
#if __GNUC_PREREQ (7, 0)
@@ -394,6 +402,10 @@ test_strncat (void)
DIAG_IGNORE_NEEDS_COMMENT (8, "-Warray-bounds");
(void) strncat (one, two, 99);
DIAG_POP_NEEDS_COMMENT;
+#if __GNUC_PREREQ (10, 0)
+ /* See the comment above about a regression in GCC 10. */
+ DIAG_POP_NEEDS_COMMENT;
+#endif
equal (one, "ghef", 5); /* Basic test encore. */
equal (two, "ef", 6); /* Stomped on source? */
--
Joseph S. Myers
joseph@codesourcery.com