Commit 51937d2c by Benjamin Kosnik Committed by Benjamin Kosnik

re PR libstdc++/7286 (placement operator delete issue)


2002-07-24  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/7286
	* libsupc++/new: Add placement delete.
	* testsuite/18_support/new_delete_placement.cc: New.

	* docs/html/abi.txt: Fix typos.

From-SVN: r55718
parent 3ade30ea
2002-07-24 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/7286
* libsupc++/new: Add placement delete.
* testsuite/18_support/new_delete_placement.cc: New.
* docs/html/abi.txt: Fix typos.
2002-07-23 Benjamin Kosnik <bkoz@redhat.com> 2002-07-23 Benjamin Kosnik <bkoz@redhat.com>
* docs/html/documentation.html: Remove libstdc++-v3.0.86 links, * docs/html/documentation.html: Remove libstdc++-v3.0.86 links,
......
...@@ -139,15 +139,15 @@ one with a new compiler and an old library, and the other with an old ...@@ -139,15 +139,15 @@ one with a new compiler and an old library, and the other with an old
compiler and a new library, and look for testsuite regressions) compiler and a new library, and look for testsuite regressions)
Two. Two.
Have the libstdc++ testesuite proactively check the library Have the libstdc++ testsuite proactive check the library ABI. Probably
ABI. Probably a couple of items would be covered, although perhaps not a couple of items would be covered, although perhaps not all would
all would need to be done at once for this to be useful. Compute the need to be done at once for this to be useful. Compute the list of
list of names exported in the shared version of libstdc++ names exported in the shared version of libstdc++ binary. Then, save
binary. Then, save this list of names. Have this list of names this list of names. Have this list of names re-computed for each new
re-computed for each new binary of the same version. Next, use sizeof binary of the same version. Next, use sizeof, alignof, and offset to
and offset to compute offsets for each structure and type in the compute offsets for each structure and type in the standard library,
standard library, saving to another datafile. Then, compute this for saving to another datafile. Then, compute this for new binaries, and
new binaries, and look for differences. look for differences.
The thought is to choose one or both of these approaches, and to use a The thought is to choose one or both of these approaches, and to use a
Makefile hook, perhaps 'make check-abi', to add this capability to the Makefile hook, perhaps 'make check-abi', to add this capability to the
......
...@@ -91,6 +91,10 @@ void operator delete[](void*, const std::nothrow_t&) throw(); ...@@ -91,6 +91,10 @@ void operator delete[](void*, const std::nothrow_t&) throw();
// Default placement versions of operator new. // Default placement versions of operator new.
inline void* operator new(std::size_t, void* __p) throw() { return __p; } inline void* operator new(std::size_t, void* __p) throw() { return __p; }
inline void* operator new[](std::size_t, void* __p) throw() { return __p; } inline void* operator new[](std::size_t, void* __p) throw() { return __p; }
// Default placement versions of operator delete.
inline void operator delete (void* ptr, void*) throw() { };
inline void operator delete[](void* ptr, void*) throw() { };
//@} //@}
} // extern "C++" } // extern "C++"
......
// 2002-07-24 Benjamin Kosnik
// Copyright (C) 2002 Free Software Foundation
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 2, or (at your option)
// any later version.
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING. If not, write to the Free
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
// USA.
// 18.4.1.3 - Placement forms
#include <new>
#include <testsuite_hooks.h>
// libstdc++/7286
void test01()
{
void* pc = new char;
void* pa = new char[10];
void* tmp;
operator delete(pc, tmp);
operator delete[](pa, tmp);
}
int main()
{
test01();
return 0;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment