From 1dc58c21d79fbb08a1d2210ad324cc65f921ffdf Mon Sep 17 00:00:00 2001
From: oldham <oldham@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Wed, 5 Nov 2003 04:37:03 +0000
Subject: [PATCH] 2003-11-04  Jeffrey D. Oldham  <oldham@codesourcery.com>

	* libsupc++/vec.cc (__cxa_vec_delete2): If given a NULL pointer,
	immediately return.  This reflects a C++ ABI change 2003 Nov 03.
	(__cxa_vec_delete3): Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@73263 138bc75d-0d04-0410-961f-82ee72b054a4
---
 libstdc++-v3/ChangeLog        |  7 +++++++
 libstdc++-v3/libsupc++/vec.cc | 17 ++++++++++++++---
 2 files changed, 21 insertions(+), 3 deletions(-)

diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 9124c8d0ed32..9066d6096bfa 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,9 @@
+2003-11-04  Jeffrey D. Oldham  <oldham@codesourcery.com>
+
+	* libsupc++/vec.cc (__cxa_vec_delete2): If given a NULL pointer,
+	immediately return.  This reflects a C++ ABI change 2003 Nov 03.
+	(__cxa_vec_delete3): Likewise.
+	
 2003-11-03  Petur Runolfsson  <peturr02@ru.is>
 
 	PR libstdc++/12790
@@ -103,6 +109,7 @@
 	* include/bits/istream.tcc: Same.
 	* include/bits/ostream.tcc: Same.
 
+>>>>>>> 1.2063
 2003-10-30  Paolo Carlini  <pcarlini@suse.de>
 
 	* include/bits/locale_facets.tcc (time_get::_M_extract_via_format):
diff --git a/libstdc++-v3/libsupc++/vec.cc b/libstdc++-v3/libsupc++/vec.cc
index e2c8f09df4bd..2725593ff530 100644
--- a/libstdc++-v3/libsupc++/vec.cc
+++ b/libstdc++-v3/libsupc++/vec.cc
@@ -282,7 +282,12 @@ namespace __cxxabiv1
 		    void (*destructor) (void *),
 		    void (*dealloc) (void *))
   {
-    char *base = static_cast<char *>(array_address);
+    char *base;
+  
+    if (!array_address)
+      return;
+
+    base = static_cast<char *>(array_address);
   
     if (padding_size)
       {
@@ -312,8 +317,14 @@ namespace __cxxabiv1
 		     void (*destructor) (void *),
 		    void (*dealloc) (void *, std::size_t))
   {
-    char *base = static_cast <char *> (array_address);
-    std::size_t size = 0;
+    char *base;
+    std::size_t size;
+    
+    if (!array_address)
+      return;
+
+    base = static_cast <char *> (array_address);
+    size = 0;
     
     if (padding_size)
       {
-- 
GitLab