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.