From 1e332c6fe5855dda65d612c7491028025f997673 Mon Sep 17 00:00:00 2001
From: nathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 29 Apr 1999 08:32:13 +0000
Subject: [PATCH] 	* streambuf.h (ios::~ios): Use operator delete[] to
 remove _arrays.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@26691 138bc75d-0d04-0410-961f-82ee72b054a4
---
 libio/ChangeLog   | 4 ++++
 libio/streambuf.h | 4 +++-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/libio/ChangeLog b/libio/ChangeLog
index 5509fa329ef9..15095d836d37 100644
--- a/libio/ChangeLog
+++ b/libio/ChangeLog
@@ -1,3 +1,7 @@
+1999-04-29  Nathan Sidwell  <nathan@acm.org>
+
+	* streambuf.h (ios::~ios): Use operator delete[] to remove _arrays.
+
 Mon Apr 12 19:22:44 1999  Mumit Khan  <khan@xraylith.wisc.edu>
 
 	* filedoalloc.c (_POSIX_SOURCE): Remove definition.
diff --git a/libio/streambuf.h b/libio/streambuf.h
index bc734bc75b0a..d472cbece2c6 100644
--- a/libio/streambuf.h
+++ b/libio/streambuf.h
@@ -482,7 +482,9 @@ inline ios::~ios() {
 #ifndef _IO_NEW_STREAMS
     if (!(_flags & (unsigned int)ios::dont_close)) delete rdbuf();
 #endif
-    if (_arrays) delete [] _arrays;
+    // It is safe to use naked operator delete[] as we know elements have no
+    // dtor, and g++ does not add a new[] cookie for such cases.
+    operator delete[] (_arrays);
 }
 } // extern "C++"
 #endif /* _STREAMBUF_H */
-- 
GitLab