aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJason Merrill <jason@gcc.gnu.org>1998-07-19 20:29:35 -0400
committerJason Merrill <jason@gcc.gnu.org>1998-07-19 20:29:35 -0400
commit160387c4a73bf5df158c605367ef44a69309fc55 (patch)
tree0fb298afbb40e29495e2a9bd695cfbaa96a9f81b /gcc
parent6288717fb39fab96c4f18bbd5a3ec01cecf92542 (diff)
downloadgcc-160387c4a73bf5df158c605367ef44a69309fc55.zip
gcc-160387c4a73bf5df158c605367ef44a69309fc55.tar.gz
gcc-160387c4a73bf5df158c605367ef44a69309fc55.tar.bz2
new
From-SVN: r21300
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/g++.old-deja/g++.ext/implicit1.C14
-rw-r--r--gcc/testsuite/g++.old-deja/g++.ns/koenig7.C22
-rw-r--r--gcc/testsuite/g++.old-deja/g++.ns/lookup5.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.ns/template5.C33
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/lookup1.C9
5 files changed, 79 insertions, 1 deletions
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 0000000..399d232
--- /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 0000000..2565a9e
--- /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 <class T>
+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 cddf828..c83b50a 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 0000000..9dc7a396
--- /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<class T>
+ struct Y{
+ int f(T){
+ return 1;
+ }
+ template<class X>void g(){}
+ };
+}
+
+template<class T>
+struct Y{
+ int f(T){
+ return 2;
+ }
+};
+
+int main()
+{
+ X::Y<int> z;
+ if (z.f(4) != 1)
+ return 1;
+ z.template g<long>();
+
+ Y<int> 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 0000000..f3ea5eb
--- /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];
+};