diff options
author | fjahanian <fjahanian@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-03-13 18:20:58 +0000 |
---|---|---|
committer | fjahanian <fjahanian@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-03-13 18:20:58 +0000 |
commit | e557add8de0d03c8060445b018c5fa174ec45561 (patch) | |
tree | 62e08770083f7de4e374bdfc825216b8dafc082c | |
parent | 49815a7ec7e39fc141884917ccc050b6f73c8265 (diff) |
Test for radar 4439126.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/apple/trunk@112017 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/testsuite/ChangeLog.apple-ppc | 5 | ||||
-rw-r--r-- | gcc/testsuite/obj-c++.dg/template-8.mm | 37 |
2 files changed, 42 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog.apple-ppc b/gcc/testsuite/ChangeLog.apple-ppc index 9345976f94d..cdc685a256e 100644 --- a/gcc/testsuite/ChangeLog.apple-ppc +++ b/gcc/testsuite/ChangeLog.apple-ppc @@ -1,3 +1,8 @@ +2006-03-13 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4439126 + * obj-c++.dg/template-8.mm: New. + 2005-03-09 Fariborz Jahanian <fjahanian@apple.com> Radar 4457381 diff --git a/gcc/testsuite/obj-c++.dg/template-8.mm b/gcc/testsuite/obj-c++.dg/template-8.mm new file mode 100644 index 00000000000..a81e9a4622c --- /dev/null +++ b/gcc/testsuite/obj-c++.dg/template-8.mm @@ -0,0 +1,37 @@ +// APPLE LOCAL begin radar 4439126 +// Test that all pending instantiations have taken place before meta-data +// generation. +// Author: Fariborz Jahanian <fjahanian@apple.com> +/* { dg-options "-framework Foundation" } */ +/* { dg-do run { target *-*-darwin* } } */ + +#include <Foundation/Foundation.h> + +class Base +{ +public: + Base() { } + virtual ~Base() { } + + void destroy() { delete this; } +}; + +template<class T> +class Subclass : public T +{ +public: + Subclass() { } + + virtual ~Subclass() + { + [[NSNotificationCenter defaultCenter] removeObserver: nil]; + } +}; + +int main(int argc, const char * argv[]) +{ + Subclass<Base>* theSubclass = new Subclass<Base>(); + + theSubclass->destroy(); // THIS WILL NOT COMPILE + return 0; +} |