summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoroldham <oldham@138bc75d-0d04-0410-961f-82ee72b054a4>2003-11-05 04:37:03 +0000
committeroldham <oldham@138bc75d-0d04-0410-961f-82ee72b054a4>2003-11-05 04:37:03 +0000
commit1dc58c21d79fbb08a1d2210ad324cc65f921ffdf (patch)
treef594dd7812e9b82194b071677b0cb8f5408a4ecc
parent492128c9a1a8510692c5502530a3bd83934940f7 (diff)
downloadppe42-gcc-1dc58c21d79fbb08a1d2210ad324cc65f921ffdf.tar.gz
ppe42-gcc-1dc58c21d79fbb08a1d2210ad324cc65f921ffdf.zip
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
-rw-r--r--libstdc++-v3/ChangeLog7
-rw-r--r--libstdc++-v3/libsupc++/vec.cc17
2 files changed, 21 insertions, 3 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 9124c8d0ed3..9066d6096bf 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 e2c8f09df4b..2725593ff53 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)
{
OpenPOWER on IntegriCloud