https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98193
G. Steinmetz <gs...@t-online.de> changed: What |Removed |Added ---------------------------------------------------------------------------- Target| |x86_64-pc-linux-gnu --- Comment #1 from G. Steinmetz <gs...@t-online.de> --- $ cat z2.C template <typename To, typename From> constexpr To bit_cast (const From &from) { return __builtin_bit_cast (To, from); } struct J { long long int a, b : 11, h; }; struct K { long int a, b, c; constexpr bool operator == (K x) { return x.a; } }; static_assert (bit_cast <K> (J{0x0feedbacdeadbeefLL}) == K{0x0feedbacdeadbeefLL}, ""); $ g++-11-20201206 -c z2.C z2.C:19:53: in 'constexpr' expansion of 'bit_cast<K, J>(J{1148096490542841583})' z2.C:19:86: internal compiler error: in native_encode_initializer, at fold-const.c:8424 19 | static_assert (bit_cast <K> (J{0x0feedbacdeadbeefLL}) == K{0x0feedbacdeadbeefLL}, ""); | ^ 0x9b388c native_encode_initializer(tree_node*, unsigned char*, int, int, unsigned char*) ../../gcc/fold-const.c:8424 0x6819e8 cxx_eval_bit_cast ../../gcc/cp/constexpr.c:4105 0x6819e8 cxx_eval_constant_expression ../../gcc/cp/constexpr.c:6894 0x686678 cxx_eval_store_expression ../../gcc/cp/constexpr.c:5397 0x67f47a cxx_eval_constant_expression ../../gcc/cp/constexpr.c:6217 0x67e8dd cxx_eval_constant_expression ../../gcc/cp/constexpr.c:6229 0x67ef8e cxx_eval_constant_expression ../../gcc/cp/constexpr.c:6286 0x67db44 cxx_eval_call_expression ../../gcc/cp/constexpr.c:2692 0x67f20a cxx_eval_constant_expression ../../gcc/cp/constexpr.c:6108 0x68167d cxx_eval_constant_expression ../../gcc/cp/constexpr.c:6196 0x67edb5 cxx_eval_constant_expression ../../gcc/cp/constexpr.c:6335 0x67c4f7 cxx_bind_parameters_in_call ../../gcc/cp/constexpr.c:1594 0x67c4f7 cxx_eval_call_expression ../../gcc/cp/constexpr.c:2524 0x67f20a cxx_eval_constant_expression ../../gcc/cp/constexpr.c:6108 0x68215b cxx_eval_outermost_constant_expr ../../gcc/cp/constexpr.c:7117 0x684ddc maybe_constant_value(tree_node*, tree_node*, bool) ../../gcc/cp/constexpr.c:7372 0x7a06cd finish_static_assert(tree_node*, tree_node*, unsigned int, bool, bool) ../../gcc/cp/semantics.c:9918 0x726de4 cp_parser_static_assert ../../gcc/cp/parser.c:14992 0x75846a cp_parser_declaration ../../gcc/cp/parser.c:13692 0x758d5a cp_parser_translation_unit ../../gcc/cp/parser.c:4806