2 ms·
> I would say that that transformation is legal, it doesn't even involve pointers. you don't know that void b() isn't implemented as void b() { int
by jcelerier 5y ago
> I would say that that transformation is legal, it doesn't even involve pointers.
you don't know that void b() isn't implemented as
void b() {
int* ptr = make_a_valid_pointer_from_an_integer(1638541351);
*ptr = 10;
}
with 1638541351 sometimes being the address of x above ?
- lerno 5y agoCould another approach be taken, where local variables are considered implicitly “register”? In that case this simple example has no problem whatsoever. It does arise unnecessarily if the address of a local is taken but does not escape, but that ought to be rare.