aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfjahanian <fjahanian@138bc75d-0d04-0410-961f-82ee72b054a4>2006-03-13 18:20:58 +0000
committerfjahanian <fjahanian@138bc75d-0d04-0410-961f-82ee72b054a4>2006-03-13 18:20:58 +0000
commite557add8de0d03c8060445b018c5fa174ec45561 (patch)
tree62e08770083f7de4e374bdfc825216b8dafc082c
parent49815a7ec7e39fc141884917ccc050b6f73c8265 (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-ppc5
-rw-r--r--gcc/testsuite/obj-c++.dg/template-8.mm37
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;
+}