[committed] libstdc++: Fix -Wsign-compare warnings in headers

Jonathan Wakely jwakely@redhat.com
Tue Oct 27 16:34:19 GMT 2020


libstdc++-v3/ChangeLog:

	* include/bits/locale_conv.h (__str_codecvt_out_all):
	Add cast to compare operands of the same signedness.
	* include/bits/locale_facets_nonio.tcc
	(time_get::_M_extract_wday_or_month): Likewise.
	* include/bits/sstream.tcc (basic_stringbuf::overflow):
	Likewise.
	* include/tr1/legendre_function.tcc (__sph_legendre): Use
	unsigned for loop variable.

Tested x86_64-linux. Committed to trunk.

-------------- next part --------------
commit 2232b6136822cc44d835f2b788e8d2d77b898878
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Tue Oct 27 16:32:53 2020

    libstdc++: Fix -Wsign-compare warnings in headers
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/locale_conv.h (__str_codecvt_out_all):
            Add cast to compare operands of the same signedness.
            * include/bits/locale_facets_nonio.tcc
            (time_get::_M_extract_wday_or_month): Likewise.
            * include/bits/sstream.tcc (basic_stringbuf::overflow):
            Likewise.
            * include/tr1/legendre_function.tcc (__sph_legendre): Use
            unsigned for loop variable.

diff --git a/libstdc++-v3/include/bits/locale_conv.h b/libstdc++-v3/include/bits/locale_conv.h
index f1d7032e8bc..52c37a4feac 100644
--- a/libstdc++-v3/include/bits/locale_conv.h
+++ b/libstdc++-v3/include/bits/locale_conv.h
@@ -185,7 +185,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       _State __state = {};
       size_t __n;
       return __str_codecvt_out(__first, __last, __outstr, __cvt, __state, __n)
-	&& (__n == (__last - __first));
+	&& (__n == size_t(__last - __first));
     }
 
 #ifdef _GLIBCXX_USE_CHAR8_T
diff --git a/libstdc++-v3/include/bits/locale_facets_nonio.tcc b/libstdc++-v3/include/bits/locale_facets_nonio.tcc
index ff84d7349cd..a8639f6ba28 100644
--- a/libstdc++-v3/include/bits/locale_facets_nonio.tcc
+++ b/libstdc++-v3/include/bits/locale_facets_nonio.tcc
@@ -1046,8 +1046,8 @@ _GLIBCXX_END_NAMESPACE_LDBL_OR_CXX11
       if ((__nmatches == 1 && __matches_lengths[0] == __pos)
 	  || (__nmatches == 2 && (__matches_lengths[0] == __pos
 				  || __matches_lengths[1] == __pos)))
-	__member = (__matches[0] >= __indexlen
-		    ? __matches[0] - __indexlen : __matches[0]);
+	__member = (__matches[0] >= (int)__indexlen
+		    ? __matches[0] - (int)__indexlen : __matches[0]);
       else
 	__err |= ios_base::failbit;
 
diff --git a/libstdc++-v3/include/bits/sstream.tcc b/libstdc++-v3/include/bits/sstream.tcc
index 9e70c36d071..5dd06002a0c 100644
--- a/libstdc++-v3/include/bits/sstream.tcc
+++ b/libstdc++-v3/include/bits/sstream.tcc
@@ -90,7 +90,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       const __size_type __capacity = _M_string.capacity();
 
 #if _GLIBCXX_USE_CXX11_ABI
-      if ((this->epptr() - this->pbase()) < __capacity)
+      if (size_t(this->epptr() - this->pbase()) < __capacity)
 	{
 	  // There is additional capacity in _M_string that can be used.
 	  char_type* __base = const_cast<char_type*>(_M_string.data());
diff --git a/libstdc++-v3/include/tr1/legendre_function.tcc b/libstdc++-v3/include/tr1/legendre_function.tcc
index 126355beb31..1e66a5a2e57 100644
--- a/libstdc++-v3/include/tr1/legendre_function.tcc
+++ b/libstdc++-v3/include/tr1/legendre_function.tcc
@@ -274,7 +274,7 @@ namespace tr1
               _Tp __y_lm = _Tp(0);
 
               // Compute Y_l^m, l > m+1, upward recursion on l.
-              for (int __ll = __m + 2; __ll <= __l; ++__ll)
+              for (unsigned int __ll = __m + 2; __ll <= __l; ++__ll)
                 {
                   const _Tp __rat1 = _Tp(__ll - __m) / _Tp(__ll + __m);
                   const _Tp __rat2 = _Tp(__ll - __m - 1) / _Tp(__ll + __m - 1);


More information about the Libstdc++ mailing list