aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2016-07-21 20:38:32 +0100
committerJonathan Wakely <redi@gcc.gnu.org>2016-07-21 20:38:32 +0100
commit22620c14525becbb209ae95ca2ff46412d7c10c6 (patch)
tree494d829ae79bad2fb1e48f6c82ef8805107b4483
parentcfd97da10d63e1eddd3b901a505056ab342ce46f (diff)
downloadgcc-22620c14525becbb209ae95ca2ff46412d7c10c6.zip
gcc-22620c14525becbb209ae95ca2ff46412d7c10c6.tar.gz
gcc-22620c14525becbb209ae95ca2ff46412d7c10c6.tar.bz2
Remove memory leaks in libstdc++ testsuite
* testsuite/18_support/new_delete_placement.cc: Don't allocate (and leak) memory for arguments to placement delete. * testsuite/20_util/addressof/1.cc: Don't leak memory. * testsuite/22_locale/locale/global_locale_objects/3.cc: Likewise. * testsuite/23_containers/unordered_multimap/insert/55028-debug.cc: Likewise. From-SVN: r238607
-rw-r--r--libstdc++-v3/ChangeLog9
-rw-r--r--libstdc++-v3/testsuite/18_support/new_delete_placement.cc8
-rw-r--r--libstdc++-v3/testsuite/20_util/addressof/1.cc3
-rw-r--r--libstdc++-v3/testsuite/22_locale/locale/global_locale_objects/3.cc9
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/55028-debug.cc2
5 files changed, 24 insertions, 7 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 8e6f66b..d928c65 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,12 @@
+2016-07-21 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/18_support/new_delete_placement.cc: Don't allocate (and
+ leak) memory for arguments to placement delete.
+ * testsuite/20_util/addressof/1.cc: Don't leak memory.
+ * testsuite/22_locale/locale/global_locale_objects/3.cc: Likewise.
+ * testsuite/23_containers/unordered_multimap/insert/55028-debug.cc:
+ Likewise.
+
2016-07-20 Jonathan Wakely <jwakely@redhat.com>
* doc/xml/manual/intro.xml: Document DR 2684 status.
diff --git a/libstdc++-v3/testsuite/18_support/new_delete_placement.cc b/libstdc++-v3/testsuite/18_support/new_delete_placement.cc
index 2c4607b..9049dca 100644
--- a/libstdc++-v3/testsuite/18_support/new_delete_placement.cc
+++ b/libstdc++-v3/testsuite/18_support/new_delete_placement.cc
@@ -25,11 +25,11 @@
// libstdc++/7286
void test01()
{
- void* pc = new char;
- void* pa = new char[10];
+ char c = 'c';
+ void* p = &c;
void* tmp = 0;
- operator delete(pc, tmp);
- operator delete[](pa, tmp);
+ operator delete(p, tmp);
+ operator delete[](p, tmp);
}
int main()
diff --git a/libstdc++-v3/testsuite/20_util/addressof/1.cc b/libstdc++-v3/testsuite/20_util/addressof/1.cc
index 7208fc4..732eebc 100644
--- a/libstdc++-v3/testsuite/20_util/addressof/1.cc
+++ b/libstdc++-v3/testsuite/20_util/addressof/1.cc
@@ -41,6 +41,9 @@ void test01()
VERIFY( std::addressof(o2) == ao2 );
VERIFY( std::addressof(f1) == &f1 );
+
+ delete ao1;
+ delete ao2;
}
int main()
diff --git a/libstdc++-v3/testsuite/22_locale/locale/global_locale_objects/3.cc b/libstdc++-v3/testsuite/22_locale/locale/global_locale_objects/3.cc
index 0eb656c..ec33614 100644
--- a/libstdc++-v3/testsuite/22_locale/locale/global_locale_objects/3.cc
+++ b/libstdc++-v3/testsuite/22_locale/locale/global_locale_objects/3.cc
@@ -73,13 +73,15 @@ void test03()
VERIFY( loc04 == global_orig );
}
- // 2: Not destroyed when out of scope, deliberately leaked.
+ // 2: Not destroyed when out of scope, deliberately "leaked".
+ const facet_type* ptr = 0;
{
{
{
VERIFY( counter == 0 );
{
- locale loc01(locale::classic(), new facet_type(1));
+ ptr = new facet_type(1);
+ locale loc01(locale::classic(), ptr);
VERIFY( counter == 1 );
global_orig = locale::global(loc01);
name = loc01.name();
@@ -101,6 +103,9 @@ void test03()
}
VERIFY( counter == 1 );
+ // Clean up.
+ delete ptr;
+
// Restore global settings.
locale::global(global_orig);
}
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/55028-debug.cc b/libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/55028-debug.cc
index 65830ad..e7afc8f 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/55028-debug.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/55028-debug.cc
@@ -30,7 +30,7 @@ void test()
// using MyMap = std::multimap<std::string, MyType *>; // works
using MyMap = std::unordered_multimap<std::string, MyType*>; // fails to link
MyMap m;
- m.insert(std::make_pair(std::string("blah"), new MyType));
+ m.insert(std::make_pair(std::string("blah"), (MyType*)nullptr));
}
int main()