2004-10-09 Paolo Carlini <pcarlini@suse.de>
authorpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 9 Oct 2004 08:23:02 +0000 (08:23 +0000)
committerpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 9 Oct 2004 08:23:02 +0000 (08:23 +0000)
* include/std/std_memory.h (__get_temporary_buffer): Don't use
INT_MAX, prefer numeric_limits<ptrdiff_t>::max(), ok on 64-bit
platforms too.
* testsuite/20_util/memory/auto_ptr/assign_neg.cc: Adjust dg-error
line numbers.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@88814 138bc75d-0d04-0410-961f-82ee72b054a4

libstdc++-v3/ChangeLog
libstdc++-v3/include/std/std_memory.h
libstdc++-v3/testsuite/20_util/memory/auto_ptr/assign_neg.cc

index 615d83f..19be846 100644 (file)
@@ -1,3 +1,11 @@
+2004-10-09  Paolo Carlini  <pcarlini@suse.de>
+
+       * include/std/std_memory.h (__get_temporary_buffer): Don't use
+       INT_MAX, prefer numeric_limits<ptrdiff_t>::max(), ok on 64-bit
+       platforms too.
+       * testsuite/20_util/memory/auto_ptr/assign_neg.cc: Adjust dg-error
+       line numbers.
+
 2004-10-08  Benjamin Kosnik  <bkoz@redhat.com>
 
        * acconfig.h: Add _GLIBCXX_USE___CXA_ATEXIT.
index 4e6641e..1d278e6 100644 (file)
@@ -58,6 +58,7 @@
 #include <bits/stl_uninitialized.h>
 #include <bits/stl_raw_storage_iter.h>
 #include <debug/debug.h>
+#include <limits>
 
 namespace std
 {
@@ -73,8 +74,9 @@ namespace std
     pair<_Tp*, ptrdiff_t>
     __get_temporary_buffer(ptrdiff_t __len, _Tp*)
     {
-      if (__len > ptrdiff_t(INT_MAX / sizeof(_Tp)))
-       __len = INT_MAX / sizeof(_Tp);
+      const ptrdiff_t __max = numeric_limits<ptrdiff_t>::max() / sizeof(_Tp);
+      if (__len > __max)
+       __len = __max;
       
       while (__len > 0) 
        {
@@ -105,7 +107,7 @@ namespace std
    * Provides the nothrow exception guarantee.
    */
   template<typename _Tp>
-    inline pair<_Tp*,ptrdiff_t>
+    inline pair<_Tp*, ptrdiff_t>
     get_temporary_buffer(ptrdiff_t __len)
     { return std::__get_temporary_buffer(__len, static_cast<_Tp*>(0)); }
 
index 8899c98..fc4ba5b 100644 (file)
@@ -46,5 +46,5 @@ main()
   test01();
   return 0;
 }
-// { dg-error "candidates" "" { target *-*-* } 222 } 
-// { dg-error "std::auto_ptr" "" { target *-*-* } 352 } 
+// { dg-error "candidates" "" { target *-*-* } 224 } 
+// { dg-error "std::auto_ptr" "" { target *-*-* } 354 }