lss-001.C, [...]: New tests.
authorPaul Burchard <burchard@pobox.com>
Wed, 25 Aug 1999 21:48:16 +0000 (21:48 +0000)
committerAlexandre Oliva <oliva@gcc.gnu.org>
Wed, 25 Aug 1999 21:48:16 +0000 (21:48 +0000)
* g++.old-deja/g++.pt/lss-001.C, lss-002.C, lss-003.C, lss-004.C,
lss-005.C, lss-006.C, lss-007.C, lss-008.C, lss-009.C, lss-010.C,
lss-011.C: New tests.

From-SVN: r28874

12 files changed:
gcc/testsuite/ChangeLog
gcc/testsuite/g++.old-deja/g++.pt/lss-001.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.pt/lss-002.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.pt/lss-003.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.pt/lss-004.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.pt/lss-005.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.pt/lss-006.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.pt/lss-007.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.pt/lss-008.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.pt/lss-009.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.pt/lss-010.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.pt/lss-011.C [new file with mode: 0644]

index 1c13f9f6df13cef2a69b9cea1c6a393f5d58d734..6ef6a6440ce83dd11239666db00f230d5263b116 100644 (file)
@@ -1,3 +1,9 @@
+1999-08-25  Paul Burchard  <burchard@pobox.com>
+
+       * g++.old-deja/g++.pt/lss-001.C, lss-002.C, lss-003.C, lss-004.C,
+       lss-005.C, lss-006.C, lss-007.C, lss-008.C, lss-009.C, lss-010.C,
+       lss-011.C: New tests.
+
 1999-08-25  Nathan Sidwell  <nathan@acm.org>
 
        * g++.old-deja/g++.other/decl5.C: New test.
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/lss-001.C b/gcc/testsuite/g++.old-deja/g++.pt/lss-001.C
new file mode 100644 (file)
index 0000000..9b4bda5
--- /dev/null
@@ -0,0 +1,15 @@
+// Build don't link:
+// crash test -
+
+// by Paul Burchard <burchard@pobox.com>, Level Set Systems, Inc.
+// Copyright (C) 1999 Free Software Foundation
+
+template<class T>
+class X {
+       class Y : public T {}; // ERROR - invalid base type
+       Y y;
+};
+int main() {
+       X<int> x; // ERROR - (instantiated from here)
+}
+
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/lss-002.C b/gcc/testsuite/g++.old-deja/g++.pt/lss-002.C
new file mode 100644 (file)
index 0000000..562f430
--- /dev/null
@@ -0,0 +1,26 @@
+// Build don't link:
+
+// by Paul Burchard <burchard@pobox.com>, Level Set Systems, Inc.
+// Copyright (C) 1999 Free Software Foundation
+
+template<class X>
+class A {
+};
+template<class Y>
+class B {
+};
+
+template<template<class XX> class AA> // gets bogus error - `template <class XX> template <class X> class A<X>' previously declared here
+class C {
+       class D {
+       };
+       D d;
+       class E : public B<D> {
+       };
+       E e;
+};
+
+int main() {
+       C<A> c; // gets bogus error - redefinition of `template <class XX> template <class X> class A<X>'
+}
+
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/lss-003.C b/gcc/testsuite/g++.old-deja/g++.pt/lss-003.C
new file mode 100644 (file)
index 0000000..29fcea1
--- /dev/null
@@ -0,0 +1,8 @@
+// Build don't link:
+// crash test -
+
+// by Paul Burchard <burchard@pobox.com>, Level Set Systems, Inc.
+// Copyright (C) 1999 Free Software Foundation
+
+typedef std::vector<int>::iterator iter; // ERROR - syntax error before `::'
+
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/lss-004.C b/gcc/testsuite/g++.old-deja/g++.pt/lss-004.C
new file mode 100644 (file)
index 0000000..ef8f048
--- /dev/null
@@ -0,0 +1,16 @@
+// Build don't link:
+// crash test - XFAIL *-*-*
+
+// by Paul Burchard <burchard@pobox.com>, Level Set Systems, Inc.
+// Copyright (C) 1999 Free Software Foundation
+
+class Q {
+       template<class>
+       class X {
+       };
+};
+template<template<class> class>
+class Y {
+};
+Y<Q::X> y1;
+
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/lss-005.C b/gcc/testsuite/g++.old-deja/g++.pt/lss-005.C
new file mode 100644 (file)
index 0000000..47a587f
--- /dev/null
@@ -0,0 +1,16 @@
+// Build don't link:
+// crash test - XFAIL *-*-*
+
+// by Paul Burchard <burchard@pobox.com>, Level Set Systems, Inc.
+// Copyright (C) 1999 Free Software Foundation
+
+class Q {
+       template<class>
+       class X {
+       };
+};
+template<template<class> class>
+class Y {
+};
+Y<typename Q::X> y; // ERROR - typename out of template context
+
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/lss-006.C b/gcc/testsuite/g++.old-deja/g++.pt/lss-006.C
new file mode 100644 (file)
index 0000000..a57ad17
--- /dev/null
@@ -0,0 +1,16 @@
+// Build don't link:
+// crash test - XFAIL *-*-*
+
+// by Paul Burchard <burchard@pobox.com>, Level Set Systems, Inc.
+// Copyright (C) 1999 Free Software Foundation
+
+class Q {
+       template<class>
+       class X {
+       };
+};
+template<template<class> class>
+class Y {
+};
+Q::template X<int> x; // ERROR - template syntax
+
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/lss-007.C b/gcc/testsuite/g++.old-deja/g++.pt/lss-007.C
new file mode 100644 (file)
index 0000000..cf2336f
--- /dev/null
@@ -0,0 +1,18 @@
+// Build don't link:
+// crash test - XFAIL *-*-*
+// regression test -
+
+// by Paul Burchard <burchard@pobox.com>, Level Set Systems, Inc.
+// Copyright (C) 1999 Free Software Foundation
+
+template<class A>
+struct X {
+       X(A) {
+       }
+};
+template<class A>
+struct Y {
+       static X<A> x(A(1)); // ERROR - ANSI C++ forbids in-class initialization of non-const static member `x'
+};
+Y<int> y;
+
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/lss-008.C b/gcc/testsuite/g++.old-deja/g++.pt/lss-008.C
new file mode 100644 (file)
index 0000000..56dab46
--- /dev/null
@@ -0,0 +1,16 @@
+// Build don't link:
+// crash test - XFAIL *-*-*
+
+// by Paul Burchard <burchard@pobox.com>, Level Set Systems, Inc.
+// Copyright (C) 1999 Free Software Foundation
+
+struct Q {
+       template<class>
+       class X {
+       };
+       template<template<class> class XX = X> // gets bogus error - (original definition appeared here)
+       class Y {
+       }; // gets bogus error - redefinition of default argument for `template <class> XX'
+       Y<> y;
+};
+
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/lss-009.C b/gcc/testsuite/g++.old-deja/g++.pt/lss-009.C
new file mode 100644 (file)
index 0000000..7cc027a
--- /dev/null
@@ -0,0 +1,17 @@
+// Build don't link:
+// crash test - XFAIL *-*-*
+
+// by Paul Burchard <burchard@pobox.com>, Level Set Systems, Inc.
+// Copyright (C) 1999 Free Software Foundation
+
+class Q {
+       template<class T>
+       class X {
+       };
+};
+template<template<class> class XX>
+class Y {
+       XX<int> x_;
+};
+Y<Q::X> y;
+
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/lss-010.C b/gcc/testsuite/g++.old-deja/g++.pt/lss-010.C
new file mode 100644 (file)
index 0000000..15dcca7
--- /dev/null
@@ -0,0 +1,19 @@
+// Build don't link:
+// regression test - 
+
+// by Paul Burchard <burchard@pobox.com>, Level Set Systems, Inc.
+// Copyright (C) 1999 Free Software Foundation
+// related to bug report by Leon Bottou <leonb@research.att.com>
+
+struct A {
+       template<class T>
+       struct B {
+       };
+       template<class T>
+       struct C {
+               B<T> b; // gets bogus error - B is not a template
+                       // but removing wrapper A gets rid of complaint
+                       // also, replacing B<T> with A::B<T> also gets rid of complaint
+       };
+};
+
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/lss-011.C b/gcc/testsuite/g++.old-deja/g++.pt/lss-011.C
new file mode 100644 (file)
index 0000000..be97e9f
--- /dev/null
@@ -0,0 +1,20 @@
+// Build don't link:
+// crash test - XFAIL *-*-*
+// regression test -
+
+// simplified from bug report by Leon Bottou <leonb@research.att.com>
+// by Paul Burchard <burchard@pobox.com>, Level Set Systems, Inc.
+// Copyright (C) 1999 Free Software Foundation
+
+struct A {
+       template <class T>
+       struct B {
+               T x;
+       };
+       template <class T>
+       struct C : B<T> {
+               C() {}
+       };
+};
+
+