From ac015f6e765163f128b5fa5a7c37e239e5692213 Mon Sep 17 00:00:00 2001 From: jason Date: Mon, 23 Feb 1998 03:18:11 +0000 Subject: [PATCH] new git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@18199 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/testsuite/g++.old-deja/g++.other/cleanup1.C | 20 ++++++++++++++ gcc/testsuite/g++.old-deja/g++.other/overcnv1.C | 15 +++++++++++ gcc/testsuite/g++.old-deja/g++.pt/defarg2.C | 17 ++++++++++++ gcc/testsuite/g++.old-deja/g++.pt/friend1.C | 24 +++++++++++++++++ gcc/testsuite/g++.old-deja/g++.pt/friend10.C | 29 +++++++++++++++++++++ gcc/testsuite/g++.old-deja/g++.pt/friend11.C | 31 ++++++++++++++++++++++ gcc/testsuite/g++.old-deja/g++.pt/friend12.C | 33 ++++++++++++++++++++++++ gcc/testsuite/g++.old-deja/g++.pt/friend13.C | 33 ++++++++++++++++++++++++ gcc/testsuite/g++.old-deja/g++.pt/friend3.C | 25 ++++++++++++++++++ gcc/testsuite/g++.old-deja/g++.pt/friend4.C | 21 +++++++++++++++ gcc/testsuite/g++.old-deja/g++.pt/friend5.C | 17 ++++++++++++ gcc/testsuite/g++.old-deja/g++.pt/friend6.C | 28 ++++++++++++++++++++ gcc/testsuite/g++.old-deja/g++.pt/friend7.C | 25 ++++++++++++++++++ gcc/testsuite/g++.old-deja/g++.pt/friend8.C | 18 +++++++++++++ gcc/testsuite/g++.old-deja/g++.pt/friend9.C | 22 ++++++++++++++++ gcc/testsuite/g++.old-deja/g++.pt/instantiate2.C | 12 +++++++++ gcc/testsuite/g++.old-deja/g++.pt/memtemp58.C | 3 ++- gcc/testsuite/g++.old-deja/g++.pt/memtemp70.C | 24 +++++++++++++++++ gcc/testsuite/g++.old-deja/g++.pt/ttp42.C | 21 +++++++++++++++ 19 files changed, 417 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/g++.old-deja/g++.other/cleanup1.C create mode 100644 gcc/testsuite/g++.old-deja/g++.other/overcnv1.C create mode 100644 gcc/testsuite/g++.old-deja/g++.pt/defarg2.C create mode 100644 gcc/testsuite/g++.old-deja/g++.pt/friend1.C create mode 100644 gcc/testsuite/g++.old-deja/g++.pt/friend10.C create mode 100644 gcc/testsuite/g++.old-deja/g++.pt/friend11.C create mode 100644 gcc/testsuite/g++.old-deja/g++.pt/friend12.C create mode 100644 gcc/testsuite/g++.old-deja/g++.pt/friend13.C create mode 100644 gcc/testsuite/g++.old-deja/g++.pt/friend3.C create mode 100644 gcc/testsuite/g++.old-deja/g++.pt/friend4.C create mode 100644 gcc/testsuite/g++.old-deja/g++.pt/friend5.C create mode 100644 gcc/testsuite/g++.old-deja/g++.pt/friend6.C create mode 100644 gcc/testsuite/g++.old-deja/g++.pt/friend7.C create mode 100644 gcc/testsuite/g++.old-deja/g++.pt/friend8.C create mode 100644 gcc/testsuite/g++.old-deja/g++.pt/friend9.C create mode 100644 gcc/testsuite/g++.old-deja/g++.pt/instantiate2.C create mode 100644 gcc/testsuite/g++.old-deja/g++.pt/memtemp70.C create mode 100644 gcc/testsuite/g++.old-deja/g++.pt/ttp42.C diff --git a/gcc/testsuite/g++.old-deja/g++.other/cleanup1.C b/gcc/testsuite/g++.old-deja/g++.other/cleanup1.C new file mode 100644 index 00000000000..ce373601ded --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.other/cleanup1.C @@ -0,0 +1,20 @@ +// Bug: fold is too eager about pushing down CLEANUP_POINT_EXPR. + +int d; + +struct A { + A() { } + ~A() { d = 1; } +}; + +int f (const A& a) +{ + return 1; +} + +main () +{ + if (f (A()) && d == 0) + return 0; + return 1; +} diff --git a/gcc/testsuite/g++.old-deja/g++.other/overcnv1.C b/gcc/testsuite/g++.old-deja/g++.other/overcnv1.C new file mode 100644 index 00000000000..05941df5ff0 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.other/overcnv1.C @@ -0,0 +1,15 @@ +// Build don't link: + +class A { +public: + void f(const char * const * ); +}; +void f(const char * const *) {} + +void g() +{ + char *ar[10]; + A a; + f(ar); + a.f(ar); +} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/defarg2.C b/gcc/testsuite/g++.old-deja/g++.pt/defarg2.C new file mode 100644 index 00000000000..444ecc40b50 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.pt/defarg2.C @@ -0,0 +1,17 @@ +template +struct X +{}; + +template <> +struct X<0,int> +{}; + +template +struct X +: X<> +{}; + +int main() +{ + X<1,int> x; +} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend1.C b/gcc/testsuite/g++.old-deja/g++.pt/friend1.C new file mode 100644 index 00000000000..ba642ba5c5a --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.pt/friend1.C @@ -0,0 +1,24 @@ +template +void f(T); + +class C +{ + template + friend void f(T); + + int i; +}; + + +template +void f(T) +{ + C c; + c.i = 3; +} + + +int main() +{ + f(7); +} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend10.C b/gcc/testsuite/g++.old-deja/g++.pt/friend10.C new file mode 100644 index 00000000000..bff432b5620 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.pt/friend10.C @@ -0,0 +1,29 @@ +template +void f(T); + +template +class C +{ + template + friend void f(T) + { + C c; + c.i = 3; + } + +public: + + void g() + { + f(3.0); + } + + int i; +}; + +int main() +{ + f(7); + C c; + c.g(); +} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend11.C b/gcc/testsuite/g++.old-deja/g++.pt/friend11.C new file mode 100644 index 00000000000..d70fae6e0c8 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.pt/friend11.C @@ -0,0 +1,31 @@ +template +class C; + +template +struct S +{ + template + void f(U u) + { + C cu; + cu.i = 3; // ERROR - S::f is a friend, but this is + // S::f. + } +}; + + +template +class C +{ + template + friend void S::f(U); + + int i; +}; + + +int main() +{ + S si; + si.f(3.0); +} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend12.C b/gcc/testsuite/g++.old-deja/g++.pt/friend12.C new file mode 100644 index 00000000000..ef9bfc8a02c --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.pt/friend12.C @@ -0,0 +1,33 @@ +template +class C; + +template +struct S +{ + template + void f(U u1, U u2) {} + + template + void f(U u) + { + C ct; + ct.i = 3; + } +}; + + +template +class C +{ + template + friend void S::f(U); + + int i; +}; + + +int main() +{ + S si; + si.f(3.0); +} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend13.C b/gcc/testsuite/g++.old-deja/g++.pt/friend13.C new file mode 100644 index 00000000000..251d52a47bc --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.pt/friend13.C @@ -0,0 +1,33 @@ +template +class C; + +template +struct S +{ + template + void f(V v) + { + C cv; + cv.i = 3; + } +}; + + +template +class C +{ + template + template + friend void S::f(V); + + int i; +}; + + +int main() +{ + S si; + si.f(3.0); + S sl; + sl.f('c'); +} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend3.C b/gcc/testsuite/g++.old-deja/g++.pt/friend3.C new file mode 100644 index 00000000000..77aabd3bee3 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.pt/friend3.C @@ -0,0 +1,25 @@ +// Build don't link: + +template +void f(T); + +class C +{ + friend void f<>(double); + + int i; +}; + + +template +void f(T) +{ + C c; + c.i = 3; // ERROR - f is a friend, this is f. +} + + +int main() +{ + f(7); +} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend4.C b/gcc/testsuite/g++.old-deja/g++.pt/friend4.C new file mode 100644 index 00000000000..ea439277c5a --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.pt/friend4.C @@ -0,0 +1,21 @@ +class C +{ + template + friend void f(T); + + int i; +}; + + +template +void f(T) +{ + C c; + c.i = 3; +} + + +int main() +{ + f(7); +} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend5.C b/gcc/testsuite/g++.old-deja/g++.pt/friend5.C new file mode 100644 index 00000000000..516be4dd018 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.pt/friend5.C @@ -0,0 +1,17 @@ +class C +{ + template + friend void f(T) + { + C c; + c.i = 3; + } + + int i; +}; + + +int main() +{ + f(7); +} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend6.C b/gcc/testsuite/g++.old-deja/g++.pt/friend6.C new file mode 100644 index 00000000000..5651421e6cf --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.pt/friend6.C @@ -0,0 +1,28 @@ +template +void f(T); + +class C +{ + template + friend void f(T) + { + C c; + c.i = 3; + } + +public: + + void g() + { + f(3.0); + } + + int i; +}; + +int main() +{ + f(7); + C c; + c.g(); +} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend7.C b/gcc/testsuite/g++.old-deja/g++.pt/friend7.C new file mode 100644 index 00000000000..2962d924531 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.pt/friend7.C @@ -0,0 +1,25 @@ +template +void f(T); + +template +class C +{ + template + friend void f(T); + + int i; +}; + + +template +void f(T) +{ + C c; + c.i = 3; +} + + +int main() +{ + f(7); +} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend8.C b/gcc/testsuite/g++.old-deja/g++.pt/friend8.C new file mode 100644 index 00000000000..ffa9122728f --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.pt/friend8.C @@ -0,0 +1,18 @@ +template +class C +{ + friend void f (C c) + { + c.i = 3; + } + + int i; +}; + + +int main() +{ + C ci; + + f(ci); +} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend9.C b/gcc/testsuite/g++.old-deja/g++.pt/friend9.C new file mode 100644 index 00000000000..63455d01a52 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.pt/friend9.C @@ -0,0 +1,22 @@ +template +class C +{ + template + friend void f(T); + + int i; +}; + + +template +void f(T) +{ + C c; + c.i = 3; +} + + +int main() +{ + f(7); +} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/instantiate2.C b/gcc/testsuite/g++.old-deja/g++.pt/instantiate2.C new file mode 100644 index 00000000000..a5c6c49d16f --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.pt/instantiate2.C @@ -0,0 +1,12 @@ +// Build don't link: + +template +struct X_two { + template T2 conv_compare_ge(T2 test) { + T2 tmp_value = T2 (0); + return (tmp_value > test ? tmp_value : test); + } +}; + +template int X_two::conv_compare_ge(int); + diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp58.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp58.C index a64adeb8817..38c295388d0 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp58.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/memtemp58.C @@ -18,7 +18,8 @@ struct A { template static void f(B, B b) { - D::E::f(b); + typedef typename D::E E; + E::f(b); } }; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp70.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp70.C new file mode 100644 index 00000000000..2a9fe8a2c35 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.pt/memtemp70.C @@ -0,0 +1,24 @@ +// Build don't link: + +template +class X { +public: + T x; +}; + +class Y { +public: + template static void f(X& a) {} + + void g(void); +}; + +void +Y::g(void) +{ + X a; + + f(a); +} + + diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp42.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp42.C new file mode 100644 index 00000000000..b2610dfb123 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.pt/ttp42.C @@ -0,0 +1,21 @@ +template class C> +struct X +{}; + +template +struct Y +{}; + +template +struct Z +{}; + +template +struct X +{}; + +int main() +{ + X a; + X b; +} -- 2.11.0