* [PATCH] Fix -Wsystem-header warnings in libstdc++ @ 2017-12-01 15:12 Jonathan Wakely 2017-12-01 16:10 ` Jonathan Wakely 0 siblings, 1 reply; 4+ messages in thread From: Jonathan Wakely @ 2017-12-01 15:12 UTC (permalink / raw) To: libstdc++, gcc-patches [-- Attachment #1: Type: text/plain, Size: 116 bytes --] This fixes a number of warnings that show up with -Wsystem-headers Tested powerpc64le-linux, committed to trunk. [-- Attachment #2: patch.txt --] [-- Type: text/x-patch, Size: 6371 bytes --] commit cc833c247c3b334c56feff8898bd02c8f9f3fc6a Author: Jonathan Wakely <jwakely@redhat.com> Date: Fri Dec 1 14:13:47 2017 +0000 Add comment to fix -Wfallthrough warning * include/bits/locale_facets_nonio.tcc (money_get::_M_extract): Add fallthrough comment. diff --git a/libstdc++-v3/include/bits/locale_facets_nonio.tcc b/libstdc++-v3/include/bits/locale_facets_nonio.tcc index a449c41e6b8..135dd0b9d8f 100644 --- a/libstdc++-v3/include/bits/locale_facets_nonio.tcc +++ b/libstdc++-v3/include/bits/locale_facets_nonio.tcc @@ -282,6 +282,7 @@ _GLIBCXX_BEGIN_NAMESPACE_LDBL_OR_CXX11 ++__beg; else __testvalid = false; + // fallthrough case money_base::none: // Only if not at the end of the pattern. if (__i != 3) commit 98e449432c7ceddb157ccc5e94e6c2886c5d33e1 Author: Jonathan Wakely <jwakely@redhat.com> Date: Thu Nov 30 16:57:20 2017 +0000 Fix -Wempty-body warnings for debug assertions * include/bits/node_handle.h (_Node_handle_common::operator=) (_Node_handle_common::_M_swap): Add braces around debug assertions. diff --git a/libstdc++-v3/include/bits/node_handle.h b/libstdc++-v3/include/bits/node_handle.h index 7f109ada6f1..8a1e465893e 100644 --- a/libstdc++-v3/include/bits/node_handle.h +++ b/libstdc++-v3/include/bits/node_handle.h @@ -87,10 +87,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION || !this->_M_alloc) this->_M_alloc = std::move(__nh._M_alloc); else - __glibcxx_assert(this->_M_alloc == __nh._M_alloc); + { + __glibcxx_assert(this->_M_alloc == __nh._M_alloc); + } } else - __glibcxx_assert(_M_alloc); + { + __glibcxx_assert(_M_alloc); + } __nh._M_ptr = nullptr; __nh._M_alloc = nullopt; return *this; @@ -109,7 +113,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION || !_M_alloc || !__nh._M_alloc) _M_alloc.swap(__nh._M_alloc); else - __glibcxx_assert(_M_alloc == __nh._M_alloc); + { + __glibcxx_assert(_M_alloc == __nh._M_alloc); + } } private: commit 93ebef15310e0ebed92041ebbc6c860c1b06e2a6 Author: Jonathan Wakely <jwakely@redhat.com> Date: Thu Nov 30 20:14:31 2017 +0000 Use const char* to fix -Wwrite-strings warning * include/ext/ropeimpl.h (rope::_S_dump): Use const char*. diff --git a/libstdc++-v3/include/ext/ropeimpl.h b/libstdc++-v3/include/ext/ropeimpl.h index 9e88ce14c18..4842034c1e8 100644 --- a/libstdc++-v3/include/ext/ropeimpl.h +++ b/libstdc++-v3/include/ext/ropeimpl.h @@ -1139,7 +1139,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION } else { - char* __kind; + const char* __kind; switch (__r->_M_tag) { commit 3a05b2c46c829bc7c3698d3d432372c9b70881c7 Author: Jonathan Wakely <jwakely@redhat.com> Date: Thu Nov 30 20:18:47 2017 +0000 Add [[noreturn]] attributes to fix warning * libsupc++/nested_exception.h (__throw_with_nested_impl): Add noreturn attribute. diff --git a/libstdc++-v3/libsupc++/nested_exception.h b/libstdc++-v3/libsupc++/nested_exception.h index 43970b4ef86..27bccfce35f 100644 --- a/libstdc++-v3/libsupc++/nested_exception.h +++ b/libstdc++-v3/libsupc++/nested_exception.h @@ -92,6 +92,7 @@ namespace std // Throw an exception of unspecified type that is publicly derived from // both remove_reference_t<_Tp> and nested_exception. template<typename _Tp> + [[noreturn]] inline void __throw_with_nested_impl(_Tp&& __t, true_type) { @@ -100,6 +101,7 @@ namespace std } template<typename _Tp> + [[noreturn]] inline void __throw_with_nested_impl(_Tp&& __t, false_type) { throw std::forward<_Tp>(__t); } commit a82e6e608b99d5be038869b3745d1f49ddfc022b Author: Jonathan Wakely <jwakely@redhat.com> Date: Fri Dec 1 13:59:59 2017 +0000 Remove stray semi-colons at namespace scope * include/bits/regex_executor.tcc (_Executor::_M_rep_once_more): Remove semi-colon after function body. * include/bits/uniform_int_dist.h (_Power_of_2): Likewise. diff --git a/libstdc++-v3/include/bits/regex_executor.tcc b/libstdc++-v3/include/bits/regex_executor.tcc index 2ceba35e7b8..008ffa0e836 100644 --- a/libstdc++-v3/include/bits/regex_executor.tcc +++ b/libstdc++-v3/include/bits/regex_executor.tcc @@ -170,7 +170,7 @@ namespace __detail // visited more than twice. It's `twice` instead of `once` because // we need to spare one more time for potential group capture. template<typename _BiIter, typename _Alloc, typename _TraitsT, - bool __dfs_mode> + bool __dfs_mode> void _Executor<_BiIter, _Alloc, _TraitsT, __dfs_mode>:: _M_rep_once_more(_Match_mode __match_mode, _StateIdT __i) { @@ -193,7 +193,7 @@ namespace __detail __rep_count.second--; } } - }; + } // _M_alt branch is "match once more", while _M_next is "get me out // of this quantifier". Executing _M_next first or _M_alt first don't diff --git a/libstdc++-v3/include/bits/uniform_int_dist.h b/libstdc++-v3/include/bits/uniform_int_dist.h index 16509c4ef8a..c64c02c245e 100644 --- a/libstdc++-v3/include/bits/uniform_int_dist.h +++ b/libstdc++-v3/include/bits/uniform_int_dist.h @@ -46,7 +46,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION _Power_of_2(_Tp __x) { return ((__x - 1) & __x) == 0; - }; + } } /** commit 13b4b8dab56d73faa858926cdcf16dc839455657 Author: Jonathan Wakely <jwakely@redhat.com> Date: Thu Nov 30 18:03:06 2017 +0000 Use value-init syntax in std::__detail::__airy * include/tr1/modified_bessel_func.tcc (__airy): Use value-init not list-init. diff --git a/libstdc++-v3/include/tr1/modified_bessel_func.tcc b/libstdc++-v3/include/tr1/modified_bessel_func.tcc index 3910b95bd28..f39ff6c82d2 100644 --- a/libstdc++-v3/include/tr1/modified_bessel_func.tcc +++ b/libstdc++-v3/include/tr1/modified_bessel_func.tcc @@ -384,11 +384,11 @@ namespace tr1 __Bip = __Aip = __Bi = __Ai = std::numeric_limits<_Tp>::quiet_NaN(); else if (__z == _S_inf) { - __Aip = __Ai = _Tp{0}; + __Aip = __Ai = _Tp(0); __Bip = __Bi = _S_inf; } else if (__z == -_S_inf) - __Bip = __Aip = __Bi = __Ai = _Tp{0}; + __Bip = __Aip = __Bi = __Ai = _Tp(0); else if (__x > _Tp(0)) { _Tp __I_nu, __Ip_nu, __K_nu, __Kp_nu; ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] Fix -Wsystem-header warnings in libstdc++ 2017-12-01 15:12 [PATCH] Fix -Wsystem-header warnings in libstdc++ Jonathan Wakely @ 2017-12-01 16:10 ` Jonathan Wakely 2017-12-04 23:08 ` Jonathan Wakely 0 siblings, 1 reply; 4+ messages in thread From: Jonathan Wakely @ 2017-12-01 16:10 UTC (permalink / raw) To: libstdc++, gcc-patches [-- Attachment #1: Type: text/plain, Size: 188 bytes --] On 01/12/17 15:11 +0000, Jonathan Wakely wrote: >This fixes a number of warnings that show up with -Wsystem-headers This fixes some more. Tested powerpc64le-linux, committed to trunk. [-- Attachment #2: patch.txt --] [-- Type: text/x-patch, Size: 7520 bytes --] commit cea830828177721a6d201dd6c201c34235626641 Author: Jonathan Wakely <jwakely@redhat.com> Date: Fri Dec 1 15:59:01 2017 +0000 Fix narrowing conversions in string_view types * include/experimental/string_view (basic_string_view::_S_compare): Use value-init so narrowing conversions are not ill-formed. * include/std/string_view (basic_string_view::_S_compare): Likewise. diff --git a/libstdc++-v3/include/experimental/string_view b/libstdc++-v3/include/experimental/string_view index 96d1f58f8e9..ef171ecc025 100644 --- a/libstdc++-v3/include/experimental/string_view +++ b/libstdc++-v3/include/experimental/string_view @@ -422,11 +422,11 @@ inline namespace fundamentals_v1 static constexpr int _S_compare(size_type __n1, size_type __n2) noexcept { - return difference_type{__n1 - __n2} > std::numeric_limits<int>::max() + return difference_type(__n1 - __n2) > std::numeric_limits<int>::max() ? std::numeric_limits<int>::max() - : difference_type{__n1 - __n2} < std::numeric_limits<int>::min() + : difference_type(__n1 - __n2) < std::numeric_limits<int>::min() ? std::numeric_limits<int>::min() - : static_cast<int>(difference_type{__n1 - __n2}); + : static_cast<int>(difference_type(__n1 - __n2)); } size_t _M_len; diff --git a/libstdc++-v3/include/std/string_view b/libstdc++-v3/include/std/string_view index 1266a07d04f..3b2901ab3c6 100644 --- a/libstdc++-v3/include/std/string_view +++ b/libstdc++-v3/include/std/string_view @@ -408,7 +408,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION static constexpr int _S_compare(size_type __n1, size_type __n2) noexcept { - const difference_type __diff{__n1 - __n2}; + const difference_type __diff = __n1 - __n2; if (__diff > std::numeric_limits<int>::max()) return std::numeric_limits<int>::max(); if (__diff < std::numeric_limits<int>::min()) commit b992ef59e17964034ffb6dd094629468998ee6e9 Author: Jonathan Wakely <jwakely@redhat.com> Date: Thu Nov 30 16:26:22 2017 +0000 Disable -Wliteral-suffix for standard UDLs * include/bits/basic_string.h (operator""s): Add pragmas to disable -Wliteral-suffix warnings. * include/experimental/string_view (operator""sv): Likewise. * include/std/chrono (operator""h, operator""min, operator""s) (operator""ms, operator""us, operator""ns): Likewise. * include/std/complex (operator""if, operator""i, operator""il): Likewise. * include/std/string_view (operator""sv): Likewise. * testsuite/20_util/duration/literals/range.cc: Adjust dg-error. diff --git a/libstdc++-v3/include/bits/basic_string.h b/libstdc++-v3/include/bits/basic_string.h index a4b81137571..70373e7448a 100644 --- a/libstdc++-v3/include/bits/basic_string.h +++ b/libstdc++-v3/include/bits/basic_string.h @@ -6665,6 +6665,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION { inline namespace string_literals { +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wliteral-suffix" _GLIBCXX_DEFAULT_ABI_TAG inline basic_string<char> operator""s(const char* __str, size_t __len) @@ -6689,6 +6691,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION { return basic_string<char32_t>{__str, __len}; } #endif +#pragma GCC diagnostic pop } // inline namespace string_literals } // inline namespace literals diff --git a/libstdc++-v3/include/experimental/string_view b/libstdc++-v3/include/experimental/string_view index 8eaf9ec3d96..96d1f58f8e9 100644 --- a/libstdc++-v3/include/experimental/string_view +++ b/libstdc++-v3/include/experimental/string_view @@ -644,6 +644,8 @@ namespace experimental { inline namespace string_view_literals { +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wliteral-suffix" inline constexpr basic_string_view<char> operator""sv(const char* __str, size_t __len) noexcept { return basic_string_view<char>{__str, __len}; } @@ -663,6 +665,7 @@ namespace experimental operator""sv(const char32_t* __str, size_t __len) noexcept { return basic_string_view<char32_t>{__str, __len}; } #endif +#pragma GCC diagnostic pop } // namespace string_literals } // namespace literals } // namespace experimental diff --git a/libstdc++-v3/include/std/chrono b/libstdc++-v3/include/std/chrono index 9491508e637..2419e82acce 100644 --- a/libstdc++-v3/include/std/chrono +++ b/libstdc++-v3/include/std/chrono @@ -884,6 +884,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION { inline namespace chrono_literals { +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wliteral-suffix" template<typename _Rep, unsigned long long _Val> struct _Checked_integral_constant : integral_constant<_Rep, static_cast<_Rep>(_Val)> @@ -958,6 +960,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION operator""ns() { return __check_overflow<chrono::nanoseconds, _Digits...>(); } +#pragma GCC diagnostic pop } // inline namespace chrono_literals } // inline namespace literals @@ -966,7 +969,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION using namespace literals::chrono_literals; } // namespace chrono -#endif // __cplusplus > 201103L +#endif // C++14 // @} group chrono diff --git a/libstdc++-v3/include/std/complex b/libstdc++-v3/include/std/complex index bd8b09d84f0..61f8cc1fce3 100644 --- a/libstdc++-v3/include/std/complex +++ b/libstdc++-v3/include/std/complex @@ -1941,6 +1941,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION inline namespace literals { inline namespace complex_literals { +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wliteral-suffix" #define __cpp_lib_complex_udls 201309 constexpr std::complex<float> @@ -1967,6 +1969,7 @@ inline namespace complex_literals { operator""il(unsigned long long __num) { return std::complex<long double>{0.0L, static_cast<long double>(__num)}; } +#pragma GCC diagnostic pop } // inline namespace complex_literals } // inline namespace literals diff --git a/libstdc++-v3/include/std/string_view b/libstdc++-v3/include/std/string_view index 68b4b08f8f4..1266a07d04f 100644 --- a/libstdc++-v3/include/std/string_view +++ b/libstdc++-v3/include/std/string_view @@ -626,6 +626,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION { inline namespace string_view_literals { +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wliteral-suffix" inline constexpr basic_string_view<char> operator""sv(const char* __str, size_t __len) noexcept { return basic_string_view<char>{__str, __len}; } @@ -645,6 +647,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION operator""sv(const char32_t* __str, size_t __len) noexcept { return basic_string_view<char32_t>{__str, __len}; } #endif +#pragma GCC diagnostic pop } // namespace string_literals } // namespace literals diff --git a/libstdc++-v3/testsuite/20_util/duration/literals/range.cc b/libstdc++-v3/testsuite/20_util/duration/literals/range.cc index c0d1a6e5885..20d82c5cdbe 100644 --- a/libstdc++-v3/testsuite/20_util/duration/literals/range.cc +++ b/libstdc++-v3/testsuite/20_util/duration/literals/range.cc @@ -26,6 +26,6 @@ test01() // std::numeric_limits<int64_t>::max() == 9223372036854775807; auto h = 9223372036854775808h; - // { dg-error "cannot be represented" "" { target *-*-* } 892 } + // { dg-error "cannot be represented" "" { target *-*-* } 894 } } // { dg-prune-output "in constexpr expansion" } // needed for -O0 ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] Fix -Wsystem-header warnings in libstdc++ 2017-12-01 16:10 ` Jonathan Wakely @ 2017-12-04 23:08 ` Jonathan Wakely 2017-12-04 23:15 ` Jonathan Wakely 0 siblings, 1 reply; 4+ messages in thread From: Jonathan Wakely @ 2017-12-04 23:08 UTC (permalink / raw) To: libstdc++, gcc-patches [-- Attachment #1: Type: text/plain, Size: 561 bytes --] On 01/12/17 16:10 +0000, Jonathan Wakely wrote: >On 01/12/17 15:11 +0000, Jonathan Wakely wrote: >>This fixes a number of warnings that show up with -Wsystem-headers > >This fixes some more. And some more, this time for -Wunused, -Wcomment, and -Wvariadic-macros. Tested powerpc64le-linux, committed to trunk. The purpose of these is not only to reduce noise if users use -Wsystem-headers, but to get us to a place where PR 50871 can be fixed (i.e. build and test libstdc++ without having useful warnings suppressed by the #pragma GCC system_header lines). [-- Attachment #2: patch.txt --] [-- Type: text/x-patch, Size: 9346 bytes --] commit e04e77ee6202b69652d033d419283bc35d67897a Author: Jonathan Wakely <jwakely@redhat.com> Date: Mon Dec 4 20:49:42 2017 +0000 Fix warnings in <bits/regex_compiler.tcc> * include/bits/regex_compiler.tcc: Use C-style comment to work around PR preprocessor/61638. (__INSERT_REGEX_MATCHER): Replace GNU extension with __VA_ARGS__. diff --git a/libstdc++-v3/include/bits/regex_compiler.tcc b/libstdc++-v3/include/bits/regex_compiler.tcc index 1f7dd91b643..0c89800ea94 100644 --- a/libstdc++-v3/include/bits/regex_compiler.tcc +++ b/libstdc++-v3/include/bits/regex_compiler.tcc @@ -30,8 +30,9 @@ // FIXME make comments doxygen format. +/* // This compiler refers to "Regular Expression Matching Can Be Simple And Fast" -// (http://swtch.com/~rsc/regexp/regexp1.html"), +// (http://swtch.com/~rsc/regexp/regexp1.html), // but doesn't strictly follow it. // // When compiling, states are *chained* instead of tree- or graph-constructed. @@ -51,7 +52,8 @@ // article. // // That's why we introduced dummy node here ------ "end_tag" is a dummy node. -// All dummy node will be eliminated at the end of compiling process. +// All dummy nodes will be eliminated at the end of compilation. +*/ namespace std _GLIBCXX_VISIBILITY(default) { @@ -292,18 +294,18 @@ namespace __detail return true; } -#define __INSERT_REGEX_MATCHER(__func, args...)\ +#define __INSERT_REGEX_MATCHER(__func, ...)\ do\ if (!(_M_flags & regex_constants::icase))\ if (!(_M_flags & regex_constants::collate))\ - __func<false, false>(args);\ + __func<false, false>(__VA_ARGS__);\ else\ - __func<false, true>(args);\ + __func<false, true>(__VA_ARGS__);\ else\ if (!(_M_flags & regex_constants::collate))\ - __func<true, false>(args);\ + __func<true, false>(__VA_ARGS__);\ else\ - __func<true, true>(args);\ + __func<true, true>(__VA_ARGS__);\ while (false) template<typename _TraitsT> commit f2d7faeec2d63743c5acdc1dc77fca7ba64fce1f Author: Jonathan Wakely <jwakely@redhat.com> Date: Mon Dec 4 16:08:34 2017 +0000 Fix -Wunused warnings in libstdc++ headers * config/io/basic_file_stdio.h (__basic_file): Remove name of unused parameter. * include/bits/boost_concept_check.h: Add pragmas to disable -Wunused-local-typedef warnings. * include/bits/codecvt.h (codecvt_byname<char16_t, char, mbstate_t>) (codecvt_byname<char32_t, char, mbstate_t>): Remove name of unused parameter. * include/bits/locale_facets_nonio.tcc (time_get::do_get_weekday) (time_get::do_get_monthname, time_get::do_get_year): Remove unused variables. * include/std/bitset (_Base_bitset<0>::_M_getword): Remove name of unused parameter. * include/std/streambuf (_IsUnused): Define. (basic_streambuf::imbue, basic_streambuf::pbackfail) (basic_streambuf::overflow): Add macro to unused parameters. * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error. diff --git a/libstdc++-v3/config/io/basic_file_stdio.h b/libstdc++-v3/config/io/basic_file_stdio.h index f959ea534cb..76435e417ef 100644 --- a/libstdc++-v3/config/io/basic_file_stdio.h +++ b/libstdc++-v3/config/io/basic_file_stdio.h @@ -63,7 +63,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION __basic_file(__c_lock* __lock = 0) throw (); #if __cplusplus >= 201103L - __basic_file(__basic_file&& __rv, __c_lock* __lock = 0) noexcept + __basic_file(__basic_file&& __rv, __c_lock* = 0) noexcept : _M_cfile(__rv._M_cfile), _M_cfile_created(__rv._M_cfile_created) { __rv._M_cfile = nullptr; diff --git a/libstdc++-v3/include/bits/boost_concept_check.h b/libstdc++-v3/include/bits/boost_concept_check.h index fb9a643c869..43ab03415e5 100644 --- a/libstdc++-v3/include/bits/boost_concept_check.h +++ b/libstdc++-v3/include/bits/boost_concept_check.h @@ -48,6 +48,9 @@ namespace __gnu_cxx _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-local-typedefs" + #define _IsUnused __attribute__ ((__unused__)) // When the C-C code is in use, we would like this function to do as little @@ -783,6 +786,7 @@ struct _Aux_require_same<_Tp,_Tp> { typedef _Tp _Type; }; _GLIBCXX_END_NAMESPACE_VERSION } // namespace +#pragma GCC diagnostic pop #undef _IsUnused #endif // _GLIBCXX_BOOST_CONCEPT_CHECK diff --git a/libstdc++-v3/include/bits/codecvt.h b/libstdc++-v3/include/bits/codecvt.h index fc2da321ab6..09af6d88fd2 100644 --- a/libstdc++-v3/include/bits/codecvt.h +++ b/libstdc++-v3/include/bits/codecvt.h @@ -612,7 +612,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION { public: explicit - codecvt_byname(const char* __s, size_t __refs = 0) + codecvt_byname(const char*, size_t __refs = 0) : codecvt<char16_t, char, mbstate_t>(__refs) { } explicit @@ -630,7 +630,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION { public: explicit - codecvt_byname(const char* __s, size_t __refs = 0) + codecvt_byname(const char*, size_t __refs = 0) : codecvt<char32_t, char, mbstate_t>(__refs) { } explicit diff --git a/libstdc++-v3/include/bits/locale_facets_nonio.tcc b/libstdc++-v3/include/bits/locale_facets_nonio.tcc index 135dd0b9d8f..63e832ea233 100644 --- a/libstdc++-v3/include/bits/locale_facets_nonio.tcc +++ b/libstdc++-v3/include/bits/locale_facets_nonio.tcc @@ -1096,7 +1096,6 @@ _GLIBCXX_END_NAMESPACE_LDBL_OR_CXX11 { const locale& __loc = __io._M_getloc(); const __timepunct<_CharT>& __tp = use_facet<__timepunct<_CharT> >(__loc); - const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc); const char_type* __days[14]; __tp._M_days_abbreviated(__days); __tp._M_days(__days + 7); @@ -1123,7 +1122,6 @@ _GLIBCXX_END_NAMESPACE_LDBL_OR_CXX11 { const locale& __loc = __io._M_getloc(); const __timepunct<_CharT>& __tp = use_facet<__timepunct<_CharT> >(__loc); - const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc); const char_type* __months[24]; __tp._M_months_abbreviated(__months); __tp._M_months(__months + 12); @@ -1148,8 +1146,6 @@ _GLIBCXX_END_NAMESPACE_LDBL_OR_CXX11 do_get_year(iter_type __beg, iter_type __end, ios_base& __io, ios_base::iostate& __err, tm* __tm) const { - const locale& __loc = __io._M_getloc(); - const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc); int __tmpyear; ios_base::iostate __tmperr = ios_base::goodbit; diff --git a/libstdc++-v3/include/std/bitset b/libstdc++-v3/include/std/bitset index 382886ca224..0afad6e5e0e 100644 --- a/libstdc++-v3/include/std/bitset +++ b/libstdc++-v3/include/std/bitset @@ -561,7 +561,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER } _GLIBCXX_CONSTEXPR _WordT - _M_getword(size_t __pos) const _GLIBCXX_NOEXCEPT + _M_getword(size_t) const _GLIBCXX_NOEXCEPT { return 0; } _GLIBCXX_CONSTEXPR _WordT diff --git a/libstdc++-v3/include/std/streambuf b/libstdc++-v3/include/std/streambuf index c1fd395b827..34fa9a45511 100644 --- a/libstdc++-v3/include/std/streambuf +++ b/libstdc++-v3/include/std/streambuf @@ -46,6 +46,8 @@ namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION +#define _IsUnused __attribute__ ((__unused__)) + template<typename _CharT, typename _Traits> streamsize __copy_streambufs_eof(basic_streambuf<_CharT, _Traits>*, @@ -578,7 +580,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION * @note Base class version does nothing. */ virtual void - imbue(const locale& __loc) + imbue(const locale& __loc _IsUnused) { } // [27.5.2.4.2] buffer management and positioning @@ -726,7 +728,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION * @note Base class version does nothing, returns eof(). */ virtual int_type - pbackfail(int_type __c = traits_type::eof()) + pbackfail(int_type __c _IsUnused = traits_type::eof()) { return traits_type::eof(); } // Put area: @@ -770,7 +772,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION * @note Base class version does nothing, returns eof(). */ virtual int_type - overflow(int_type __c = traits_type::eof()) + overflow(int_type __c _IsUnused = traits_type::eof()) { return traits_type::eof(); } #if _GLIBCXX_USE_DEPRECATED && __cplusplus <= 201402L @@ -852,6 +854,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION basic_streambuf<wchar_t>* __sbout, bool& __ineof); #endif +#undef _IsUnused + _GLIBCXX_END_NAMESPACE_VERSION } // namespace diff --git a/libstdc++-v3/testsuite/24_iterators/operations/prev_neg.cc b/libstdc++-v3/testsuite/24_iterators/operations/prev_neg.cc index bcbde41093d..3fbdb6f6f09 100644 --- a/libstdc++-v3/testsuite/24_iterators/operations/prev_neg.cc +++ b/libstdc++-v3/testsuite/24_iterators/operations/prev_neg.cc @@ -38,5 +38,5 @@ test02() { const Y array[1] = { }; std::prev(array + 1); - // { dg-error "forward_iterator" "" { target *-*-* } 220 } + // { dg-error "forward_iterator" "" { target *-*-* } 223 } } ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] Fix -Wsystem-header warnings in libstdc++ 2017-12-04 23:08 ` Jonathan Wakely @ 2017-12-04 23:15 ` Jonathan Wakely 0 siblings, 0 replies; 4+ messages in thread From: Jonathan Wakely @ 2017-12-04 23:15 UTC (permalink / raw) To: libstdc++, gcc-patches On 04/12/17 23:07 +0000, Jonathan Wakely wrote: >On 01/12/17 16:10 +0000, Jonathan Wakely wrote: >>On 01/12/17 15:11 +0000, Jonathan Wakely wrote: >>>This fixes a number of warnings that show up with -Wsystem-headers >> >>This fixes some more. > >And some more, this time for -Wunused, -Wcomment, and >-Wvariadic-macros. > >Tested powerpc64le-linux, committed to trunk. > >The purpose of these is not only to reduce noise if users use >-Wsystem-headers, but to get us to a place where PR 50871 can be fixed >(i.e. build and test libstdc++ without having useful warnings >suppressed by the #pragma GCC system_header lines). This warning remains: /home/jwakely/gcc/8/include/c++/8.0.0/bits/valarray_array.h:56:12: warning: type qualifiers ignored on function return type [-Wignored-qualifiers] inline _Tp*__restrict__ ^~~ I think we can just remove the __restrict__. ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2017-12-04 23:15 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2017-12-01 15:12 [PATCH] Fix -Wsystem-header warnings in libstdc++ Jonathan Wakely 2017-12-01 16:10 ` Jonathan Wakely 2017-12-04 23:08 ` Jonathan Wakely 2017-12-04 23:15 ` Jonathan Wakely
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).