[cfe-dev] Ping: ISO C3X proposal: nonnull qualifier

Alejandro Colomar (man-pages) via cfe-dev cfe-dev at lists.llvm.org
Sat Nov 20 08:47:28 PST 2021


Ping

On 11/17/21 01:06, Alejandro Colomar (man-pages) wrote:
> Hi,
> 
> Sorry for Clang people,
> when I started this thread,
> I wasn't subscribed to your list,
> and some messages are not on your list.
> You can find the complete thread on the GCC list:
> <https://gcc.gnu.org/pipermail/gcc/2021-November/237743.html>
> 
> I have a few questions for you.
> See below, please.
> 
> On 11/16/21 13:34, Alejandro Colomar (man-pages) wrote:
>> $ cat _Nonnull.c
>> #include <stdlib.h>
>>
>> int *_Nonnull f(int *_Nullable p)
>> {
>>      if (!p)
>>          exit(1);
>>      return p;
>> }
>>
>>
>> - I get a warning from f().
>>    Ideally,
>>    a programmer should not need to cast
>>    (casts are dangerous),
>>    to convert a nullable pointer to a _Nonnull pointer.
>>    For that,
>>    appropriate checks should be in the preceeding code.
>>    Otherwise, a diagnostic should be issued.
>>    To be on the safe side,
>>    if a compiler has doubts,
>>    it should diagnose.
>>
>>    There's some Clang document that talks about something similar.
>>    I don't know its validity,
>>    or if it was a draft before _Nonnull qualifiers.
>>    <https://clang.llvm.org/docs/analyzer/developer-docs/nullability.html>
> 
> That document suggests that I shouldn't get a diagnostic from f().
> Why did I get a diagnostic?  (I tried clang 11, 13 & 14(experimental))
> 
> 
> Is it talking about a different nonnull attribute/qualifier?
> Was it about a proposal prior to the current _Nonnull?
> Why is it not in use?  Was it too difficult to implement?
> 
> 
> Do you think Clang could be improved to not warn on f()?
> 
> 
> Thanks,
> Alex
> 

-- 
Alejandro Colomar
Linux man-pages comaintainer; http://www.kernel.org/doc/man-pages/
http://www.alejandro-colomar.es/


More information about the cfe-dev mailing list