On Fri, Jul 05, 2024 at 08:52:30PM +0100, Jonathan Wakely wrote: > On Fri, 5 Jul 2024 at 20:47, Alejandro Colomar <alx@xxxxxxxxxx> 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