[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