aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2017-01-26 14:30:45 +0000
committerJonathan Wakely <redi@gcc.gnu.org>2017-01-26 14:30:45 +0000
commitbc9efeab61120db9c282def38dd1a052de69f610 (patch)
treeaef51adb0dc768bece17a84b975f87f079e9ca93 /gcc
parentb5f75f0b64a5692ebe823fffcf6d3a8c82c52d10 (diff)
downloadgcc-bc9efeab61120db9c282def38dd1a052de69f610.zip
gcc-bc9efeab61120db9c282def38dd1a052de69f610.tar.gz
gcc-bc9efeab61120db9c282def38dd1a052de69f610.tar.bz2
PR libstdc++/79190 add fallback aligned_alloc implementation
libstdc++-v3: PR libstdc++/79190 * libsupc++/del_opa.cc (operator delete(void*, std::align_val_t)) [!_GLIBCXX_HAVE_ALIGNED_ALLOC && !_GLIBCXX_HAVE_POSIX_MEMALIGN && !_GLIBCXX_HAVE_MEMALIGN && !_GLIBCXX_HAVE__ALIGNED_MALLOC]: Retrieve original pointer value allocated by malloc. * libsupc++/new_opa.cc [!_GLIBCXX_HAVE_ALIGNED_ALLOC && !_GLIBCXX_HAVE_POSIX_MEMALIGN && !_GLIBCXX_HAVE_MEMALIGN && !_GLIBCXX_HAVE__ALIGNED_MALLOC] (aligned_alloc(size_t, size_t)): Define, adjusting pointer value allocated by malloc and storing for retrieval by operator delete. gcc/testsuite: PR libstdc++/79190 * g++.dg/cpp1z/aligned-new3.C: Replace operator new so behaviour matches replaced operator delete. From-SVN: r244933
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/g++.dg/cpp1z/aligned-new3.C5
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 4054dd0..79c7295 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2017-01-26 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/79190
+ * g++.dg/cpp1z/aligned-new3.C: Replace operator new so behaviour
+ matches replaced operator delete.
+
2017-01-26 Jakub Jelinek <jakub@redhat.com>
* gcc.target/i386/avx512f-kaddw-1.c: Renamed to ...
diff --git a/gcc/testsuite/g++.dg/cpp1z/aligned-new3.C b/gcc/testsuite/g++.dg/cpp1z/aligned-new3.C
index 73e3343..e50e62c 100644
--- a/gcc/testsuite/g++.dg/cpp1z/aligned-new3.C
+++ b/gcc/testsuite/g++.dg/cpp1z/aligned-new3.C
@@ -7,6 +7,11 @@ struct alignas(64) A {
int i;
};
+void* operator new (std::size_t n, std::align_val_t)
+{
+ return operator new (n);
+}
+
bool deleted = false;
void operator delete (void *p, std::size_t, std::align_val_t)
{