https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93121
--- Comment #12 from Wilhelm M <klaus.doldinger64 at googlemail dot com> ---
The following does not work:
# include <cstdint>
# include <cstring>
# include <cstddef>
# include <bit>
# include <array>
using to_t = std::array<int16_t, 2>;
int main() {
constexpr std::byte from1[4]{};
constexpr auto v1 = std::bit_cast<to_t>(from1);
return v1[0];
}
gives:
/usr/local/include/c++/11.0.0/bit: In function 'int main()':
/home/lmeier/Projekte/wmucpp/host/test88.cc:11:50: in 'constexpr' expansion
of 'std::bit_cast<std::array<short int, 2>, std::byte [4]>(from1)'
/usr/local/include/c++/11.0.0/bit:60:33: sorry, unimplemented:
'__builtin_bit_cast' cannot be constant evaluated because the argument cannot
be encoded
60 | return __builtin_bit_cast(_To, __from);
| ^~~