OSDN Git Service

* template6.C, delete1.C, template7.C: New test.
authoroliva <oliva@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 17 Jul 1999 14:26:13 +0000 (14:26 +0000)
committeroliva <oliva@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 17 Jul 1999 14:26:13 +0000 (14:26 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@28140 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog
gcc/testsuite/g++.old-deja/g++.oliva/delete1.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.oliva/template6.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.oliva/template7.C [new file with mode: 0644]

index 3a813b7..212d672 100644 (file)
@@ -1,3 +1,7 @@
+1999-07-17  Alexandre Oliva  <oliva@dcc.unicamp.br>
+
+       * template6.C, delete1.C, template7.C: New test.
+
 1999-07-13  Alexandre Oliva  <oliva@dcc.unicamp.br>
 
        * template5.C: New test.
diff --git a/gcc/testsuite/g++.old-deja/g++.oliva/delete1.C b/gcc/testsuite/g++.old-deja/g++.oliva/delete1.C
new file mode 100644 (file)
index 0000000..dee7f21
--- /dev/null
@@ -0,0 +1,31 @@
+// Build don't link:
+
+// Copyright (C) 1999 Free Software Foundation
+
+// by Alexandre Oliva <oliva@dcc.unicamp.br>
+// simplified from bug report by K. Haley <khaley@bigfoot.com>
+// based on analysis by Martin v. Loewis
+
+// [class.dtor]/11: delete must be implicitly checked for
+// accessibility only in the definition of virtual destructors,
+// implicitly defined or not.
+
+struct foo {
+  foo() {}
+private:
+  void operator delete(void *) {} // ERROR - private
+} foo_;
+
+struct bar : foo {
+  ~bar() {
+    delete this; // ERROR - delete is private
+    // An implicit invocation of delete is emitted in destructors, but
+    // it should only be checked in virtual destructors
+  } // gets bogus error - not virtual - XFAIL *-*-*
+} bar_;
+
+struct baz : foo {
+  virtual ~baz() {} // ERROR - delete is private in vdtor
+} baz_;
+
+struct bad : baz {} bad_; // ERROR - delete is private in vdtor
diff --git a/gcc/testsuite/g++.old-deja/g++.oliva/template6.C b/gcc/testsuite/g++.old-deja/g++.oliva/template6.C
new file mode 100644 (file)
index 0000000..3902d5d
--- /dev/null
@@ -0,0 +1,11 @@
+// Build don't link:
+
+// Copyright (C) 1999 Free Software Foundation
+
+// by Alexandre Oliva <oliva@dcc.unicamp.br>
+// simplified from bug report by Meenaradchagan Vishnu <mvishnu@fore.com>
+
+// crash test - XFAIL *-*-*
+
+template <typename> struct foo {};
+template <> void foo();
diff --git a/gcc/testsuite/g++.old-deja/g++.oliva/template7.C b/gcc/testsuite/g++.old-deja/g++.oliva/template7.C
new file mode 100644 (file)
index 0000000..90da431
--- /dev/null
@@ -0,0 +1,16 @@
+// Build don't link:
+
+// Copyright (C) 1999 Free Software Foundation
+
+// by Alexandre Oliva <oliva@dcc.unicamp.br>
+// simplified from bug report by Paul Burchard <burchard@pobox.com>
+
+// crash test - XFAIL *-*-*
+
+template<class> struct A {};
+template<template<class> class T> struct B {
+  B() {
+    T<B>();
+  }
+};
+B<A> foo;