Re:“C is quirky, flawed, and an enormous success” – Dennis R...
by adwn on Sunday July 09, 2023 @02:22PM
(#36657325)
> Casting an integer to a pointer is implementation defined, not UB.
You're right, that was a bad example. Here's a better one:
int x, y;
ptrdiff_t diff = &x - &y;
This is Undefined Behavior, because &x and &y don't point to the same object.
And every sane implementation does what everyone expects because its how memory mapped IO works (but you probably want a volatile in there and maybe a compiler or memory barrier as well depending on what the hardware guarantees about the access patterns for that particular range of addresses)