Bug ID 1204505
Summary gcc: internal compiler error: Segmentation fault
Classification openSUSE
Product openSUSE Distribution
Version Leap 15.3
Hardware Other
OS Other
Status NEW
Severity Normal
Priority P5 - None
Component Development
Assignee screening-team-bugs@suse.de
Reporter matwey.kornilov@gmail.com
QA Contact qa-bugs@suse.de
Found By ---
Blocker ---

Created attachment 862286 [details]
test_xadaptor_semantic.ii

Hello,

 When compiling this:
   attached here test_xadaptor_semantic.ii
 with this command:
   % gcc -march=native -std=c++17 -Wunused-parameter -Wextra -Wreorder
-Wconversion -Wno-sign-conversion -Wold-style-cast -Wunused-variable
-ftemplate-backtrace-limit=0 -O2 -g -o a.o ./test_xadaptor_semantic.ii
 this happens:
   In file included from
/home/matwey/lab/xtensor/include/xtensor/xbroadcast.hpp:24:0,
                 from /home/matwey/lab/xtensor/include/xtensor/xbuilder.hpp:29,
                 from
/home/matwey/lab/xtensor/include/xtensor/xmanipulation.hpp:13,
                 from /home/matwey/lab/xtensor/test/test_common.hpp:16,
                 from
/home/matwey/lab/xtensor/test/test_xadaptor_semantic.cpp:10:
/home/matwey/lab/xtensor/include/xtensor/xexpression.hpp: In instantiation of
���������struct xt::detail::is_crtp_base_of_impl<xt::xexpression,
xt::has_simd_interface<xt::xarray_container<std::vector<int>,
(xt::layout_type)0, xt::svector<long unsigned int, 4, std::allocator<long
unsigned int>, true>, xt::xtensor_expression_tag>, int> >���������:
/usr/include/xtl/xtype_traits.hpp:323:12:   required from ���������struct
xtl::disjunction<xt::detail::is_crtp_base_of_impl<xt::xexpression,
xt::has_simd_interface<xt::xarray_container<std::vector<int,
std::allocator<int> >, (xt::layout_type)0, xt::svector<long unsigned int, 4,
std::allocator<long unsigned int>, true>, xt::xtensor_expression_tag>, int> >,
xt::detail::is_crtp_base_of_impl<xt::xexpression,
xt::has_simd_interface<xt::xfunction<xt::detail::plus, const
xt::xarray_container<xt::uvector<int, std::allocator<int> >,
(xt::layout_type)0, xt::svector<long unsigned int, 4, std::allocator<long
unsigned int>, true>, xt::xtensor_expression_tag>&, const
xt::xarray_container<xt::uvector<int, std::allocator<int> >,
(xt::layout_type)0, xt::svector<long unsigned int, 4, std::allocator<long
unsigned int>, true>, xt::xtensor_expression_tag>&>, int> > >���������
/home/matwey/lab/xtensor/include/xtensor/xoperation.hpp:212:90:   required by
substitution of ���������template<class F, class ... E> using xfunction_type_t =
typename std::enable_if<xtl::disjunction<xt::is_xexpression<typename
std::decay<CT>::type>...>::value, xt::detail::xfunction_type<F, E ...>
>::type::type [with F = xt::detail::logical_and; E =
{xt::has_simd_interface<xt::xarray_container<std::vector<int,
std::allocator<int> >, (xt::layout_type)0, xt::svector<long unsigned int, 4,
std::allocator<long unsigned int>, true>, xt::xtensor_expression_tag>, int>,
xt::has_simd_interface<xt::xfunction<xt::detail::plus, const
xt::xarray_container<xt::uvector<int, std::allocator<int> >,
(xt::layout_type)0, xt::svector<long unsigned int, 4, std::allocator<long
unsigned int>, true>, xt::xtensor_expression_tag>&, const
xt::xarray_container<xt::uvector<int, std::allocator<int> >,
(xt::layout_type)0, xt::svector<long unsigned int, 4, std::allocator<long
unsigned int>, true>, xt::xtensor_expression_tag>&>, int>}]���������
/home/matwey/lab/xtensor/include/xtensor/xoperation.hpp:375:17:   required by
substitution of ���������template<class E1, class E2>
xt::detail::xfunction_type_t<xt::detail::logical_and, E1, E2>
xt::operator&&(E1&&, E2&&) [with E1 =
xt::has_simd_interface<xt::xarray_container<std::vector<int>,
(xt::layout_type)0, xt::svector<long unsigned int, 4, std::allocator<long
unsigned int>, true>, xt::xtensor_expression_tag>, int>; E2 =
xt::has_simd_interface<xt::xfunction<xt::detail::plus, const
xt::xarray_container<xt::uvector<int, std::allocator<int> >,
(xt::layout_type)0, xt::svector<long unsigned int, 4, std::allocator<long
unsigned int>, true>, xt::xtensor_expression_tag>&, const
xt::xarray_container<xt::uvector<int, std::allocator<int> >,
(xt::layout_type)0, xt::svector<long unsigned int, 4, std::allocator<long
unsigned int>, true>, xt::xtensor_expression_tag>&>, int>]���������
/home/matwey/lab/xtensor/include/xtensor/xassign.hpp:346:104:   required from
���������static constexpr bool xt::xassign_traits<E1, E2>::simd_interface() [with E1 =
xt::xarray_container<std::vector<int>, (xt::layout_type)0, xt::svector<long
unsigned int, 4, std::allocator<long unsigned int>, true>,
xt::xtensor_expression_tag>; E2 = xt::xfunction<xt::detail::plus, const
xt::xarray_container<xt::uvector<int, std::allocator<int> >,
(xt::layout_type)0, xt::svector<long unsigned int, 4, std::allocator<long
unsigned int>, true>, xt::xtensor_expression_tag>&, const
xt::xarray_container<xt::uvector<int, std::allocator<int> >,
(xt::layout_type)0, xt::svector<long unsigned int, 4, std::allocator<long
unsigned int>, true>, xt::xtensor_expression_tag>&>]���������
/home/matwey/lab/xtensor/include/xtensor/xassign.hpp:354:106:   required from
���������static constexpr bool xt::xassign_traits<E1, E2>::simd_assign() [with E1 =
xt::xarray_container<std::vector<int>, (xt::layout_type)0, xt::svector<long
unsigned int, 4, std::allocator<long unsigned int>, true>,
xt::xtensor_expression_tag>; E2 = xt::xfunction<xt::detail::plus, const
xt::xarray_container<xt::uvector<int, std::allocator<int> >,
(xt::layout_type)0, xt::svector<long unsigned int, 4, std::allocator<long
unsigned int>, true>, xt::xtensor_expression_tag>&, const
xt::xarray_container<xt::uvector<int, std::allocator<int> >,
(xt::layout_type)0, xt::svector<long unsigned int, 4, std::allocator<long
unsigned int>, true>, xt::xtensor_expression_tag>&>]���������
/home/matwey/lab/xtensor/include/xtensor/xassign.hpp:379:57:   required from
���������static void
xt::xexpression_assigner_base<xt::xtensor_expression_tag>::assign_data(xt::xexpression<D>&,
const xt::xexpression<E2>&, bool) [with E1 =
xt::xarray_container<std::vector<int>, (xt::layout_type)0, xt::svector<long
unsigned int, 4, std::allocator<long unsigned int>, true>,
xt::xtensor_expression_tag>; E2 = xt::xfunction<xt::detail::plus, const
xt::xarray_container<xt::uvector<int, std::allocator<int> >,
(xt::layout_type)0, xt::svector<long unsigned int, 4, std::allocator<long
unsigned int>, true>, xt::xtensor_expression_tag>&, const
xt::xarray_container<xt::uvector<int, std::allocator<int> >,
(xt::layout_type)0, xt::svector<long unsigned int, 4, std::allocator<long
unsigned int>, true>, xt::xtensor_expression_tag>&>]���������
/home/matwey/lab/xtensor/include/xtensor/xassign.hpp:414:31:   required from
���������static void xt::xexpression_assigner<Tag>::assign_xexpression(E1&, const E2&)
[with E1 = xt::xexpression<xt::xarray_container<std::vector<int>,
(xt::layout_type)0, xt::svector<long unsigned int, 4, std::allocator<long
unsigned int>, true>, xt::xtensor_expression_tag> >; E2 =
xt::xexpression<xt::xfunction<xt::detail::plus, const
xt::xarray_container<xt::uvector<int, std::allocator<int> >,
(xt::layout_type)0, xt::svector<long unsigned int, 4, std::allocator<long
unsigned int>, true>, xt::xtensor_expression_tag>&, const
xt::xarray_container<xt::uvector<int, std::allocator<int> >,
(xt::layout_type)0, xt::svector<long unsigned int, 4, std::allocator<long
unsigned int>, true>, xt::xtensor_expression_tag>&> >; Tag =
xt::xtensor_expression_tag]���������
/home/matwey/lab/xtensor/include/xtensor/xassign.hpp:205:58:   required from
���������xt::assign_xexpression(xt::xexpression<D>&, const
xt::xexpression<E2>&)::<lambda(auto:60)> [with auto:60 = xtl::identity; E1 =
xt::xarray_container<std::vector<int>, (xt::layout_type)0, xt::svector<long
unsigned int, 4, std::allocator<long unsigned int>, true>,
xt::xtensor_expression_tag>; E2 = xt::xfunction<xt::detail::plus, const
xt::xarray_container<xt::uvector<int, std::allocator<int> >,
(xt::layout_type)0, xt::svector<long unsigned int, 4, std::allocator<long
unsigned int>, true>, xt::xtensor_expression_tag>&, const
xt::xarray_container<xt::uvector<int, std::allocator<int> >,
(xt::layout_type)0, xt::svector<long unsigned int, 4, std::allocator<long
unsigned int>, true>, xt::xtensor_expression_tag>&>]���������
/usr/include/xtl/xmeta_utils.hpp:597:22:   required from ���������decltype(auto)
xtl::mpl::static_if(std::false_type, const TF&, const FF&) [with TF =
xt::assign_xexpression(xt::xexpression<D>&, const xt::xexpression<E2>&) [with
E1 = xt::xarray_container<std::vector<int>, (xt::layout_type)0,
xt::svector<long unsigned int, 4, std::allocator<long unsigned int>, true>,
xt::xtensor_expression_tag>; E2 = xt::xfunction<xt::detail::plus, const
xt::xarray_container<xt::uvector<int, std::allocator<int> >,
(xt::layout_type)0, xt::svector<long unsigned int, 4, std::allocator<long
unsigned int>, true>, xt::xtensor_expression_tag>&, const
xt::xarray_container<xt::uvector<int, std::allocator<int> >,
(xt::layout_type)0, xt::svector<long unsigned int, 4, std::allocator<long
unsigned int>, true>, xt::xtensor_expression_tag>&>]::<lambda(auto:59)>; FF =
xt::assign_xexpression(xt::xexpression<D>&, const xt::xexpression<E2>&) [with
E1 = xt::xarray_container<std::vector<int>, (xt::layout_type)0,
xt::svector<long unsigned int, 4, std::allocator<long unsigned int>, true>,
xt::xtensor_expression_tag>; E2 = xt::xfunction<xt::detail::plus, const
xt::xarray_container<xt::uvector<int, std::allocator<int> >,
(xt::layout_type)0, xt::svector<long unsigned int, 4, std::allocator<long
unsigned int>, true>, xt::xtensor_expression_tag>&, const
xt::xarray_container<xt::uvector<int, std::allocator<int> >,
(xt::layout_type)0, xt::svector<long unsigned int, 4, std::allocator<long
unsigned int>, true>, xt::xtensor_expression_tag>&>]::<lambda(auto:60)>;
std::false_type = std::integral_constant<bool, false>]���������
/usr/include/xtl/xmeta_utils.hpp:603:29:   required from ���������decltype(auto)
xtl::mpl::static_if(const TF&, const FF&) [with bool cond = false; TF =
xt::assign_xexpression(xt::xexpression<D>&, const xt::xexpression<E2>&) [with
E1 = xt::xarray_container<std::vector<int>, (xt::layout_type)0,
xt::svector<long unsigned int, 4, std::allocator<long unsigned int>, true>,
xt::xtensor_expression_tag>; E2 = xt::xfunction<xt::detail::plus, const
xt::xarray_container<xt::uvector<int, std::allocator<int> >,
(xt::layout_type)0, xt::svector<long unsigned int, 4, std::allocator<long
unsigned int>, true>, xt::xtensor_expression_tag>&, const
xt::xarray_container<xt::uvector<int, std::allocator<int> >,
(xt::layout_type)0, xt::svector<long unsigned int, 4, std::allocator<long
unsigned int>, true>, xt::xtensor_expression_tag>&>]::<lambda(auto:59)>; FF =
xt::assign_xexpression(xt::xexpression<D>&, const xt::xexpression<E2>&) [with
E1 = xt::xarray_container<std::vector<int>, (xt::layout_type)0,
xt::svector<long unsigned int, 4, std::allocator<long unsigned int>, true>,
xt::xtensor_expression_tag>; E2 = xt::xfunction<xt::detail::plus, const
xt::xarray_container<xt::uvector<int, std::allocator<int> >,
(xt::layout_type)0, xt::svector<long unsigned int, 4, std::allocator<long
unsigned int>, true>, xt::xtensor_expression_tag>&, const
xt::xarray_container<xt::uvector<int, std::allocator<int> >,
(xt::layout_type)0, xt::svector<long unsigned int, 4, std::allocator<long
unsigned int>, true>, xt::xtensor_expression_tag>&>]::<lambda(auto:60)>]���������
/home/matwey/lab/xtensor/include/xtensor/xassign.hpp:199:58:   required from
���������void xt::assign_xexpression(xt::xexpression<D>&, const xt::xexpression<E2>&)
[with E1 = xt::xarray_container<std::vector<int>, (xt::layout_type)0,
xt::svector<long unsigned int, 4, std::allocator<long unsigned int>, true>,
xt::xtensor_expression_tag>; E2 = xt::xfunction<xt::detail::plus, const
xt::xarray_container<xt::uvector<int, std::allocator<int> >,
(xt::layout_type)0, xt::svector<long unsigned int, 4, std::allocator<long
unsigned int>, true>, xt::xtensor_expression_tag>&, const
xt::xarray_container<xt::uvector<int, std::allocator<int> >,
(xt::layout_type)0, xt::svector<long unsigned int, 4, std::allocator<long
unsigned int>, true>, xt::xtensor_expression_tag>&>]���������
/home/matwey/lab/xtensor/include/xtensor/xsemantic.hpp:623:31:   required from
���������xt::xcontainer_semantic<D>::derived_type&
xt::xcontainer_semantic<D>::assign_xexpression(const xt::xexpression<E>&) [with
E = xt::xfunction<xt::detail::plus, const xt::xarray_container<xt::uvector<int,
std::allocator<int> >, (xt::layout_type)0, xt::svector<long unsigned int, 4,
std::allocator<long unsigned int>, true>, xt::xtensor_expression_tag>&, const
xt::xarray_container<xt::uvector<int, std::allocator<int> >,
(xt::layout_type)0, xt::svector<long unsigned int, 4, std::allocator<long
unsigned int>, true>, xt::xtensor_expression_tag>&>; D =
xt::xarray_container<std::vector<int>, (xt::layout_type)0, xt::svector<long
unsigned int, 4, std::allocator<long unsigned int>, true>,
xt::xtensor_expression_tag>; xt::xcontainer_semantic<D>::derived_type =
xt::xarray_container<std::vector<int>, (xt::layout_type)0, xt::svector<long
unsigned int, 4, std::allocator<long unsigned int>, true>,
xt::xtensor_expression_tag>]���������
/home/matwey/lab/xtensor/include/xtensor/xsemantic.hpp:489:57:   required from
���������xt::xsemantic_base<D>::derived_type& xt::xsemantic_base<D>::assign(const
xt::xexpression<E>&) [with E = xt::xfunction<xt::detail::plus, const
xt::xarray_container<xt::uvector<int, std::allocator<int> >,
(xt::layout_type)0, xt::svector<long unsigned int, 4, std::allocator<long
unsigned int>, true>, xt::xtensor_expression_tag>&, const
xt::xarray_container<xt::uvector<int, std::allocator<int> >,
(xt::layout_type)0, xt::svector<long unsigned int, 4, std::allocator<long
unsigned int>, true>, xt::xtensor_expression_tag>&>; D =
xt::xarray_container<std::vector<int>, (xt::layout_type)0, xt::svector<long
unsigned int, 4, std::allocator<long unsigned int>, true>,
xt::xtensor_expression_tag>; xt::xsemantic_base<D>::derived_type =
xt::xarray_container<std::vector<int>, (xt::layout_type)0, xt::svector<long
unsigned int, 4, std::allocator<long unsigned int>, true>,
xt::xtensor_expression_tag>]���������
/home/matwey/lab/xtensor/include/xtensor/xarray.hpp:491:30:   required from
���������xt::xarray_container<EC, L, SC, Tag>::xarray_container(const
xt::xexpression<E>&) [with E = xt::xfunction<xt::detail::plus, const
xt::xarray_container<xt::uvector<int, std::allocator<int> >,
(xt::layout_type)0, xt::svector<long unsigned int, 4, std::allocator<long
unsigned int>, true>, xt::xtensor_expression_tag>&, const
xt::xarray_container<xt::uvector<int, std::allocator<int> >,
(xt::layout_type)0, xt::svector<long unsigned int, 4, std::allocator<long
unsigned int>, true>, xt::xtensor_expression_tag>&>; EC = std::vector<int>;
xt::layout_type L = (xt::layout_type)0; SC = xt::svector<long unsigned int, 4,
std::allocator<long unsigned int>, true>; Tag = xt::xtensor_expression_tag]���������
/home/matwey/lab/xtensor/include/xtensor/xsemantic.hpp:600:24:   required from
���������xt::xsemantic_base<D>::derived_type& xt::xsemantic_base<D>::operator=(const
xt::xexpression<E>&) [with E = xt::xfunction<xt::detail::plus, const
xt::xarray_container<xt::uvector<int, std::allocator<int> >,
(xt::layout_type)0, xt::svector<long unsigned int, 4, std::allocator<long
unsigned int>, true>, xt::xtensor_expression_tag>&, const
xt::xarray_container<xt::uvector<int, std::allocator<int> >,
(xt::layout_type)0, xt::svector<long unsigned int, 4, std::allocator<long
unsigned int>, true>, xt::xtensor_expression_tag>&>; D =
xt::xarray_adaptor<std::vector<int>, (xt::layout_type)0>;
xt::xsemantic_base<D>::derived_type = xt::xarray_adaptor<std::vector<int>,
(xt::layout_type)0>]���������
/home/matwey/lab/xtensor/include/xtensor/xsemantic.hpp:647:36:   required from
���������xt::xcontainer_semantic<D>::derived_type&
xt::xcontainer_semantic<D>::operator=(const xt::xexpression<E>&) [with E =
xt::xfunction<xt::detail::plus, const xt::xarray_container<xt::uvector<int,
std::allocator<int> >, (xt::layout_type)0, xt::svector<long unsigned int, 4,
std::allocator<long unsigned int>, true>, xt::xtensor_expression_tag>&, const
xt::xarray_container<xt::uvector<int, std::allocator<int> >,
(xt::layout_type)0, xt::svector<long unsigned int, 4, std::allocator<long
unsigned int>, true>, xt::xtensor_expression_tag>&>; D =
xt::xarray_adaptor<std::vector<int>, (xt::layout_type)0>;
xt::xcontainer_semantic<D>::derived_type = xt::xarray_adaptor<std::vector<int>,
(xt::layout_type)0>]���������
/home/matwey/lab/xtensor/include/xtensor/xarray.hpp:613:40:   required from
���������xt::xarray_adaptor<EC, L, SC, Tag>::self_type& xt::xarray_adaptor<EC, L, SC,
Tag>::operator=(const xt::xexpression<E>&) [with E =
xt::xfunction<xt::detail::plus, const xt::xarray_container<xt::uvector<int,
std::allocator<int> >, (xt::layout_type)0, xt::svector<long unsigned int, 4,
std::allocator<long unsigned int>, true>, xt::xtensor_expression_tag>&, const
xt::xarray_container<xt::uvector<int, std::allocator<int> >,
(xt::layout_type)0, xt::svector<long unsigned int, 4, std::allocator<long
unsigned int>, true>, xt::xtensor_expression_tag>&>; EC = std::vector<int>;
xt::layout_type L = (xt::layout_type)0; SC = xt::svector<long unsigned int, 4,
std::allocator<long unsigned int>, true>; Tag = xt::xtensor_expression_tag;
xt::xarray_adaptor<EC, L, SC, Tag>::self_type =
xt::xarray_adaptor<std::vector<int>, (xt::layout_type)0>]���������
/home/matwey/lab/xtensor/test/test_xadaptor_semantic.cpp:67:15:   required from
���������void xt::DOCTEST_ANON_TMP_133() [with TypeParam =
xt::xarray_container<xt::uvector<int, std::allocator<int> >,
(xt::layout_type)0, xt::svector<long unsigned int, 4, std::allocator<long
unsigned int>, true>, xt::xtensor_expression_tag>]���������
/home/matwey/lab/xtensor/test/test_xadaptor_semantic.cpp:59:342:   required
from ���������xt::{anonymous}::DOCTEST_ANON_TMP_133ITERATOR<std::tuple<_El0, _El ...>
>::DOCTEST_ANON_TMP_133ITERATOR(const char*, unsigned int, int) [with Type =
xt::xarray_container<xt::uvector<int, std::allocator<int> >,
(xt::layout_type)0, xt::svector<long unsigned int, 4, std::allocator<long
unsigned int>, true>, xt::xtensor_expression_tag>; Rest =
{xt::xtensor_container<xt::uvector<int, std::allocator<int> >, 3,
(xt::layout_type)0, xt::xtensor_expression_tag>}]���������
/home/matwey/lab/xtensor/test/test_xadaptor_semantic.cpp:59:72:   required from
here
/home/matwey/lab/xtensor/include/xtensor/xexpression.hpp:168:88: internal
compiler error: Segmentation fault
         xtl::disjunction< std::is_base_of<B<E>, F<E>>,
std::is_base_of<B<F<E>>, F<E>>> {};
                                                                               
        ^
Please submit a full bug report,
with preprocessed source if appropriate.
See <https://bugs.opensuse.org/> for instructions.
 with this system:
   gcc (SUSE Linux) 7.5.0 (gcc7-7.5.0+r278197-4.30.1.x86_64)
   Linux localhost 5.3.18-150300.59.93-default #1 SMP Tue Sep 6 05:05:37 UTC
2022 (7acce37) x86_64 x86_64 x86_64 GNU/Linux
 I instead expect this to happen:
   the code is compiled
 because this code can be compiled by gcc12.


p.s. I am sorry, but I was not able to reduce test_xadaptor_semantic.ii
content.


You are receiving this mail because: