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)