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

            Bug ID: 80812
           Summary: internal compiler error: in build_value_init_noctor,
                    at cp/init.c:483
           Product: gcc
           Version: 8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: jamrial at gmail dot com
  Target Milestone: ---

Created attachment 41379
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=41379&action=edit
Preprocessed output created with -freport-bug

[jamrial@ArchVM tmp]$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/lib/gcc/x86_64-pc-linux-gnu/8.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /home/jamrial/gcc-svn/configure --prefix=/usr/local
--libdir=/usr/local/lib --libexecdir=/usr/local/lib
--mandir=/usr/local/share/man --infodir=/usr/local/share/info
--enable-languages=c,c++,lto --enable-shared --enable-threads=posix
--disable-bootstrap --with-system-zlib --enable-__cxa_atexit
--disable-libunwind-exceptions --enable-clocale=gnu --disable-libstdcxx-pch
--disable-libssp --enable-gnu-unique-object --enable-linker-build-id
--enable-lto --enable-plugin --enable-install-libiberty
--with-linker-hash-style=gnu --enable-gnu-indirect-function --disable-multilib
--disable-werror
Thread model: posix
gcc version 8.0.0 20170518 (experimental) (GCC)

[jamrial@ArchVM tmp]$ c++ -std=c++17 -c cc6QFNbL.ii
In file included from /usr/local/include/c++/8.0.0/bits/move.h:54:0,
                 from /usr/local/include/c++/8.0.0/bits/stl_pair.h:59,
                 from /usr/local/include/c++/8.0.0/utility:70,
                 from /home/jamrial/range-v3/test/algorithm/replace.cpp:25:
/usr/local/include/c++/8.0.0/type_traits: In instantiation of ‘struct
std::is_constructible<std::pair<int, std::__cxx11::basic_string<char> > [5]>’:
/home/jamrial/range-v3/include/range/v3/utility/concepts.hpp:504:42:   required
by substitution of ‘template<class T> T
ranges::v3::detail::gcc_bugs_bugs_bugs(T) [with T = <missing>]’
/home/jamrial/range-v3/include/range/v3/utility/concepts.hpp:111:55:   required
by substitution of ‘template<class ... Ts, class Concept, class>
meta::v1::apply<meta::v1::quote<meta::v1::lazy::strict_and>, typename
meta::v1::detail::transform_<meta::v1::list<typename
ranges::v3::detail::base_concepts_of<Concept, void>::type,
meta::v1::bind_back<meta::v1::quote<ranges::v3::concepts::models>, Ts ...> >,
void>::type> ranges::v3::detail::models_(Concept*) [with Ts = {std::pair<int,
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >
> [5]}; Concept = ranges::v3::concepts::Constructible; <template-parameter-1-3>
= <missing>]’
/home/jamrial/range-v3/include/range/v3/utility/concepts.hpp:187:69:   required
from ‘struct ranges::v3::concepts::models<ranges::v3::concepts::Constructible,
std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > > [5]>’
/home/jamrial/range-v3/include/meta/meta.hpp:1183:56:   required by
substitution of ‘template<class ... Bools> using strict_and =
meta::v1::and_c<Bools::type::value ...> [with Bools =
{ranges::v3::concepts::models<ranges::v3::concepts::Constructible,
std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > > [5]>}]’
/home/jamrial/range-v3/include/meta/meta.hpp:651:26:   required by substitution
of ‘template<template<class ...> class C, class ... Ts, template<class ...>
class D> meta::v1::id<D<Ts ...> > meta::v1::detail::try_defer_(int) [with C =
meta::v1::strict_and; Ts =
{ranges::v3::concepts::models<ranges::v3::concepts::Constructible,
std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > > [5]>}; D = meta::v1::strict_and]’
/home/jamrial/range-v3/include/meta/meta.hpp:656:65:   [ skipping 9
instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/home/jamrial/range-v3/include/range/v3/range_concepts.hpp:212:59:   required
by substitution of ‘template<class T> T
ranges::v3::detail::gcc_bugs_bugs_bugs(T) [with T = <missing>]’
/home/jamrial/range-v3/include/range/v3/utility/concepts.hpp:111:55:   required
by substitution of ‘template<class ... Ts, class Concept, class>
meta::v1::apply<meta::v1::quote<meta::v1::lazy::strict_and>, typename
meta::v1::detail::transform_<meta::v1::list<typename
ranges::v3::detail::base_concepts_of<Concept, void>::type,
meta::v1::bind_back<meta::v1::quote<ranges::v3::concepts::models>, Ts ...> >,
void>::type> ranges::v3::detail::models_(Concept*) [with Ts = {std::pair<int,
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >
> [5]}; Concept = ranges::v3::concepts::View; <template-parameter-1-3> =
<missing>]’
/home/jamrial/range-v3/include/range/v3/utility/concepts.hpp:187:69:   required
from ‘struct ranges::v3::concepts::models<ranges::v3::concepts::View,
std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > > [5]>’
/home/jamrial/range-v3/include/range/v3/view/all.hpp:70:111:   required by
substitution of ‘template<class T, int _concept_requires_70, typename
std::enable_if<((_concept_requires_70 == 43) || (!
ranges::v3::concepts::models<ranges::v3::concepts::View, typename
std::remove_cv<typename std::remove_reference<_Tp>::type>::type>())),
int>::type <anonymous>, class I, class S, class SIC, class SIRC> static
decltype (ranges::v3::view::all_fn::from_container(t, SIC(), SIRC()))
ranges::v3::view::all_fn::from_range(T&&) [with T = std::pair<int,
std::__cxx11::basic_string<char> > (&)[5]; int _concept_requires_70 = 42;
typename std::enable_if<((_concept_requires_70 == 43) || (!
ranges::v3::concepts::models<ranges::v3::concepts::View, typename
std::remove_cv<typename std::remove_reference<_Tp>::type>::type>())),
int>::type <anonymous> = <missing>; I = std::pair<int,
std::__cxx11::basic_string<char> >*; S = std::pair<int,
std::__cxx11::basic_string<char> >*; SIC =
ranges::v3::concepts::most_refined<meta::v1::list<ranges::v3::concepts::SizedRange,
ranges::v3::concepts::Range>, std::pair<int, std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > > (&)[5]>; SIRC =
ranges::v3::concepts::most_refined<meta::v1::list<ranges::v3::concepts::SizedSentinel,
ranges::v3::concepts::Sentinel>, std::pair<int,
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >
>*, std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > >*>]’
/home/jamrial/range-v3/include/range/v3/view/all.hpp:88:48:   required by
substitution of ‘template<class T, int _concept_requires_86, typename
std::enable_if<((_concept_requires_135 == 43) ||
ranges::v3::concepts::models<ranges::v3::concepts::Range, T>()), int>::type
<anonymous> > decltype
(ranges::v3::view::all_fn::from_range(static_cast<T&&>(t)))
ranges::v3::view::all_fn::operator()(T&&) const [with T = std::pair<int,
std::__cxx11::basic_string<char> > (&)[5]; int _concept_requires_86 = 42;
typename std::enable_if<((_concept_requires_135 == 43) ||
ranges::v3::concepts::models<ranges::v3::concepts::Range, T>()), int>::type
<anonymous> = 0]’
/home/jamrial/range-v3/test/algorithm/replace.cpp:98:54:   required from here
/usr/local/include/c++/8.0.0/type_traits:929:12: internal compiler error: in
build_value_init_noctor, at cp/init.c:483
     struct is_constructible
            ^~~~~~~~~~~~~~~~
0x7e3598 build_value_init_noctor(tree_node*, int)
        /home/jamrial/gcc-svn/gcc/cp/init.c:482
0x7e376d build_value_init(tree_node*, int)
        /home/jamrial/gcc-svn/gcc/cp/init.c:370
0x7ed5d3 constructible_expr
        /home/jamrial/gcc-svn/gcc/cp/method.c:1191
0x7ed5d3 is_xible_helper
        /home/jamrial/gcc-svn/gcc/cp/method.c:1219
0x7f261a is_xible(tree_code, tree_node*, tree_node*)
        /home/jamrial/gcc-svn/gcc/cp/method.c:1246
0x81144c finish_trait_expr(cp_trait_kind, tree_node*, tree_node*)
        /home/jamrial/gcc-svn/gcc/cp/semantics.c:9322
0x6dfb07 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool,
bool)
        /home/jamrial/gcc-svn/gcc/cp/pt.c:17745
0x6d436e tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
        /home/jamrial/gcc-svn/gcc/cp/pt.c:16400
0x6e5afc tsubst_template_arg
        /home/jamrial/gcc-svn/gcc/cp/pt.c:10778
0x6fa702 tsubst_template_args
        /home/jamrial/gcc-svn/gcc/cp/pt.c:11637
0x6e3521 tsubst(tree_node*, tree_node*, int, tree_node*)
        /home/jamrial/gcc-svn/gcc/cp/pt.c:13687
0x6e3830 tsubst(tree_node*, tree_node*, int, tree_node*)
        /home/jamrial/gcc-svn/gcc/cp/pt.c:13285
0x705f88 instantiate_class_template_1
        /home/jamrial/gcc-svn/gcc/cp/pt.c:10326
0x705f88 instantiate_class_template(tree_node*)
        /home/jamrial/gcc-svn/gcc/cp/pt.c:10759
0x7b22bb complete_type(tree_node*)
        /home/jamrial/gcc-svn/gcc/cp/typeck.c:133
0x808849 finish_compound_literal(tree_node*, tree_node*, int, fcl_t)
        /home/jamrial/gcc-svn/gcc/cp/semantics.c:2689
0x6dec0a tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool,
bool)
        /home/jamrial/gcc-svn/gcc/cp/pt.c:17648
0x6dfe4b tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool,
bool)
        /home/jamrial/gcc-svn/gcc/cp/pt.c:17098
0x6dfe4b tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool,
bool)
        /home/jamrial/gcc-svn/gcc/cp/pt.c:17098
0x6e2da3 tsubst(tree_node*, tree_node*, int, tree_node*)
        /home/jamrial/gcc-svn/gcc/cp/pt.c:13998
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

Reply via email to