svn commit: r244673 - head/contrib/libstdc++/include/std

Andrew Turner andrew at FreeBSD.org
Tue Dec 25 07:37:34 UTC 2012


Author: andrew
Date: Tue Dec 25 07:37:33 2012
New Revision: 244673
URL: http://svnweb.freebsd.org/changeset/base/244673

Log:
  Fix the __glibcxx_min and __glibcxx_max macros for a signed wchar_t.
  
  * The __glibcxx_max macro came from GCC svn r138078, the last GPLv2
    revision of this file.
  * I wrote the updated __glibcxx_min macro.

Modified:
  head/contrib/libstdc++/include/std/std_limits.h

Modified: head/contrib/libstdc++/include/std/std_limits.h
==============================================================================
--- head/contrib/libstdc++/include/std/std_limits.h	Tue Dec 25 07:29:25 2012	(r244672)
+++ head/contrib/libstdc++/include/std/std_limits.h	Tue Dec 25 07:37:33 2012	(r244673)
@@ -134,10 +134,11 @@
 #define __glibcxx_signed(T)	((T)(-1) < 0)
 
 #define __glibcxx_min(T) \
-  (__glibcxx_signed (T) ? (T)1 << __glibcxx_digits (T) : (T)0)
+  (__glibcxx_signed (T) ? (((T)1 << (__glibcxx_digits (T) - 1)) << 1) : (T)0)
 
 #define __glibcxx_max(T) \
-  (__glibcxx_signed (T) ? ((T)1 << __glibcxx_digits (T)) - 1 : ~(T)0)
+  (__glibcxx_signed (T) ? \
+   (((((T)1 << (__glibcxx_digits (T) - 1)) - 1) << 1) + 1) : ~(T)0)
 
 #define __glibcxx_digits(T) \
   (sizeof(T) * __CHAR_BIT__ - __glibcxx_signed (T))


More information about the svn-src-all mailing list