diff options
author | Volker Reichelt <reichelt@gcc.gnu.org> | 2003-02-04 22:42:34 +0000 |
---|---|---|
committer | Volker Reichelt <reichelt@gcc.gnu.org> | 2003-02-04 22:42:34 +0000 |
commit | 2de2cd7851fa02594628e7fb79c077e23a2b4374 (patch) | |
tree | afc403f6b5bb7fe1de6158a1f4920637f3cc9fcd /gcc | |
parent | 52b62c0e1a86842d44946fe7fa91775b60af85d6 (diff) | |
download | gcc-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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 28 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/parse/array-size1.C | 13 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/parse/casting-operator1.C | 11 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/parse/missing-template1.C | 21 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/parse/tmpl-tmpl-param1.C | 14 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/parse/undefined3.C | 6 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/parse/undefined4.C | 11 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/parse/undefined5.C | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/parse/undefined6.C | 6 |
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 "" } |