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

Martin Liška <marxin at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |WAITING
                 CC|                            |marxin at gcc dot gnu.org
   Last reconfirmed|                            |2022-09-20
     Ever confirmed|0                           |1

--- Comment #2 from Martin Liška <marxin at gcc dot gnu.org> ---
(In reply to Arseny Solokha from comment #1)
> Created attachment 53589 [details]
> Reduced preprocessed testcase
> 
> Unfortunately a 173K file is the best I could come up with after three days
> of reduction, though it fails the check w/ just -std=c++20 -O1
> -fcompare-debug -ftree-parallelize-loops=2.

Can't compile this due to:

g++ pr106955.c -std=c++20 -O1 -fcompare-debug -ftree-parallelize-loops=2 -c
: In instantiation of ‘struct __gnu_cxx::__normal_iterator<int, int>’:
:822:5:   required from here
:793:44: error: ‘__gnu_cxx::__normal_iterator<int, int>::__traits_type’ {aka
‘int’} is not a class, struct, or union type
:794:38: error: ‘__gnu_cxx::__normal_iterator<int, int>::__traits_type’ {aka
‘int’} is not a class, struct, or union type
:795:36: error: ‘__gnu_cxx::__normal_iterator<int, int>::__traits_type’ {aka
‘int’} is not a class, struct, or union type
: In instantiation of ‘struct std::reverse_iterator<int>’:
:1875:44:   required from here
:759:36: error: ‘std::reverse_iterator<int>::__traits_type’ {aka ‘int’} is not
a class, struct, or union type
:764:11: error: ‘int’ is not a class, struct, or union type
: In substitution of ‘template<class _Iter, class _Tp> using
std::__detail::__iter_traits = typename std::__detail::__iter_traits_impl::type
[with _Iter = std::incrementable_traits<int>; _Tp =
std::incrementable_traits<int>]’:
:133:7:   required by substitution of ‘template<class _Tp> using
std::__detail::__iter_diff_t = typename
std::__detail::__iter_traits_impl<std::incrementable_traits<_Tp>,
std::incrementable_traits<_Tp> >::type::difference_type [with _Tp = int]’
:136:7:   required by substitution of ‘template<class _Tp> using
std::iter_difference_t = std::__detail::__iter_diff_t<typename
std::remove_cvref<_Tp>::type> [with _Tp = int]’
:767:11:   required from ‘struct std::reverse_iterator<int>’
:1875:44:   required from here
:131:7: error: invalid use of incomplete type ‘struct
std::__detail::__iter_traits_impl<std::incrementable_traits<int>,
std::incrementable_traits<int> >’
:123:40: note: declaration of ‘struct
std::__detail::__iter_traits_impl<std::incrementable_traits<int>,
std::incrementable_traits<int> >’

Reply via email to