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

            Bug ID: 102990
           Summary: ICE in tsubst_copy_and_build, à cp/pt.c:19856
           Product: gcc
           Version: 11.1.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 51695
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=51695&action=edit
Source code that causes the ICE

Hello,

g++-11.1 (Arch Linux).

Here's the stack trace I'm getting:

    $ g++  -fPIC -fcoroutines -std=gnu++20 -c out.cpp 
    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/projets/perso/avendish/src/avnd/concepts/generic.hpp:6,
                     from
/home/jcelerier/projets/perso/avendish/src/avnd/concepts/audio_port.hpp:6,
                     from
/home/jcelerier/projets/perso/avendish/src/avnd/concepts.hpp:6,
                     from
/home/jcelerier/projets/perso/avendish/src/avnd/prepare.hpp:5,
                     from
/home/jcelerier/projets/perso/avendish/src/avnd/avnd.hpp:5,
                     from
/home/jcelerier/projets/perso/avendish/src/python/processor.hpp:5,
                     from /tmp/sdfljifg/examples__Helpers_python.cpp:5:
    /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::Helpers<python::config>::<unnamed struct>;
long unsigned int N = <missing>]’:
    /usr/include/boost/pfr/detail/fields_count.hpp:243:78:   required from
‘constexpr std::size_t boost::pfr::detail::fields_count() [with T = const
examples::Helpers<python::config>::<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::Helpers<python::config>::<unnamed struct>]’
    /usr/include/boost/pfr/core.hpp:106:29:   required from ‘constexpr auto
boost::pfr::structure_to_tuple(const T&) [with T =
examples::Helpers<python::config>::<unnamed struct>]’
    /home/jcelerier/projets/perso/avendish/src/avnd/concepts/port.hpp:12:424:  
required from ‘struct avnd::inputs_type<examples::Helpers<python::config> >’
   
/home/jcelerier/projets/perso/avendish/src/avnd/input_introspection.hpp:13:7:  
required by substitution of ‘template<class T> using
parameter_input_introspection = avnd::parameter_introspection<typename
avnd::inputs_type<T>::type> [with T = examples::Helpers<python::config>]’
    /home/jcelerier/projets/perso/avendish/src/python/processor.hpp:47:54:  
required from ‘python::processor<T>::processor(pybind11::module_&) [with T =
examples::Helpers<python::config>]’
    /tmp/sdfljifg/examples__Helpers_python.cpp:10:52:   required from here
    /usr/include/boost/pfr/detail/fields_count.hpp:189:17: internal compiler
error: in tsubst_copy_and_build, at cp/pt.c:19856
      189 |     -> decltype(sizeof(T{}))
          |                 ^~~~~~~~~~~
    0x1797368 internal_error(char const*, ...)
        ???:0
    0x67f8f9 fancy_abort(char const*, int, char const*)
        ???:0
    0x6be30e fold_non_dependent_init(tree_node*, int, bool, tree_node*)
        ???:0
    0x816127 finish_compound_literal(tree_node*, tree_node*, int, fcl_t)
        ???:0
    0x7e78a9 tsubst(tree_node*, tree_node*, int, tree_node*)
        ???:0
    0x7e721e tsubst(tree_node*, tree_node*, int, tree_node*)
        ???:0
    0x803139 fn_type_unification(tree_node*, tree_node*, tree_node*, tree_node*
const*, unsigned int, tree_node*, unification_kind_t, int, conversion**, bool,
bool)
        ???:0
    0x6994f5 build_new_function_call(tree_node*, vec<tree_node*, va_gc,
vl_embed>**, int)
        ???:0
    0x8177bc finish_call_expr(tree_node*, vec<tree_node*, va_gc, vl_embed>**,
bool, bool, int)
        ???:0
    0x7ea4ef instantiate_decl(tree_node*, bool, bool)
        ???:0
    0xfa14b3 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
    0xfa16a0 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
    0xfa37da 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
    0x6bdef4 maybe_constant_value(tree_node*, tree_node*, bool)
        ???:0
    0x7e7c3a tsubst(tree_node*, tree_node*, int, tree_node*)
        ???:0
    0x7ea4ef instantiate_decl(tree_node*, bool, bool)
        ???:0
    0x711996 mark_used(tree_node*, int)
        ???:0
    0x69950a build_new_function_call(tree_node*, vec<tree_node*, va_gc,
vl_embed>**, int)
        ???:0
    0x8177bc finish_call_expr(tree_node*, vec<tree_node*, va_gc, vl_embed>**,
bool, bool, int)
        ???:0
    0x7ea4ef instantiate_decl(tree_node*, bool, bool)
        ???:0

Reply via email to