[Bug c++/104720] New: internal compiler error: in tsubst_copy_and_build, at cp/pt.c:19817
jeanmichael.celerier at gmail dot com
gcc-bugzilla@gcc.gnu.org
Mon Feb 28 17:42:15 GMT 2022
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;
More information about the Gcc-bugs
mailing list