On Fri, Jul 05, 2024 at 08:52:30PM +0100, Jonathan Wakely wrote:
> On Fri, 5 Jul 2024 at 20:47, Alejandro Colomar <[email protected]> wrote:
> >
> > Here's 153 in N3047:
>
> That draft is nearly two years old.
>
> >
> > 153) An implementation can delay the choice of which integer type until
> > all enumeration constants have been seen.
> >
> > which seems completely unrelated.
>
> Because you're looking at a draft from nearly two years ago. Try N3220.
That is 6.7.3.1p3:
In what follows, a pointer expression E is said to be based on object P
if (at some sequence point in the execution of B prior to the
evaluation of E) modifying P to point to a copy of the array object
into which it formerly pointed would change the value of E.153) Note
that "based" is defined only for expressions with pointer types.
Footnote 153) In other words, E depends on the value of P itself rather
than on the value of an object referenced indirectly through P. For
example, if identifier p has type (int **restrict), then the pointer
expressions p and p+1 are based on the restricted pointer object
designated by p, but the pointer expressions *p and p[1] are not.
Which would be the same paragraph of the same section on N3047, but
footnote number 168.
o/
emanuele6