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

Reply via email to