[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