[Bug c++/97153] New: [10 Regression] -Wformat causes libstdc++ tests to FAIL

redi at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Sep 21 19:08:46 GMT 2020


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

            Bug ID: 97153
           Summary: [10 Regression] -Wformat causes libstdc++ tests to
                    FAIL
           Product: gcc
           Version: 10.2.1
            Status: UNCONFIRMED
          Keywords: rejects-valid
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: redi at gcc dot gnu.org
                CC: jakub at gcc dot gnu.org
  Target Milestone: ---

The attached preprocessed code compiles with -std=gnu++20 -O1 but fails if you
add -Wformat

This is the output for -std=gnu++20 -O1 -fcompare-debug=-Wformat

In file included from
/home/jwakely/src/gcc/build10/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/ranges_algobase.h:38,
                 from
/home/jwakely/src/gcc/build10/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/ranges_algo.h:35,
                 from
/home/jwakely/src/gcc/build10/x86_64-pc-linux-gnu/libstdc++-v3/include/algorithm:64,
                 from
/home/jwakely/src/gcc/gcc-10/libstdc++-v3/testsuite/std/ranges/adaptors/join.cc:21:
/home/jwakely/src/gcc/build10/x86_64-pc-linux-gnu/libstdc++-v3/include/ranges:
In instantiation of ‘constexpr const _Derived&
std::ranges::view_interface<_Derived>::_M_derived() const [with _Derived =
std::ranges::join_view<std::ranges::transform_view<std::ranges::subrange<std::counted_iterator<__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char>*,
std::vector<std::__cxx11::basic_string<char> > > >, std::default_sentinel_t,
std::ranges::subrange_kind::sized>, std::identity> >]’:
/home/jwakely/src/gcc/build10/x86_64-pc-linux-gnu/libstdc++-v3/include/ranges:130:73:
  required from ‘constexpr std::ranges::view_interface<_Derived>::operator
bool() const requires requires{std::ranges::__cust::empty(((const
std::ranges::view_interface<_Derived>*)this)->std::ranges::view_interface<_Derived>::_M_derived()());}
[with _Derived =
std::ranges::join_view<std::ranges::transform_view<std::ranges::subrange<std::counted_iterator<__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char>*,
std::vector<std::__cxx11::basic_string<char> > > >, std::default_sentinel_t,
std::ranges::subrange_kind::sized>, std::identity> >]’
/home/jwakely/src/gcc/build10/x86_64-pc-linux-gnu/libstdc++-v3/include/ranges:2673:56:
  required from ‘constexpr auto std::ranges::join_view<_Vp>::end() [with _Vp =
std::ranges::transform_view<std::ranges::subrange<std::counted_iterator<__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char>*,
std::vector<std::__cxx11::basic_string<char> > > >, std::default_sentinel_t,
std::ranges::subrange_kind::sized>, std::identity>]’
/home/jwakely/src/gcc/build10/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/range_access.h:419:26:
  required from ‘constexpr auto
std::ranges::__cust_access::_End::operator()(_Tp&&) const [with _Tp =
std::ranges::join_view<std::ranges::transform_view<std::ranges::subrange<std::counted_iterator<__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char>*,
std::vector<std::__cxx11::basic_string<char> > > >, std::default_sentinel_t,
std::ranges::subrange_kind::sized>, std::identity> >&]’
/home/jwakely/src/gcc/build10/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/range_access.h:865:13:
  required from here
/home/jwakely/src/gcc/build10/x86_64-pc-linux-gnu/libstdc++-v3/include/ranges:112:16:
error: static assertion failed
  112 |  static_assert(view<_Derived>);
      |                ^~~~~~~~~~~~~~
/home/jwakely/src/gcc/build10/x86_64-pc-linux-gnu/libstdc++-v3/include/ranges:
In instantiation of ‘constexpr _Derived&
std::ranges::view_interface<_Derived>::_M_derived() [with _Derived =
std::ranges::join_view<std::ranges::transform_view<std::ranges::subrange<std::counted_iterator<__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char>*,
std::vector<std::__cxx11::basic_string<char> > > >, std::default_sentinel_t,
std::ranges::subrange_kind::sized>, std::identity> >]’:
/home/jwakely/src/gcc/build10/x86_64-pc-linux-gnu/libstdc++-v3/include/ranges:126:67:
  required from ‘constexpr std::ranges::view_interface<_Derived>::operator
bool() requires
requires{std::ranges::__cust::empty(((std::ranges::view_interface<_Derived>*)this)->std::ranges::view_interface<_Derived>::_M_derived()());}
[with _Derived =
std::ranges::join_view<std::ranges::transform_view<std::ranges::subrange<std::counted_iterator<__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char>*,
std::vector<std::__cxx11::basic_string<char> > > >, std::default_sentinel_t,
std::ranges::subrange_kind::sized>, std::identity> >]’
/home/jwakely/src/gcc/build10/x86_64-pc-linux-gnu/libstdc++-v3/include/ranges:2673:56:
  required from ‘constexpr auto std::ranges::join_view<_Vp>::end() [with _Vp =
std::ranges::transform_view<std::ranges::subrange<std::counted_iterator<__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char>*,
std::vector<std::__cxx11::basic_string<char> > > >, std::default_sentinel_t,
std::ranges::subrange_kind::sized>, std::identity>]’
/home/jwakely/src/gcc/build10/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/range_access.h:419:26:
  required from ‘constexpr auto
std::ranges::__cust_access::_End::operator()(_Tp&&) const [with _Tp =
std::ranges::join_view<std::ranges::transform_view<std::ranges::subrange<std::counted_iterator<__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char>*,
std::vector<std::__cxx11::basic_string<char> > > >, std::default_sentinel_t,
std::ranges::subrange_kind::sized>, std::identity> >&]’
/home/jwakely/src/gcc/build10/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/range_access.h:865:13:
  required from here
/home/jwakely/src/gcc/build10/x86_64-pc-linux-gnu/libstdc++-v3/include/ranges:105:16:
error: static assertion failed
  105 |  static_assert(view<_Derived>);
      |                ^~~~~~~~~~~~~~
g++: error: during ‘-fcompare-debug’ recompilation
g++: error: /tmp/join-good.ii: ‘-fcompare-debug’ failure (length)


More information about the Gcc-bugs mailing list