mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-08 14:20:07 +00:00
Disable -Wrestrict for two nptl/tst-attr3.c tests.
nptl/tst-attr3 fails to build with GCC mainline because of (deliberate) aliasing between the second (attributes) and fourth (argument to thread start routine) arguments to pthread_create. Although both those arguments are restrict-qualified in POSIX, pthread_create does not actually dereference its fourth argument; it's an opaque pointer passed to the thread start routine. Thus, the aliasing is actually valid in this case, and it's deliberate in the test. So this patch makes the test disable -Wrestrict for the two pthread_create calls in question. (-Wrestrict was added in GCC 7, hence the __GNUC_PREREQ conditions, but the particular warning in question is new in GCC 8.) Tested compilation with build-many-glibcs.py for aarch64-linux-gnu. * nptl/tst-attr3.c: Include <libc-diag.h>. (do_test) [__GNUC_PREREQ (7, 0)]: Ignore -Wrestrict for two tests.
This commit is contained in:
parent
5983df320a
commit
40c4162df6
@ -1,5 +1,8 @@
|
||||
2017-12-18 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* nptl/tst-attr3.c: Include <libc-diag.h>.
|
||||
(do_test) [__GNUC_PREREQ (7, 0)]: Ignore -Wrestrict for two tests.
|
||||
|
||||
* posix/tst-glob_symlinks.c (do_test): Increase size of buf.
|
||||
|
||||
* string/tester.c (test_strncat): Also disable -Warray-bounds
|
||||
|
@ -26,6 +26,7 @@
|
||||
#include <unistd.h>
|
||||
|
||||
#include <stackinfo.h>
|
||||
#include <libc-diag.h>
|
||||
|
||||
static void *
|
||||
tf (void *arg)
|
||||
@ -362,7 +363,16 @@ do_test (void)
|
||||
result = 1;
|
||||
}
|
||||
|
||||
DIAG_PUSH_NEEDS_COMMENT;
|
||||
#if __GNUC_PREREQ (7, 0)
|
||||
/* GCC 8 warns about aliasing of the restrict-qualified arguments
|
||||
passed &a. Since pthread_create does not dereference its fourth
|
||||
argument, this aliasing, which is deliberate in this test, cannot
|
||||
in fact cause problems. */
|
||||
DIAG_IGNORE_NEEDS_COMMENT (8, "-Wrestrict");
|
||||
#endif
|
||||
err = pthread_create (&th, &a, tf, &a);
|
||||
DIAG_POP_NEEDS_COMMENT;
|
||||
if (err)
|
||||
{
|
||||
error (0, err, "pthread_create #2 failed");
|
||||
@ -388,7 +398,16 @@ do_test (void)
|
||||
result = 1;
|
||||
}
|
||||
|
||||
DIAG_PUSH_NEEDS_COMMENT;
|
||||
#if __GNUC_PREREQ (7, 0)
|
||||
/* GCC 8 warns about aliasing of the restrict-qualified arguments
|
||||
passed &a. Since pthread_create does not dereference its fourth
|
||||
argument, this aliasing, which is deliberate in this test, cannot
|
||||
in fact cause problems. */
|
||||
DIAG_IGNORE_NEEDS_COMMENT (8, "-Wrestrict");
|
||||
#endif
|
||||
err = pthread_create (&th, &a, tf, &a);
|
||||
DIAG_POP_NEEDS_COMMENT;
|
||||
if (err)
|
||||
{
|
||||
error (0, err, "pthread_create #3 failed");
|
||||
|
Loading…
Reference in New Issue
Block a user