| ▲ | dmitrygr 3 hours ago | |
I do not see there a promise that the cast will produce an invalid pointer, nor anything prohibiting the compiler from rounding the pointer down, thus producing a valid one. “Converted” does not require bit copy. I don’t see how this interpretation is against any section of the spec. | ||
| ▲ | dwattttt 2 hours ago | parent | next [-] | |
I also do not see any requirement in the quoted text that the casted pointer be dereferenced before noting "the behavior is undefined". In practice performing a cast doesn't really do much until you dereference, but without a carve out in the spec, it does really mean "the behavior is undefined". | ||
| ▲ | 3 hours ago | parent | prev | next [-] | |
| [deleted] | ||
| ▲ | pjc50 2 hours ago | parent | prev | next [-] | |
> rounding the pointer down, thus producing a valid one A "valid" pointer to the wrong object? | ||
| ▲ | cyclopeanutopia 3 hours ago | parent | prev [-] | |
> Otherwise, when converted back again, the result shall compare equal to the original pointer. Doesn't this part exclude the possibility of rounding down? | ||