aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVolker Reichelt <reichelt@gcc.gnu.org>2003-02-04 22:42:34 +0000
committerVolker Reichelt <reichelt@gcc.gnu.org>2003-02-04 22:42:34 +0000
commit2de2cd7851fa02594628e7fb79c077e23a2b4374 (patch)
treeafc403f6b5bb7fe1de6158a1f4920637f3cc9fcd
parent52b62c0e1a86842d44946fe7fa91775b60af85d6 (diff)
downloadgcc-2de2cd7851fa02594628e7fb79c077e23a2b4374.zip
gcc-2de2cd7851fa02594628e7fb79c077e23a2b4374.tar.gz
gcc-2de2cd7851fa02594628e7fb79c077e23a2b4374.tar.bz2
re PR c++/38 (matching of function signatures)
PR c++/38 * g++.dg/parse/array-size1.C: New test. PR c++/5657 * g++.dg/parse/undefined3.C: New test. PR c++/5665 * g++.dg/parse/undefined4.C: New test. PR c++/5975 * g++.dg/parse/undefined5.C: New test. PR c++/7259 * g++.dg/parse/tmpl-tmpl-param1.C: New test. PR c++/8578 * g++.dg/parse/casting-operator1.C: New test. PR c++/8596 * g++.dg/parse/undefined6.C: New test. PR c++/8736 * g++.dg/parse/missing-template1.C: New test. From-SVN: r62409
-rw-r--r--gcc/testsuite/ChangeLog28
-rw-r--r--gcc/testsuite/g++.dg/parse/array-size1.C13
-rw-r--r--gcc/testsuite/g++.dg/parse/casting-operator1.C11
-rw-r--r--gcc/testsuite/g++.dg/parse/missing-template1.C21
-rw-r--r--gcc/testsuite/g++.dg/parse/tmpl-tmpl-param1.C14
-rw-r--r--gcc/testsuite/g++.dg/parse/undefined3.C6
-rw-r--r--gcc/testsuite/g++.dg/parse/undefined4.C11
-rw-r--r--gcc/testsuite/g++.dg/parse/undefined5.C5
-rw-r--r--gcc/testsuite/g++.dg/parse/undefined6.C6
9 files changed, 114 insertions, 1 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 1d32a75..861cc28 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,29 @@
+2003-02-04 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ PR c++/38
+ * g++.dg/parse/array-size1.C: New test.
+
+ PR c++/5657
+ * g++.dg/parse/undefined3.C: New test.
+
+ PR c++/5665
+ * g++.dg/parse/undefined4.C: New test.
+
+ PR c++/5975
+ * g++.dg/parse/undefined5.C: New test.
+
+ PR c++/7259
+ * g++.dg/parse/tmpl-tmpl-param1.C: New test.
+
+ PR c++/8578
+ * g++.dg/parse/casting-operator1.C: New test.
+
+ PR c++/8596
+ * g++.dg/parse/undefined6.C: New test.
+
+ PR c++/8736
+ * g++.dg/parse/missing-template1.C: New test.
+
Tue Feb 4 21:41:09 CET 2003 Jan Hubicka <jh@suse.cz>
* gcc.dg/i386-cadd.c: Compile using -march=k8.
@@ -5,7 +31,7 @@ Tue Feb 4 21:41:09 CET 2003 Jan Hubicka <jh@suse.cz>
* gcc.dg/i386-fpcvt-?.c: Likewise.
* gcc.dg/i386-ssefp-1.c: Likewise.
* gcc.dg/i386-ssetype-?.c: Likewise; fix for register passing
- convetions.
+ conventions.
2003-02-03 Mark Mitchell <mark@codesourcery.com>
diff --git a/gcc/testsuite/g++.dg/parse/array-size1.C b/gcc/testsuite/g++.dg/parse/array-size1.C
new file mode 100644
index 0000000..2bc31f7
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/array-size1.C
@@ -0,0 +1,13 @@
+// PR c++/38
+// Origin: Wolfgang Bangerth <bangerth@dealii.org>
+// { dg-do compile }
+
+template <int i> struct A
+{
+ static const int n = 1;
+ typedef double X[n];
+
+ A (const X&);
+};
+
+template <int i> A<i>::A (const X&) {}
diff --git a/gcc/testsuite/g++.dg/parse/casting-operator1.C b/gcc/testsuite/g++.dg/parse/casting-operator1.C
new file mode 100644
index 0000000..867221a
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/casting-operator1.C
@@ -0,0 +1,11 @@
+// PR c++/8578
+// Origin: <Delana.Lorenzo@libero.it>
+// { dg-do compile }
+
+template <typename T> struct A
+{
+ typedef typename T::X X;
+ operator X();
+};
+
+template <typename T> A<T>::operator typename A<T>::X () {}
diff --git a/gcc/testsuite/g++.dg/parse/missing-template1.C b/gcc/testsuite/g++.dg/parse/missing-template1.C
new file mode 100644
index 0000000..40f8502
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/missing-template1.C
@@ -0,0 +1,21 @@
+// PR c++/8736
+// Origin: Peter Kolloch <pkolloch@gmx.ne>
+// { dg-do compile }
+
+template <typename T> struct A
+{
+ template <typename U> struct B
+ {
+ typedef int X;
+ };
+};
+
+template <typename T> void foo()
+{
+ typedef typename A<T>::B<T>::X Y; // { dg-error "" }
+}
+
+void bar()
+{
+ foo<int>();
+}
diff --git a/gcc/testsuite/g++.dg/parse/tmpl-tmpl-param1.C b/gcc/testsuite/g++.dg/parse/tmpl-tmpl-param1.C
new file mode 100644
index 0000000..1fec1af
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/tmpl-tmpl-param1.C
@@ -0,0 +1,14 @@
+// PR c++/7259
+// Origin: Philipp Buettgenbach <P.Buettgenbach@FH-Wolfenbuettel.DE>
+// Reduced version: Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+// { dg-do compile }
+
+template <template <int> class T> class A : public T<0> {};
+
+template <typename> struct B
+{
+ template <int> class C {};
+ typedef A<C> D;
+};
+
+B<void>::D d;
diff --git a/gcc/testsuite/g++.dg/parse/undefined3.C b/gcc/testsuite/g++.dg/parse/undefined3.C
new file mode 100644
index 0000000..6bafd6f
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/undefined3.C
@@ -0,0 +1,6 @@
+// PR c++/5657
+// Origin: Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+// { dg-do compile }
+
+template<typename T> struct A { A(B); };
+template<typename T> A<T>::A(B) {} // { dg-error "" }
diff --git a/gcc/testsuite/g++.dg/parse/undefined4.C b/gcc/testsuite/g++.dg/parse/undefined4.C
new file mode 100644
index 0000000..0bdc188
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/undefined4.C
@@ -0,0 +1,11 @@
+// PR c++/5665
+// Origin: Bergur Ragnarsson <bergur@tern.is>
+// Reduced version: Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+// { dg-do compile }
+
+template<typename T> class A
+{
+ class B { X foo(); }; // { dg-error "" }
+};
+
+template<typename T> X A<T>::B::foo() {} // { dg-error "" }
diff --git a/gcc/testsuite/g++.dg/parse/undefined5.C b/gcc/testsuite/g++.dg/parse/undefined5.C
new file mode 100644
index 0000000..f1dba6e
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/undefined5.C
@@ -0,0 +1,5 @@
+// PR c++/5975
+// Origin: Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+// { dg-do compile }
+
+typedef typename X::Y<> y; // { dg-error "" }
diff --git a/gcc/testsuite/g++.dg/parse/undefined6.C b/gcc/testsuite/g++.dg/parse/undefined6.C
new file mode 100644
index 0000000..bc8a86d
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/undefined6.C
@@ -0,0 +1,6 @@
+// PR c++/8596
+// Origin: Wolfgang Bangerth <bangerth@ticam.utexas.edu>
+// { dg-do compile }
+
+template <int i> struct A {};
+template <int i> struct B : A<x>{}; // { dg-error "" }