Re: ISO C3X proposal: nonnull qualifier

2021-12-02 Thread Joseph Myers
On Thu, 2 Dec 2021, Alejandro Colomar (man-pages) via Gcc wrote: > So, now this can be made non-flow-sensitive, which was a big concern. And now > the biggest concern I can see is that this qualifier works opposite to const > (here discarding is allowed but not adding it), and that is contrary to

Re: ISO C3X proposal: nonnull qualifier

2021-12-02 Thread Alejandro Colomar (man-pages) via Gcc
On 12/2/21 21:24, Alejandro Colomar (man-pages) wrote: #define nonnull_assign(nn, p) \ ({    \     auto p_  = p; \     auto nn_ = nn;    \

Re: ISO C3X proposal: nonnull qualifier

2021-12-02 Thread Alejandro Colomar (man-pages) via Gcc
On 11/16/21 13:34, Alejandro Colomar (man-pages) wrote: $ cat _Nonnull.c #include int *_Nonnull f(int *_Nullable p) { if (!p)     exit(1); return p; } int *_Nonnull g(int *_Null_unspecified p) { return p; } int *_Nonnull h(int *p) { return p; } int *_Nullable i(in

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

2021-12-01 Thread Alejandro Colomar (man-pages) via Gcc
Hi Dmitri On 12/2/21 01:39, Dmitri Gribenko wrote: Pre-C3X headers won't work correctly when included in C3X programs, making incremental adoption of C3X syntax, as it was intended to be used, impossible. Projects would likely invent a NULLABLE macro, which would expand to _Nullable in C3X and n

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

2021-12-01 Thread Dmitri Gribenko via Gcc
Hi Alejandro, On Wed, Dec 1, 2021 at 11:24 PM Alejandro Colomar (man-pages) wrote: > On 11/23/21 13:45, Dmitri Gribenko wrote: > > If I were to speculate what would happen if C3X did flip the default, > > I think it would be treated by the community as a language fork. > > Yes > > > Pre-C3X heade

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

2021-12-01 Thread Alejandro Colomar (man-pages) via Gcc
Hi Dmitry, On 11/23/21 13:45, Dmitri Gribenko wrote: >> >> Let's imagine a scenario where C3X specifies that non-qualified pointers >> are nonnull. And there's only a qualifier, _Nullable, to allow NULL. >> Asigning _Nullable to nonnull would issue a diagnostic. > > I think C3X specifying that n

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

2021-11-23 Thread Dmitri Gribenko via Gcc
Hi Alejandro, On Tue, Nov 23, 2021 at 12:45 PM Alejandro Colomar (man-pages) wrote: > > Hi Dmitry, > > On 11/23/21 12:17, Dmitri Gribenko wrote: > > Hi Alejandro, > > > > On Tue, Nov 16, 2021 at 1:34 PM Alejandro Colomar (man-pages) via > > cfe-dev wrote: > >> First of all, > >> I see unnecessar

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

2021-11-23 Thread Alejandro Colomar (man-pages) via Gcc
Hi Dmitry, On 11/23/21 12:17, Dmitri Gribenko wrote: Hi Alejandro, On Tue, Nov 16, 2021 at 1:34 PM Alejandro Colomar (man-pages) via cfe-dev wrote: First of all, I see unnecessary (probably over-engineered) qualifiers: - _Null_unspecified seems to me the same as nothing. If I didn't specify

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

2021-11-23 Thread Dmitri Gribenko via Gcc
Hi Alejandro, On Wed, Nov 17, 2021 at 1:06 AM Alejandro Colomar (man-pages) via cfe-dev wrote: > On 11/16/21 13:34, Alejandro Colomar (man-pages) wrote: > > $ cat _Nonnull.c > > #include > > > > int *_Nonnull f(int *_Nullable p) > > { > > if (!p) > > exit(1); > > return p; > >

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

2021-11-23 Thread Dmitri Gribenko via Gcc
Hi Alejandro, On Tue, Nov 16, 2021 at 1:34 PM Alejandro Colomar (man-pages) via cfe-dev wrote: > First of all, > I see unnecessary (probably over-engineered) qualifiers: > > - _Null_unspecified seems to me the same as nothing. > If I didn't specify its nullability, > it's by definition unspecifie

Ping: ISO C3X proposal: nonnull qualifier

2021-11-20 Thread Alejandro Colomar (man-pages) via Gcc
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:

Re: ISO C3X proposal: nonnull qualifier

2021-11-16 Thread Alejandro Colomar (man-pages) via Gcc
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: I have a few questions for you. See below, please. On

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

2021-11-16 Thread Arthur O'Dwyer via Gcc
On Tue, Nov 16, 2021 at 4:31 AM Jonathan Wakely via cfe-dev < cfe-...@lists.llvm.org> wrote: > On Mon, 15 Nov 2021, 21:15 Alejandro Colomar (man-pages) > wrote: > >> Also, I'm curious, do you do those diffs usually by hand? >> > > Yes. Just highlight text in red and green, with strike through or

Re: ISO C3X proposal: nonnull qualifier

2021-11-16 Thread Alejandro Colomar (man-pages) via Gcc
Hi Joseph, On 11/15/21 23:47, Joseph Myers wrote: On Mon, 15 Nov 2021, Alejandro Colomar (man-pages) via Gcc wrote: Hi Joseph, On 11/15/21 23:17, Joseph Myers wrote: On Mon, 15 Nov 2021, Alejandro Colomar (man-pages) via Gcc wrote: How is restrict handling that problem of lvalue-to-rvalue

Re: ISO C3X proposal: nonnull qualifier

2021-11-16 Thread Jonathan Wakely via Gcc
On Mon, 15 Nov 2021, 21:15 Alejandro Colomar (man-pages) wrote: > My intention is that the final PDF to be sent to the committee > will have those diffs. > But I have no clue of how to do that kind of things, > so for an initial draft to discuss on, > before even presenting it to the committee, >

Re: ISO C3X proposal: nonnull qualifier

2021-11-15 Thread Joseph Myers
On Mon, 15 Nov 2021, Alejandro Colomar (man-pages) via Gcc wrote: > Hi Joseph, > > On 11/15/21 23:17, Joseph Myers wrote: > > On Mon, 15 Nov 2021, Alejandro Colomar (man-pages) via Gcc wrote: > > > > > How is restrict handling that problem of lvalue-to-rvalue already? > > > > restrict has trick

Re: ISO C3X proposal: nonnull qualifier

2021-11-15 Thread Alejandro Colomar (man-pages) via Gcc
Hi Joseph, On 11/15/21 23:17, Joseph Myers wrote: On Mon, 15 Nov 2021, Alejandro Colomar (man-pages) via Gcc wrote: How is restrict handling that problem of lvalue-to-rvalue already? restrict has tricky rules about "based on" (6.7.3.1). Hmm, I think I can "base on" that, to define what I h

Re: ISO C3X proposal: nonnull qualifier

2021-11-15 Thread Joseph Myers
On Mon, 15 Nov 2021, Alejandro Colomar (man-pages) via Gcc wrote: > How is restrict handling that problem of lvalue-to-rvalue already? restrict has tricky rules about "based on" (6.7.3.1). -- Joseph S. Myers jos...@codesourcery.com

Re: ISO C3X proposal: nonnull qualifier

2021-11-15 Thread Alejandro Colomar (man-pages) via Gcc
Hi Joseph, On 11/15/21 21:18, Joseph Myers wrote: lvalue-to-rvalue conversion loses qualifiers, which makes any rules based on whether the RHS of an assignment was nonnull-qualified very problematic. (The specification of restrict is exceedingly tricky and very unlikely to be a good basis for s

Re: ISO C3X proposal: nonnull qualifier

2021-11-15 Thread Joseph Myers
lvalue-to-rvalue conversion loses qualifiers, which makes any rules based on whether the RHS of an assignment was nonnull-qualified very problematic. (The specification of restrict is exceedingly tricky and very unlikely to be a good basis for specifying any other feature.) I don't think a man

Re: ISO C3X proposal: nonnull qualifier

2021-11-15 Thread Alejandro Colomar (man-pages) via Gcc
Hi, On 11/15/21 5:01 PM, Alejandro Colomar (man-pages) wrote: > Hi all, > > I'd like to propose the following feature for ISO C (and also ISO C++). > It is based on a mix of GCC's [[gnu::nonnull]] and Clang's _Nonnull, > with a pinch of salt of mine. > > I'd like to get some feedback from GCC an

ISO C3X proposal: nonnull qualifier

2021-11-15 Thread Alejandro Colomar (man-pages) via Gcc
Hi all, I'd like to propose the following feature for ISO C (and also ISO C++). It is based on a mix of GCC's [[gnu::nonnull]] and Clang's _Nonnull, with a pinch of salt of mine. I'd like to get some feedback from GCC and Clang, before sending it as an official proposal. BTW, since the working g