[Bug libstdc++/93818] New: [10 Regression] Last week's changes in libstdc++ break using it with clang

bero at lindev dot ch gcc-bugzilla@gcc.gnu.org
Tue Feb 18 20:03:00 GMT 2020


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

            Bug ID: 93818
           Summary: [10 Regression] Last week's changes in libstdc++ break
                    using it with clang
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: bero at lindev dot ch
  Target Milestone: ---

Not 100% sure whether this is a libstdc++ bug or a clang bug, but it is
definitely triggered by a recent libstdc++ change.

Using libstdc++ from gcc 10-20200216 breaks using it with clang 10 in C++20
mode.

/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.0.0/../../../../include/c++/10.0.0/ranges:1329:17:
error: missing 'typename' prior to dependent type name
'iterator_traits<iterator_t<_Vp> >::iterator_category'
          using _Cat = iterator_traits<iterator_t<_Vp>>::iterator_category;
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.0.0/../../../../include/c++/10.0.0/ranges:1512:47:
error: ambiguous deduction for template arguments of '_RangeAdaptor'
    inline constexpr __adaptor::_RangeAdaptor filter
                                              ^
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.0.0/../../../../include/c++/10.0.0/ranges:1073:2:
note: candidate function [with _Callable = std::ranges::views::(lambda at
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.0.0/../../../../include/c++/10.0.0/ranges:1513:9)]
        _RangeAdaptor(const _Callable& = {})
        ^
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.0.0/../../../../include/c++/10.0.0/ranges:1078:2:
note: candidate function [with _Callable = std::ranges::views::(lambda at
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.0.0/../../../../include/c++/10.0.0/ranges:1513:9)]
        _RangeAdaptor(_Callable __callable)
        ^
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.0.0/../../../../include/c++/10.0.0/ranges:1552:19:
error: missing 'typename' prior to dependent type name
'iterator_traits<iterator_t<_Base> >::iterator_category'
            using _Cat = iterator_traits<iterator_t<_Base>>::iterator_category;
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.0.0/../../../../include/c++/10.0.0/ranges:1853:47:
error: ambiguous deduction for template arguments of '_RangeAdaptor'
    inline constexpr __adaptor::_RangeAdaptor transform
                                              ^
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.0.0/../../../../include/c++/10.0.0/ranges:1073:2:
note: candidate function [with _Callable = std::ranges::views::(lambda at
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.0.0/../../../../include/c++/10.0.0/ranges:1854:9)]
        _RangeAdaptor(const _Callable& = {})
        ^
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.0.0/../../../../include/c++/10.0.0/ranges:1078:2:
note: candidate function [with _Callable = std::ranges::views::(lambda at
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.0.0/../../../../include/c++/10.0.0/ranges:1854:9)]
        _RangeAdaptor(_Callable __callable)
        ^
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.0.0/../../../../include/c++/10.0.0/ranges:2000:47:
error: ambiguous deduction for template arguments of '_RangeAdaptor'
    inline constexpr __adaptor::_RangeAdaptor take
                                              ^
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.0.0/../../../../include/c++/10.0.0/ranges:1073:2:
note: candidate function [with _Callable = std::ranges::views::(lambda at
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.0.0/../../../../include/c++/10.0.0/ranges:2001:9)]
        _RangeAdaptor(const _Callable& = {})
        ^
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.0.0/../../../../include/c++/10.0.0/ranges:1078:2:
note: candidate function [with _Callable = std::ranges::views::(lambda at
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.0.0/../../../../include/c++/10.0.0/ranges:2001:9)]
        _RangeAdaptor(_Callable __callable)
        ^
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.0.0/../../../../include/c++/10.0.0/ranges:2092:47:
error: ambiguous deduction for template arguments of '_RangeAdaptor'
    inline constexpr __adaptor::_RangeAdaptor take_while
                                              ^
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.0.0/../../../../include/c++/10.0.0/ranges:1073:2:
note: candidate function [with _Callable = std::ranges::views::(lambda at
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.0.0/../../../../include/c++/10.0.0/ranges:2093:9)]
        _RangeAdaptor(const _Callable& = {})
        ^
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.0.0/../../../../include/c++/10.0.0/ranges:1078:2:
note: candidate function [with _Callable = std::ranges::views::(lambda at
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.0.0/../../../../include/c++/10.0.0/ranges:2093:9)]
        _RangeAdaptor(_Callable __callable)
        ^
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.0.0/../../../../include/c++/10.0.0/ranges:2169:47:
error: ambiguous deduction for template arguments of '_RangeAdaptor'
    inline constexpr __adaptor::_RangeAdaptor drop
                                              ^
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.0.0/../../../../include/c++/10.0.0/ranges:1073:2:
note: candidate function [with _Callable = std::ranges::views::(lambda at
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.0.0/../../../../include/c++/10.0.0/ranges:2170:9)]
        _RangeAdaptor(const _Callable& = {})
        ^
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.0.0/../../../../include/c++/10.0.0/ranges:1078:2:
note: candidate function [with _Callable = std::ranges::views::(lambda at
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.0.0/../../../../include/c++/10.0.0/ranges:2170:9)]
        _RangeAdaptor(_Callable __callable)
        ^
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.0.0/../../../../include/c++/10.0.0/ranges:2225:47:
error: ambiguous deduction for template arguments of '_RangeAdaptor'
    inline constexpr __adaptor::_RangeAdaptor drop_while
                                              ^
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.0.0/../../../../include/c++/10.0.0/ranges:1073:2:
note: candidate function [with _Callable = std::ranges::views::(lambda at
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.0.0/../../../../include/c++/10.0.0/ranges:2226:9)]
        _RangeAdaptor(const _Callable& = {})
        ^
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.0.0/../../../../include/c++/10.0.0/ranges:1078:2:
note: candidate function [with _Callable = std::ranges::views::(lambda at
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.0.0/../../../../include/c++/10.0.0/ranges:2226:9)]
        _RangeAdaptor(_Callable __callable)
        ^
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.0.0/../../../../include/c++/10.0.0/ranges:2297:10:
error: missing 'typename' prior to dependent type name
'iterator_traits<iterator_t<_Base> >::iterator_category'
              = iterator_traits<iterator_t<_Base>>::iterator_category;
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.0.0/../../../../include/c++/10.0.0/ranges:2299:10:
error: missing 'typename' prior to dependent type name
'iterator_traits<iterator_t<range_reference_t<_Base> > >::iterator_category'
              = iterator_traits<iterator_t<range_reference_t<_Base>>>
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.0.0/../../../../include/c++/10.0.0/ranges:2768:19:
error: missing 'typename' prior to dependent type name
'iterator_traits<iterator_t<_Base> >::iterator_category'
            using _Cat = iterator_traits<iterator_t<_Base>>::iterator_category;
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.0.0/../../../../include/c++/10.0.0/ranges:2942:47:
error: ambiguous deduction for template arguments of '_RangeAdaptor'
    inline constexpr __adaptor::_RangeAdaptor split
                                              ^
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.0.0/../../../../include/c++/10.0.0/ranges:1073:2:
note: candidate function [with _Callable = std::ranges::views::(lambda at
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.0.0/../../../../include/c++/10.0.0/ranges:2943:9)]
        _RangeAdaptor(const _Callable& = {})
        ^
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.0.0/../../../../include/c++/10.0.0/ranges:1078:2:
note: candidate function [with _Callable = std::ranges::views::(lambda at
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.0.0/../../../../include/c++/10.0.0/ranges:2943:9)]
        _RangeAdaptor(_Callable __callable)
        ^
12 errors generated.


libstdc++ from gcc 10-20200209 works perfectly with both gcc and clang.


More information about the Gcc-bugs mailing list