[Bug c++/98193] [11 Regression] ICE in native_encode_initializer, at fold-const.c:8454/8424

gscfq@t-online.de gcc-bugzilla@gcc.gnu.org
Tue Dec 8 09:31:40 GMT 2020


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98193

G. Steinmetz <gscfq@t-online.de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Target|                            |x86_64-pc-linux-gnu

--- Comment #1 from G. Steinmetz <gscfq@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


More information about the Gcc-bugs mailing list