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
