From 160387c4a73bf5df158c605367ef44a69309fc55 Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Sun, 19 Jul 1998 20:29:35 -0400 Subject: [PATCH] new From-SVN: r21300 --- .../g++.old-deja/g++.ext/implicit1.C | 14 ++++++++ gcc/testsuite/g++.old-deja/g++.ns/koenig7.C | 22 +++++++++++++ gcc/testsuite/g++.old-deja/g++.ns/lookup5.C | 2 +- gcc/testsuite/g++.old-deja/g++.ns/template5.C | 33 +++++++++++++++++++ .../g++.old-deja/g++.other/lookup1.C | 9 +++++ 5 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/g++.old-deja/g++.ext/implicit1.C create mode 100644 gcc/testsuite/g++.old-deja/g++.ns/koenig7.C create mode 100644 gcc/testsuite/g++.old-deja/g++.ns/template5.C create mode 100644 gcc/testsuite/g++.old-deja/g++.other/lookup1.C diff --git a/gcc/testsuite/g++.old-deja/g++.ext/implicit1.C b/gcc/testsuite/g++.old-deja/g++.ext/implicit1.C new file mode 100644 index 00000000000..399d2329758 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.ext/implicit1.C @@ -0,0 +1,14 @@ +// test for implicit declaration +// Special g++ Options: -w + +int +main () +{ + return blarg (); +} + +extern "C" int +blarg (...) +{ + return 0; +} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/koenig7.C b/gcc/testsuite/g++.old-deja/g++.ns/koenig7.C new file mode 100644 index 00000000000..2565a9e849d --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.ns/koenig7.C @@ -0,0 +1,22 @@ +// Test for Koenig lookup involving overloaded functions. + +namespace N1 { + struct A { }; + void f1(A) {} + void f2(float) {} + void g(void (*)(float)) {} +} + +using N1::f1; +void f1(float) {} + +using N1::f2; +template +void f2(N1::A, T) {} + +void g(void (*)(int)) {} + +int main() { + g(&f1); // Works? + g(f2); // Works? +} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/lookup5.C b/gcc/testsuite/g++.old-deja/g++.ns/lookup5.C index cddf828cd3b..c83b50a9779 100644 --- a/gcc/testsuite/g++.old-deja/g++.ns/lookup5.C +++ b/gcc/testsuite/g++.old-deja/g++.ns/lookup5.C @@ -5,7 +5,7 @@ namespace A{ namespace B{ using namespace A; - void f(int); + void f(int); // ERROR - referenced below } using namespace B; diff --git a/gcc/testsuite/g++.old-deja/g++.ns/template5.C b/gcc/testsuite/g++.old-deja/g++.ns/template5.C new file mode 100644 index 00000000000..9dc7a396a7e --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.ns/template5.C @@ -0,0 +1,33 @@ +//Check whether namespace-scoped template instantiations +//are mangled differently. + +namespace X{ + template + struct Y{ + int f(T){ + return 1; + } + templatevoid g(){} + }; +} + +template +struct Y{ + int f(T){ + return 2; + } +}; + +int main() +{ + X::Y z; + if (z.f(4) != 1) + return 1; + z.template g(); + + Y z1; + if (z1.f(5) != 2) + return 1; + return 0; +} + diff --git a/gcc/testsuite/g++.old-deja/g++.other/lookup1.C b/gcc/testsuite/g++.old-deja/g++.other/lookup1.C new file mode 100644 index 00000000000..f3ea5ebbb72 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.other/lookup1.C @@ -0,0 +1,9 @@ +// simple test for id from base class during class defn +// Build don't link: + +struct foo { + enum { blah = 1 }; +}; +struct bar : public foo { + char cache[blah]; +}; -- 2.30.2