diff options
Diffstat (limited to 'ld')
-rw-r--r-- | ld/testsuite/ld-elf/dl5.cc | 13 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/dl5.h | 10 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/new.cc | 6 |
3 files changed, 19 insertions, 10 deletions
diff --git a/ld/testsuite/ld-elf/dl5.cc b/ld/testsuite/ld-elf/dl5.cc index cc40455..77dbb62 100644 --- a/ld/testsuite/ld-elf/dl5.cc +++ b/ld/testsuite/ld-elf/dl5.cc @@ -1,6 +1,7 @@ #include <stdio.h> #include <stdlib.h> #include <new> +#include "dl5.h" int pass = 0; @@ -30,22 +31,14 @@ operator delete (void *ptr) throw () free (ptr); } -class A -{ -public: - A() {} - ~A() { } - int a; - int b; -}; - - int main (void) { A *bb = new A[10]; delete [] bb; + foo (bb); bb = new (std::nothrow) A [10]; + foo (bb); delete [] bb; if (pass == 4) diff --git a/ld/testsuite/ld-elf/dl5.h b/ld/testsuite/ld-elf/dl5.h new file mode 100644 index 0000000..0d4a7c1 --- /dev/null +++ b/ld/testsuite/ld-elf/dl5.h @@ -0,0 +1,10 @@ +class A +{ +public: + A() {} + ~A() { } + int a; + int b; +}; + +extern void foo (A *); diff --git a/ld/testsuite/ld-elf/new.cc b/ld/testsuite/ld-elf/new.cc index 513cf2f..b038d77 100644 --- a/ld/testsuite/ld-elf/new.cc +++ b/ld/testsuite/ld-elf/new.cc @@ -1,4 +1,5 @@ #include <new> +#include "dl5.h" using std::bad_alloc; @@ -45,3 +46,8 @@ operator new[] (std::size_t sz, const std::nothrow_t& nothrow) throw() { return ::operator new(sz, nothrow); } + +void +foo (A *) +{ +} |