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

--- Comment #1 from Drea Pinski <pinskia at gcc dot gnu.org> ---
Created attachment 64384
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=64384&action=edit
testcase from goldbolt

Next time please attach the testcase rather than just link to
https://godbolt.org/.


The error message from godbolt:
<source>: In instantiation of 'consteval raw_object<T>
raw_object<T>::operator+(const std::array<unsigned char, size_of_data>&) const
[with T = Enum_wrapper<main()::A, Not_base>]':
<source>:247:11:   required from 'static consteval N_t
generator_and_reader_infrustructor<domain>::sequential_count<instance,
obj_instance, minus_by, N_t, N, search_or_asked>::get_num() [with typename
multiply_by_t::type plus_with =
config_of_screws_in_the_engine<raw_object<Enum_wrapper<main()::A, Not_base> >,
1>::type{"\001\000\000\000\000\000\000"}; long unsigned int b_ = 10; long
unsigned int instance = 2; long unsigned int obj_instance = 0; long unsigned
int minus_by = 1; N_t = raw_object<Enum_wrapper<main()::A, Not_base> >; N_t N =
raw_object<Enum_wrapper<main()::A, Not_base> >{Enum_wrapper<main()::A,
Not_base>{0, main::Enum_t::voilet}}; bool search_or_asked = false; long
unsigned int domain = 0]'
  247 |         return (N+M)-minus_by_global;
      |                ~~^~~
<source>:368:99:   required from 'struct
Enum_wrapper_complete<Enum_wrapper<main()::A, Not_base>, 0>'
  368 |     return N_t{sequential_count<instance, obj_instance, minus_by, N_t,
N, false>::template get_num()};
      |               
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
<source>:428:30:   required from here
  428 |         Enum_wrapper_complete wrap{B};
      |                                     ^
<source>:409:118:   in 'constexpr' expansion of
'generator_and_reader_infrustructor<0>::get_num<2, 0, 1,
raw_object<Enum_wrapper<main()::A, Not_base> >,
raw_object<Enum_wrapper<main()::A, Not_base> >{Enum_wrapper<main()::A,
Not_base>{0, main::Enum_t::voilet}}>()'
  408 |     domain::
      |     ~~~~~~~~                                                            
  409 |     get_num<2+N, get_num_anonymous<N+1, enum_object_change_id_gen,
minus_by_to_get_last>(), minus_by_to_get_last, T >().obj_stored
      |    
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
<source>:316:133:   in 'constexpr' expansion of
'return_addition<raw_object<Enum_wrapper<main()::A, Not_base> >,
std::array<unsigned char, 8>, raw_object<Enum_wrapper<main()::A, Not_base>
>{Enum_wrapper<main()::A, Not_base>{0, main::Enum_t::voilet}},
config_of_screws_in_the_engine<raw_object<Enum_wrapper<main()::A, Not_base> >,
1>::type{"\001\000\000\000\000\000\000"}>()'
  316 |                         if(exist<sequential_count, instance,
obj_instance, minus_by, N_t, (return_addition<N_t,typename
multiply_by_t::type,N, plus_with>()), true>::template does() ||
      |                                                                        
                 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
<source>:81:117: warning: pointer of type 'void *' used in arithmetic
[-Wpointer-arith]
   81 |                         unsigned char result=  N[i] + *( 
static_cast<unsigned char*>(static_cast<void*>(raw_object)+i)  ) + carry;
      |                                                                        
              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
<source>: In instantiation of 'static consteval N_t
generator_and_reader_infrustructor<domain>::sequential_count<instance,
obj_instance, minus_by, N_t, N, search_or_asked>::get_num() [with typename
multiply_by_t::type plus_with =
config_of_screws_in_the_engine<raw_object<Enum_wrapper<main()::A, Not_base> >,
1>::type{"\001\000\000\000\000\000\000"}; long unsigned int b_ = 10; long
unsigned int instance = 2; long unsigned int obj_instance = 0; long unsigned
int minus_by = 1; N_t = raw_object<Enum_wrapper<main()::A, Not_base> >; N_t N =
raw_object<Enum_wrapper<main()::A, Not_base> >{Enum_wrapper<main()::A,
Not_base>{0, main::Enum_t::voilet}}; bool search_or_asked = false; long
unsigned int domain = 0]':
<source>:368:99:   required from 'struct
Enum_wrapper_complete<Enum_wrapper<main()::A, Not_base>, 0>'
  368 |     return N_t{sequential_count<instance, obj_instance, minus_by, N_t,
N, false>::template get_num()};
      |               
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
<source>:428:30:   required from here
  428 |         Enum_wrapper_complete wrap{B};
      |                                     ^
<source>:409:118:   in 'constexpr' expansion of
'generator_and_reader_infrustructor<0>::get_num<2, 0, 1,
raw_object<Enum_wrapper<main()::A, Not_base> >,
raw_object<Enum_wrapper<main()::A, Not_base> >{Enum_wrapper<main()::A,
Not_base>{0, main::Enum_t::voilet}}>()'
  408 |     domain::
      |     ~~~~~~~~                                                            
  409 |     get_num<2+N, get_num_anonymous<N+1, enum_object_change_id_gen,
minus_by_to_get_last>(), minus_by_to_get_last, T >().obj_stored
      |    
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
<source>:316:133:   in 'constexpr' expansion of
'return_addition<raw_object<Enum_wrapper<main()::A, Not_base> >,
std::array<unsigned char, 8>, raw_object<Enum_wrapper<main()::A, Not_base>
>{Enum_wrapper<main()::A, Not_base>{0, main::Enum_t::voilet}},
config_of_screws_in_the_engine<raw_object<Enum_wrapper<main()::A, Not_base> >,
1>::type{"\001\000\000\000\000\000\000"}>()'
  316 |                         if(exist<sequential_count, instance,
obj_instance, minus_by, N_t, (return_addition<N_t,typename
multiply_by_t::type,N, plus_with>()), true>::template does() ||
      |                                                                        
                 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
<source>:247:11:   in 'constexpr' expansion of
'raw_object<Enum_wrapper<main()::A, Not_base> >{Enum_wrapper<main()::A,
Not_base>{0, main::Enum_t::voilet}}.raw_object<Enum_wrapper<main()::A,
Not_base>
>::operator+(config_of_screws_in_the_engine<raw_object<Enum_wrapper<main()::A,
Not_base> >, 1>::type{"\001\000\000\000\000\000\000"})'
  247 |         return (N+M)-minus_by_global;
      |                ~~^~~
<source>:81:59: internal compiler error: in cxx_eval_constant_expression, at
cp/constexpr.cc:10187
   81 |                         unsigned char result=  N[i] + *( 
static_cast<unsigned char*>(static_cast<void*>(raw_object)+i)  ) + carry;
      |                                                       
~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
0x29af4f8 diagnostics::context::diagnostic_impl(rich_location*,
diagnostics::metadata const*, diagnostics::option_id, char const*,
__va_list_tag (*) [1], diagnostics::kind)
        ???:0
0x29a413b internal_error(char const*, ...)
        ???:0
0xb2a4d8 fancy_abort(char const*, int, char const*)
        ???:0
0xb9a273 cxx_eval_constant_expression(constexpr_ctx const*, tree_node*,
value_cat, bool*, bool*, tree_node**)
        ???:0
0xb972fa cxx_eval_constant_expression(constexpr_ctx const*, tree_node*,
value_cat, bool*, bool*, tree_node**)
        ???:0
0xb9690f cxx_eval_constant_expression(constexpr_ctx const*, tree_node*,
value_cat, bool*, bool*, tree_node**)
        ???:0
0xb9690f cxx_eval_constant_expression(constexpr_ctx const*, tree_node*,
value_cat, bool*, bool*, tree_node**)
        ???:0
0xb972fa cxx_eval_constant_expression(constexpr_ctx const*, tree_node*,
value_cat, bool*, bool*, tree_node**)
        ???:0
0xb96bcf cxx_eval_constant_expression(constexpr_ctx const*, tree_node*,
value_cat, bool*, bool*, tree_node**)
        ???:0
0xb972fa cxx_eval_constant_expression(constexpr_ctx const*, tree_node*,
value_cat, bool*, bool*, tree_node**)
        ???:0
0xb97eed cxx_eval_constant_expression(constexpr_ctx const*, tree_node*,
value_cat, bool*, bool*, tree_node**)
        ???:0
0xb97a36 cxx_eval_constant_expression(constexpr_ctx const*, tree_node*,
value_cat, bool*, bool*, tree_node**)
        ???:0
0xb98653 cxx_eval_constant_expression(constexpr_ctx const*, tree_node*,
value_cat, bool*, bool*, tree_node**)
        ???:0
0xb97740 cxx_eval_constant_expression(constexpr_ctx const*, tree_node*,
value_cat, bool*, bool*, tree_node**)
        ???:0
0xb97022 cxx_eval_constant_expression(constexpr_ctx const*, tree_node*,
value_cat, bool*, bool*, tree_node**)
        ???:0
0xb98653 cxx_eval_constant_expression(constexpr_ctx const*, tree_node*,
value_cat, bool*, bool*, tree_node**)
        ???:0
0xb97740 cxx_eval_constant_expression(constexpr_ctx const*, tree_node*,
value_cat, bool*, bool*, tree_node**)
        ???:0
0xb98653 cxx_eval_constant_expression(constexpr_ctx const*, tree_node*,
value_cat, bool*, bool*, tree_node**)
        ???:0
0xb97740 cxx_eval_constant_expression(constexpr_ctx const*, tree_node*,
value_cat, bool*, bool*, tree_node**)
        ???:0
0xb97cbc cxx_eval_constant_expression(constexpr_ctx const*, tree_node*,
value_cat, bool*, bool*, tree_node**)
        ???:0
/cefs/92/9269be2f3bb9bbf8ec2074f8_gcc-trunk-20260506/bin/../libexec/gcc/x86_64-linux-gnu/17.0.0/cc1plus
-quiet -imultiarch x86_64-linux-gnu -iprefix
/cefs/92/9269be2f3bb9bbf8ec2074f8_gcc-trunk-20260506/bin/../lib/gcc/x86_64-linux-gnu/17.0.0/
-D_GNU_SOURCE <source> -quiet -dumpdir /app/ -dumpbase output.cpp -dumpbase-ext
.cpp -masm=intel -mtune=generic -march=x86-64 -g -g0 -std=c++26
-fdiagnostics-color=always -fno-verbose-asm -o /app/output.s
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
Compiler returned: 1

Reply via email to