https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104720
Bug ID: 104720 Summary: internal compiler error: in tsubst_copy_and_build, at cp/pt.c:19817 Product: gcc Version: 11.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: jeanmichael.celerier at gmail dot com Target Milestone: --- Created attachment 52527 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=52527&action=edit Repro for the bug Repro: ``` $ g++ -std=c++20 processed.cpp -fcoroutines -fext-numeric-literals In file included from /usr/include/boost/pfr/detail/core17.hpp:11, from /usr/include/boost/pfr/detail/core.hpp:17, from /usr/include/boost/pfr/core.hpp:12, from /usr/include/boost/pfr.hpp:12, from /home/jcelerier/ossia/score/3rdparty/avendish/include/avnd/concepts/generic.hpp:7, from /home/jcelerier/ossia/score/3rdparty/avendish/include/avnd/concepts/audio_port.hpp:5, from /home/jcelerier/ossia/score/3rdparty/avendish/examples/Oscr/ControlGallery.hpp:2, from /tmp/av/build/examples__ControlGallery_ossia.cpp:3: /usr/include/boost/pfr/detail/fields_count.hpp: In substitution of ‘template<class T, long unsigned int N> constexpr decltype (sizeof (T{})) boost::pfr::detail::detect_fields_count_dispatch(boost::pfr::detail::size_t_<I>, long int, int) [with T = examples::ControlGallery::<unnamed struct>; long unsigned int N = <missing>]’: /usr/include/boost/pfr/detail/fields_count.hpp:305:78: required from ‘constexpr std::size_t boost::pfr::detail::fields_count() [with T = const examples::ControlGallery::<unnamed struct>; std::size_t = long unsigned int]’ /usr/include/boost/pfr/detail/core17.hpp:54:54: required from ‘constexpr auto boost::pfr::detail::tie_as_tuple(T&) [with T = const examples::ControlGallery::<unnamed struct>]’ /usr/include/boost/pfr/core.hpp:106:29: required from ‘constexpr auto boost::pfr::structure_to_tuple(const T&) [with T = examples::ControlGallery::<unnamed struct>]’ /home/jcelerier/ossia/score/3rdparty/avendish/include/avnd/concepts/port.hpp:12:549: required from ‘struct avnd::inputs_type<examples::ControlGallery>’ /home/jcelerier/ossia/score/3rdparty/avendish/include/avnd/concepts/processor.hpp:36:43: required from ‘constexpr const int avnd::mono_sample_array_input_port_count<float, examples::ControlGallery>’ /home/jcelerier/ossia/score/3rdparty/avendish/include/avnd/concepts/processor.hpp:60:8: required by substitution of ‘template<class T> requires (monophonic_audio_processor<T>) && ((inputs_is_value<T>) && (outputs_is_value<T>)) struct avnd::effect_container<T> [with T = examples::ControlGallery]’ /home/jcelerier/ossia/score/3rdparty/avendish/include/avnd/binding/ossia/node.hpp:471:31: required from ‘class oscr::safe_node_base<examples::ControlGallery>’ /home/jcelerier/ossia/score/3rdparty/avendish/include/avnd/binding/ossia/port_node.hpp:7:7: required from ‘class oscr::safe_node<examples::ControlGallery>’ /tmp/av/build/examples__ControlGallery_ossia.cpp:11:25: required from here /usr/include/boost/pfr/detail/fields_count.hpp:243:17: internal compiler error: in tsubst_copy_and_build, at cp/pt.c:19817 243 | -> decltype(sizeof(T{})) | ^~~~~~~~~~~ 0x16b7aa9 internal_error(char const*, ...) ???:0 0x63d391 fancy_abort(char const*, int, char const*) ???:0 0x69d25e fold_non_dependent_init(tree_node*, int, bool, tree_node*) ???:0 0x807e3d finish_compound_literal(tree_node*, tree_node*, int, fcl_t) ???:0 0x7cd4ae tsubst(tree_node*, tree_node*, int, tree_node*) ???:0 0x7ccc26 tsubst(tree_node*, tree_node*, int, tree_node*) ???:0 0x7dbe67 fn_type_unification(tree_node*, tree_node*, tree_node*, tree_node* const*, unsigned int, tree_node*, unification_kind_t, int, conversion**, bool, bool) ???:0 0x66c809 build_new_function_call(tree_node*, vec<tree_node*, va_gc, vl_embed>**, int) ???:0 0x7f9c5c finish_call_expr(tree_node*, vec<tree_node*, va_gc, vl_embed>**, bool, bool, int) ???:0 0x7dd8b0 instantiate_decl(tree_node*, bool, bool) ???:0 0xfbdbe2 walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*, tree_node* (*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*)) ???:0 0xfbddfa walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*, tree_node* (*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*)) ???:0 0xfbed9c walk_tree_without_duplicates_1(tree_node**, tree_node* (*)(tree_node**, int*, void*), void*, tree_node* (*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*)) ???:0 0x69cde4 maybe_constant_value(tree_node*, tree_node*, bool) ???:0 0x7cd689 tsubst(tree_node*, tree_node*, int, tree_node*) ???:0 0x7dd8b0 instantiate_decl(tree_node*, bool, bool) ???:0 0x6db023 mark_used(tree_node*, int) ???:0 0x66c81e build_new_function_call(tree_node*, vec<tree_node*, va_gc, vl_embed>**, int) ???:0 0x7f9c5c finish_call_expr(tree_node*, vec<tree_node*, va_gc, vl_embed>**, bool, bool, int) ???:0 0x7dd8b0 instantiate_decl(tree_node*, bool, bool) ???:0 ``` The error does not happen if one comments line 105352: avnd::accurate<avnd::hslider_i32<"Int slider", avnd::range{0., 1000., 10.}>> int_slider;