]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR libstdc++/9582 (ODR violation in std::allocator)
authorPhil Edwards <pme@gcc.gnu.org>
Thu, 20 Feb 2003 00:11:43 +0000 (00:11 +0000)
committerPhil Edwards <pme@gcc.gnu.org>
Thu, 20 Feb 2003 00:11:43 +0000 (00:11 +0000)
2003-02-19  Phil Edwards  <pme@gcc.gnu.org>

PR libstdc++/9582
* include/bits/stl_alloc.h:  Remove all traces of assert().

From-SVN: r63136

libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/stl_alloc.h

index 7860617c0123cfe67bab4d95e1d0d0dbcaa53243..469f36d1fa2d89e6cc0d7a568eddde17b265f28a 100644 (file)
@@ -1,3 +1,8 @@
+2003-02-19  Phil Edwards  <pme@gcc.gnu.org>
+
+       PR libstdc++/9582
+       * include/bits/stl_alloc.h:  Remove all traces of assert().
+
 2003-02-18  Paolo Carlini  <pcarlini@unitus.it>
 
        * include/std/std_sstream.h (str()): the size of the
index 92029ea936c0116dc96f934815d66db793b492f0..fae53bd581bc35e4f5a58f888112dbce3bd06c4c 100644 (file)
@@ -81,7 +81,6 @@
 #include <cstddef>
 #include <cstdlib>
 #include <cstring>
-#include <cassert>
 #include <bits/functexcept.h>   // For __throw_bad_alloc
 #include <bits/stl_threads.h>
 
@@ -217,10 +216,7 @@ namespace std
   /**
    *  @if maint
    *  An adaptor for an underlying allocator (_Alloc) to check the size
-   *  arguments for debugging.  Errors are reported using assert; these
-   *  checks can be disabled via NDEBUG, but the space penalty is still
-   *  paid, therefore it is far better to just use the underlying allocator
-   *  by itelf when no checking is desired.
+   *  arguments for debugging.
    *
    *  "There is some evidence that this can confuse Purify." - SGI comment
    *
@@ -249,7 +245,8 @@ namespace std
       deallocate(void* __p, size_t __n)
       {
         char* __real_p = (char*)__p - (int) _S_extra;
-        assert(*(size_t*)__real_p == __n);
+        if (*(size_t*)__real_p != __n)
+          abort();
         _Alloc::deallocate(__real_p, __n + (int) _S_extra);
       }
     };