Andreas Schwab <sch...@linux-m68k.org> wrote: > On Okt 19 2019, Iain Sandoe <i...@sandoe.co.uk> wrote: > >> This test has failed always on Darwin, because Darwin does not mark >> entries in string.h with nonnull attributes. Since the purpose of the test >> is to check that the warnings are issued for an inlined function, not that >> the target headers are marked up, we can provide locally marked up >> function declarations for Darwin. > > If the test depends on the non-std declarations, then it should use them > everywhere.
from my perspective, agreed, Martin? >> diff --git a/gcc/testsuite/gcc.dg/Wnonnull.c >> b/gcc/testsuite/gcc.dg/Wnonnull.c >> index be89a5a755..a165baa99f 100644 >> --- a/gcc/testsuite/gcc.dg/Wnonnull.c >> +++ b/gcc/testsuite/gcc.dg/Wnonnull.c >> @@ -2,7 +2,16 @@ >> { dg-do compile } >> { dg-options "-O2 -Wall" } */ >> >> +#ifndef __APPLE__ >> #include <string.h> >> +#else >> +/* OSX headers do not mark up the nonnull elements yet. */ >> +# include <stddef.h> >> +extern size_t strlen (const char *__s) >> + __attribute ((pure)) __attribute ((nonnull (1))); >> +extern void *memcpy (void *__restrict __dest, const void *__restrict __src, >> + size_t __n) __attribute ((nonnull (1, 2))); >> +#endif > > Perhaps use __SIZE_TYPE__ instead of #include <stddef.h>? if we make the definitions generic, then this would avoid any header includes. Iain