http://bugzilla.opensuse.org/show_bug.cgi?id=1204505 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 --> http://bugzilla.opensuse.org/attachment.cgi?id=862286&action=edit 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: You are on the CC list for the bug.