svn commit: r242347 - in stable/9: contrib/libstdc++/config/os/bsd/freebsd contrib/libstdc++/include/bits contrib/libstdc++/include/debug contrib/libstdc++/include/ext contrib/libstdc++/include/std...

Dimitry Andric dim at FreeBSD.org
Tue Oct 30 07:51:19 UTC 2012


Author: dim
Date: Tue Oct 30 07:51:18 2012
New Revision: 242347
URL: http://svn.freebsd.org/changeset/base/242347

Log:
  MFC r241957:
  
    Fix several clang warnings in libstdc++, which were exposed by the
    recent atf import.  These changes are purely cosmetic, no functional
    change.
  
  MFC r241959:
  
    Fix a number of other clang warnings in libstdc++, which could appear
    when building other C++ software with it.  Also fix one actual bug in
    libsupc++, which was exposed by such a warning.  This latter fix is the
    only functional change.
  
  MFC r241960:
  
    For building GNU libstdc++ and libsupc++, filter out libc++-specific and
    -std= flags above c++98 or gnu++98 from CXXFLAGS *after* including
    bsd.lib.mk, otherwise some additions to CXXFLAGS done in bsd.*.mk might
    not be preserved.

Modified:
  stable/9/contrib/libstdc++/config/os/bsd/freebsd/ctype_base.h
  stable/9/contrib/libstdc++/include/bits/fstream.tcc
  stable/9/contrib/libstdc++/include/bits/locale_facets.h
  stable/9/contrib/libstdc++/include/bits/locale_facets.tcc
  stable/9/contrib/libstdc++/include/bits/streambuf_iterator.h
  stable/9/contrib/libstdc++/include/debug/safe_iterator.tcc
  stable/9/contrib/libstdc++/include/ext/ropeimpl.h
  stable/9/contrib/libstdc++/include/std/std_sstream.h
  stable/9/contrib/libstdc++/libsupc++/tinfo.cc
  stable/9/contrib/libstdc++/src/locale.cc
  stable/9/contrib/libstdc++/src/strstream.cc
  stable/9/contrib/libstdc++/src/tree.cc
  stable/9/gnu/lib/libstdc++/Makefile
  stable/9/gnu/lib/libsupc++/Makefile
Directory Properties:
  stable/9/contrib/libstdc++/   (props changed)
  stable/9/gnu/lib/libstdc++/   (props changed)
  stable/9/gnu/lib/libsupc++/   (props changed)

Modified: stable/9/contrib/libstdc++/config/os/bsd/freebsd/ctype_base.h
==============================================================================
--- stable/9/contrib/libstdc++/config/os/bsd/freebsd/ctype_base.h	Tue Oct 30 06:36:14 2012	(r242346)
+++ stable/9/contrib/libstdc++/config/os/bsd/freebsd/ctype_base.h	Tue Oct 30 07:51:18 2012	(r242347)
@@ -38,8 +38,9 @@
 _GLIBCXX_BEGIN_NAMESPACE(std)
 
   /// @brief  Base class for ctype.
-  struct ctype_base
+  class ctype_base
   {
+  public:
     // Non-standard typedefs.
     typedef const int* 		__to_type;
 

Modified: stable/9/contrib/libstdc++/include/bits/fstream.tcc
==============================================================================
--- stable/9/contrib/libstdc++/include/bits/fstream.tcc	Tue Oct 30 06:36:14 2012	(r242346)
+++ stable/9/contrib/libstdc++/include/bits/fstream.tcc	Tue Oct 30 07:51:18 2012	(r242347)
@@ -641,21 +641,23 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
     setbuf(char_type* __s, streamsize __n)
     {
       if (!this->is_open())
-	if (__s == 0 && __n == 0)
-	  _M_buf_size = 1;
-	else if (__s && __n > 0)
-	  {
-	    // This is implementation-defined behavior, and assumes that
-	    // an external char_type array of length __n exists and has
-	    // been pre-allocated. If this is not the case, things will
-	    // quickly blow up. When __n > 1, __n - 1 positions will be
-	    // used for the get area, __n - 1 for the put area and 1
-	    // position to host the overflow char of a full put area.
-	    // When __n == 1, 1 position will be used for the get area
-	    // and 0 for the put area, as in the unbuffered case above.
-	    _M_buf = __s;
-	    _M_buf_size = __n;
-	  }
+	{
+	  if (__s == 0 && __n == 0)
+	    _M_buf_size = 1;
+	  else if (__s && __n > 0)
+	    {
+	      // This is implementation-defined behavior, and assumes that
+	      // an external char_type array of length __n exists and has
+	      // been pre-allocated. If this is not the case, things will
+	      // quickly blow up. When __n > 1, __n - 1 positions will be
+	      // used for the get area, __n - 1 for the put area and 1
+	      // position to host the overflow char of a full put area.
+	      // When __n == 1, 1 position will be used for the get area
+	      // and 0 for the put area, as in the unbuffered case above.
+	      _M_buf = __s;
+	      _M_buf_size = __n;
+	    }
+	}
       return this;
     }
 

Modified: stable/9/contrib/libstdc++/include/bits/locale_facets.h
==============================================================================
--- stable/9/contrib/libstdc++/include/bits/locale_facets.h	Tue Oct 30 06:36:14 2012	(r242346)
+++ stable/9/contrib/libstdc++/include/bits/locale_facets.h	Tue Oct 30 07:51:18 2012	(r242347)
@@ -4335,8 +4335,9 @@ _GLIBCXX_END_LDBL_NAMESPACE
   /**
    *  @brief  Messages facet base class providing catalog typedef.
    */
-  struct messages_base
+  class messages_base
   {
+  public:
     typedef int catalog;
   };
 

Modified: stable/9/contrib/libstdc++/include/bits/locale_facets.tcc
==============================================================================
--- stable/9/contrib/libstdc++/include/bits/locale_facets.tcc	Tue Oct 30 06:36:14 2012	(r242346)
+++ stable/9/contrib/libstdc++/include/bits/locale_facets.tcc	Tue Oct 30 07:51:18 2012	(r242347)
@@ -316,7 +316,7 @@ _GLIBCXX_BEGIN_LDBL_NAMESPACE
       int __sep_pos = 0;
       while (!__testeof)
 	{
-	  if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep
+	  if ((__lc->_M_use_grouping && __c == __lc->_M_thousands_sep)
 	      || __c == __lc->_M_decimal_point)
 	    break;
 	  else if (__c == __lit[__num_base::_S_izero])
@@ -558,7 +558,7 @@ _GLIBCXX_BEGIN_LDBL_NAMESPACE
 	int __sep_pos = 0;
 	while (!__testeof)
 	  {
-	    if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep
+	    if ((__lc->_M_use_grouping && __c == __lc->_M_thousands_sep)
 		|| __c == __lc->_M_decimal_point)
 	      break;
 	    else if (__c == __lit[__num_base::_S_izero] 
@@ -748,16 +748,20 @@ _GLIBCXX_BEGIN_LDBL_NAMESPACE
 	      const char_type __c = *__beg;
 
 	      if (__testf)
-		if (__n < __lc->_M_falsename_size)
-		  __testf = __c == __lc->_M_falsename[__n];
-		else
-		  break;
+		{
+		  if (__n < __lc->_M_falsename_size)
+		    __testf = __c == __lc->_M_falsename[__n];
+		  else
+		    break;
+		}
 
 	      if (__testt)
-		if (__n < __lc->_M_truename_size)
-		  __testt = __c == __lc->_M_truename[__n];
-		else
-		  break;
+		{
+		  if (__n < __lc->_M_truename_size)
+		    __testt = __c == __lc->_M_truename[__n];
+		  else
+		    break;
+		}
 
 	      if (!__testf && !__testt)
 		break;
@@ -1387,9 +1391,9 @@ _GLIBCXX_BEGIN_LDBL_NAMESPACE
 					 == money_base::space)))
 		    || (__i == 2 && ((static_cast<part>(__p.field[3])
 				      == money_base::value)
-				     || __mandatory_sign
+				     || (__mandatory_sign
 				     && (static_cast<part>(__p.field[3])
-					 == money_base::sign))))
+					 == money_base::sign)))))
 		  {
 		    const size_type __len = __lc->_M_curr_symbol_size;
 		    size_type __j = 0;

Modified: stable/9/contrib/libstdc++/include/bits/streambuf_iterator.h
==============================================================================
--- stable/9/contrib/libstdc++/include/bits/streambuf_iterator.h	Tue Oct 30 06:36:14 2012	(r242346)
+++ stable/9/contrib/libstdc++/include/bits/streambuf_iterator.h	Tue Oct 30 07:51:18 2012	(r242347)
@@ -160,7 +160,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
       {
 	const bool __thiseof = _M_at_eof();
 	const bool __beof = __b._M_at_eof();
-	return (__thiseof && __beof || (!__thiseof && !__beof));
+	return ((__thiseof && __beof) || (!__thiseof && !__beof));
       }
 
     private:

Modified: stable/9/contrib/libstdc++/include/debug/safe_iterator.tcc
==============================================================================
--- stable/9/contrib/libstdc++/include/debug/safe_iterator.tcc	Tue Oct 30 06:36:14 2012	(r242346)
+++ stable/9/contrib/libstdc++/include/debug/safe_iterator.tcc	Tue Oct 30 07:51:18 2012	(r242347)
@@ -54,8 +54,8 @@ namespace __gnu_debug
 	    static_cast<const _Sequence*>(_M_sequence)->begin();
 	  std::pair<difference_type, _Distance_precision> __dist =
 	    this->_M_get_distance(__begin, *this);
-	  bool __ok =  (__dist.second == __dp_exact && __dist.first >= -__n
-			|| __dist.second != __dp_exact && __dist.first > 0);
+	  bool __ok =  ((__dist.second == __dp_exact && __dist.first >= -__n)
+			|| (__dist.second != __dp_exact && __dist.first > 0));
 	  return __ok;
 	}
       else
@@ -64,8 +64,8 @@ namespace __gnu_debug
 	    static_cast<const _Sequence*>(_M_sequence)->end();
 	  std::pair<difference_type, _Distance_precision> __dist =
 	    this->_M_get_distance(*this, __end);
-	  bool __ok = (__dist.second == __dp_exact && __dist.first >= __n
-		       || __dist.second != __dp_exact && __dist.first > 0);
+	  bool __ok = ((__dist.second == __dp_exact && __dist.first >= __n)
+		       || (__dist.second != __dp_exact && __dist.first > 0));
 	  return __ok;
 	}
     }

Modified: stable/9/contrib/libstdc++/include/ext/ropeimpl.h
==============================================================================
--- stable/9/contrib/libstdc++/include/ext/ropeimpl.h	Tue Oct 30 06:36:14 2012	(r242346)
+++ stable/9/contrib/libstdc++/include/ext/ropeimpl.h	Tue Oct 30 07:51:18 2012	(r242347)
@@ -1143,7 +1143,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
 	}
       else
 	{
-	  char* __kind;
+	  const char* __kind;
 	  
 	  switch (__r->_M_tag)
 	    {

Modified: stable/9/contrib/libstdc++/include/std/std_sstream.h
==============================================================================
--- stable/9/contrib/libstdc++/include/std/std_sstream.h	Tue Oct 30 06:36:14 2012	(r242346)
+++ stable/9/contrib/libstdc++/include/std/std_sstream.h	Tue Oct 30 07:51:18 2012	(r242347)
@@ -240,10 +240,12 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
       {
 	const bool __testin = _M_mode & ios_base::in;
 	if (this->pptr() && this->pptr() > this->egptr())
-	  if (__testin)
-	    this->setg(this->eback(), this->gptr(), this->pptr());
-	  else
-	    this->setg(this->pptr(), this->pptr(), this->pptr());
+	  {
+	    if (__testin)
+	      this->setg(this->eback(), this->gptr(), this->pptr());
+	    else
+	      this->setg(this->pptr(), this->pptr(), this->pptr());
+	  }
       }
     };
 

Modified: stable/9/contrib/libstdc++/libsupc++/tinfo.cc
==============================================================================
--- stable/9/contrib/libstdc++/libsupc++/tinfo.cc	Tue Oct 30 06:36:14 2012	(r242346)
+++ stable/9/contrib/libstdc++/libsupc++/tinfo.cc	Tue Oct 30 07:51:18 2012	(r242347)
@@ -499,9 +499,9 @@ __do_dyncast (ptrdiff_t src2dst,
           result.whole2dst =
               __sub_kind (result.whole2dst | result2.whole2dst);
         }
-      else if ((result.dst_ptr != 0 & result2.dst_ptr != 0)
-	       || (result.dst_ptr != 0 & result2_ambig)
-	       || (result2.dst_ptr != 0 & result_ambig))
+      else if ((result.dst_ptr != 0 && result2.dst_ptr != 0)
+	       || (result.dst_ptr != 0 && result2_ambig)
+	       || (result2.dst_ptr != 0 && result_ambig))
         {
           // Found two different DST_TYPE bases, or a valid one and a set of
           // ambiguous ones, must disambiguate. See whether SRC_PTR is

Modified: stable/9/contrib/libstdc++/src/locale.cc
==============================================================================
--- stable/9/contrib/libstdc++/src/locale.cc	Tue Oct 30 06:36:14 2012	(r242346)
+++ stable/9/contrib/libstdc++/src/locale.cc	Tue Oct 30 07:51:18 2012	(r242347)
@@ -146,7 +146,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
   locale::_S_normalize_category(category __cat) 
   {
     int __ret = 0;
-    if (__cat == none || (__cat & all) && !(__cat & ~all))
+    if (__cat == none || ((__cat & all) && !(__cat & ~all)))
       __ret = __cat;
     else
       {

Modified: stable/9/contrib/libstdc++/src/strstream.cc
==============================================================================
--- stable/9/contrib/libstdc++/src/strstream.cc	Tue Oct 30 06:36:14 2012	(r242346)
+++ stable/9/contrib/libstdc++/src/strstream.cc	Tue Oct 30 07:51:18 2012	(r242347)
@@ -311,10 +311,12 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
   strstreambuf::_M_free(char* p)
   {
     if (p)
-      if (_M_free_fun)
-	_M_free_fun(p);
-      else
-	delete[] p;
+      {
+	if (_M_free_fun)
+	  _M_free_fun(p);
+	else
+	  delete[] p;
+      }
   }
 
   void 

Modified: stable/9/contrib/libstdc++/src/tree.cc
==============================================================================
--- stable/9/contrib/libstdc++/src/tree.cc	Tue Oct 30 06:36:14 2012	(r242346)
+++ stable/9/contrib/libstdc++/src/tree.cc	Tue Oct 30 07:51:18 2012	(r242347)
@@ -316,17 +316,21 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
 	  else
 	    __z->_M_parent->_M_right = __x;
 	if (__leftmost == __z) 
-	  if (__z->_M_right == 0)        // __z->_M_left must be null also
-	    __leftmost = __z->_M_parent;
-	// makes __leftmost == _M_header if __z == __root
-	  else
-	    __leftmost = _Rb_tree_node_base::_S_minimum(__x);
+	  {
+	    if (__z->_M_right == 0)        // __z->_M_left must be null also
+	      __leftmost = __z->_M_parent;
+	    // makes __leftmost == _M_header if __z == __root
+	    else
+	      __leftmost = _Rb_tree_node_base::_S_minimum(__x);
+	  }
 	if (__rightmost == __z)  
-	  if (__z->_M_left == 0)         // __z->_M_right must be null also
-	    __rightmost = __z->_M_parent;  
-	// makes __rightmost == _M_header if __z == __root
-	  else                      // __x == __z->_M_left
-	    __rightmost = _Rb_tree_node_base::_S_maximum(__x);
+	  {
+	    if (__z->_M_left == 0)         // __z->_M_right must be null also
+	      __rightmost = __z->_M_parent;  
+	    // makes __rightmost == _M_header if __z == __root
+	    else                      // __x == __z->_M_left
+	      __rightmost = _Rb_tree_node_base::_S_maximum(__x);
+	  }
       }
     if (__y->_M_color != _S_red) 
       { 

Modified: stable/9/gnu/lib/libstdc++/Makefile
==============================================================================
--- stable/9/gnu/lib/libstdc++/Makefile	Tue Oct 30 06:36:14 2012	(r242346)
+++ stable/9/gnu/lib/libstdc++/Makefile	Tue Oct 30 07:51:18 2012	(r242347)
@@ -22,7 +22,6 @@ CFLAGS+=	-I${GCCLIB}/include -I${SRCDIR}
 CFLAGS+=	-frandom-seed=RepeatabilityConsideredGood
 CXXFLAGS+=	-fno-implicit-templates -ffunction-sections -fdata-sections \
 		-Wno-deprecated
-CXXFLAGS:=	${CXXFLAGS:N-stdlib=libc++:N-std=c++[01][13x]:N-std=gnu++[01][13x]}
 PO_CXXFLAGS=	${CXXFLAGS:N-ffunction-sections}
 
 DPADD=		${LIBM}
@@ -626,3 +625,6 @@ ${VERSION_MAP}: ${SRCDIR}/config/abi/pre
 CLEANFILES+=	${VERSION_MAP}
 
 .include <bsd.lib.mk>
+
+# Filter out libc++-specific flags, and -std= flags above c++98 or gnu++98.
+CXXFLAGS:=	${CXXFLAGS:N-stdlib=libc++:N-std=c++[01][13x]:N-std=gnu++[01][13x]}

Modified: stable/9/gnu/lib/libsupc++/Makefile
==============================================================================
--- stable/9/gnu/lib/libsupc++/Makefile	Tue Oct 30 06:36:14 2012	(r242346)
+++ stable/9/gnu/lib/libsupc++/Makefile	Tue Oct 30 07:51:18 2012	(r242347)
@@ -24,7 +24,6 @@ CFLAGS+=	-I${GCCLIB}/include -I${SRCDIR}
 CFLAGS+=	-I${.CURDIR}/../libstdc++ -I.
 CFLAGS+=	-frandom-seed=RepeatabilityConsideredGood
 CXXFLAGS+=	-fno-implicit-templates -ffunction-sections -fdata-sections
-CXXFLAGS:=	${CXXFLAGS:N-stdlib=libc++:N-std=c++[01][13x]:N-std=gnu++[01][13x]}
 PO_CXXFLAGS=    ${CXXFLAGS:N-ffunction-sections}
 
 HDRS=	exception new typeinfo cxxabi.h exception_defines.h
@@ -43,3 +42,6 @@ VERSION_MAP=	${.CURDIR}/Version.map
 
 
 .include <bsd.lib.mk>
+
+# Filter out libc++-specific flags, and -std= flags above c++98 or gnu++98.
+CXXFLAGS:=	${CXXFLAGS:N-stdlib=libc++:N-std=c++[01][13x]:N-std=gnu++[01][13x]}


More information about the svn-src-stable-9 mailing list