[PATCH] D62825: [C++2a] Add __builtin_bit_cast, used to implement std::bit_cast
John McCall via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Jun 13 11:32:42 PDT 2019
rjmccall added a comment.
In D62825#1542301 <https://reviews.llvm.org/D62825#1542301>, @rsmith wrote:
> In D62825#1542247 <https://reviews.llvm.org/D62825#1542247>, @rjmccall wrote:
>
> > In what sense is the bit-pattern of a null pointer indeterminate?
>
>
> The problem is not null pointers, it's `nullptr_t`, which is required to have the same size and alignment as `void*` but which comprises only padding bits. (Loads of `nullptr_t` are not even permitted to touch memory...).
I mean, I know this is C++ and the committee loves tying itself in knots to make the language unnecessarily unusable, but surely the semantics of bitcasting an r-value of type `nullptr_t` are intended to be equivalent to bitcasting an r-value of type `void*` that happens to be a null pointer.
Repository:
rC Clang
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D62825/new/
https://reviews.llvm.org/D62825
More information about the cfe-commits
mailing list