Ignore -Wrestrict for one strncat test.

With current GCC mainline, one strncat test involving a size close to
SIZE_MAX results in a -Wrestrict warning that that buffer size would
imply that the two buffers must overlap.  This patch fixes the build
by adding disabling of -Wrestrict (for GCC versions supporting that
option) to the already-present disabling of -Wstringop-overflow= and
-Warray-bounds for this test.

Tested with build-many-glibcs.py that this restores the testsuite
build with GCC mainline for aarch64-linux-gnu.

	* string/tester.c (test_strncat) [__GNUC_PREREQ (7, 0)]: Also
	ignore -Wrestrict for one test.
This commit is contained in:
Joseph Myers 2018-06-14 14:20:00 +00:00
parent 3c7b9f1fc3
commit 35ebb6b0c4
2 changed files with 9 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2018-06-14 Joseph Myers <joseph@codesourcery.com>
* string/tester.c (test_strncat) [__GNUC_PREREQ (7, 0)]: Also
ignore -Wrestrict for one test.
2018-06-14 Steve Ellcey <sellcey@caviumnetworks.com> 2018-06-14 Steve Ellcey <sellcey@caviumnetworks.com>
Szabolcs Nagy <szabolcs.nagy@arm.com> Szabolcs Nagy <szabolcs.nagy@arm.com>

View File

@ -485,6 +485,10 @@ test_strncat (void)
deliberately tested here; GCC 8 gives a -Warray-bounds deliberately tested here; GCC 8 gives a -Warray-bounds
warning about this. */ warning about this. */
DIAG_IGNORE_NEEDS_COMMENT (7, "-Wstringop-overflow="); DIAG_IGNORE_NEEDS_COMMENT (7, "-Wstringop-overflow=");
/* GCC 9 as of 2018-06-14 warns that the size passed is
large enough that, if it were the actual object size,
the objects would have to overlap. */
DIAG_IGNORE_NEEDS_COMMENT (9, "-Wrestrict");
#endif #endif
DIAG_IGNORE_NEEDS_COMMENT (8, "-Warray-bounds"); DIAG_IGNORE_NEEDS_COMMENT (8, "-Warray-bounds");
check (strncat (buf1 + n2, buf2 + n1, ~((size_t) 0) - n4) check (strncat (buf1 + n2, buf2 + n1, ~((size_t) 0) - n4)