new
authorJason Merrill <jason@gcc.gnu.org>
Mon, 20 Jul 1998 00:29:35 +0000 (20:29 -0400)
committerJason Merrill <jason@gcc.gnu.org>
Mon, 20 Jul 1998 00:29:35 +0000 (20:29 -0400)
From-SVN: r21300

gcc/testsuite/g++.old-deja/g++.ext/implicit1.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.ns/koenig7.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.ns/lookup5.C
gcc/testsuite/g++.old-deja/g++.ns/template5.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.other/lookup1.C [new file with mode: 0644]

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 (file)
index 0000000..399d232
--- /dev/null
@@ -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 (file)
index 0000000..2565a9e
--- /dev/null
@@ -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?
+}
index cddf828cd3be434517d5722ae57053c3bb0994c9..c83b50a9779b1a7a058e276c2e72fd7dcb75b593 100644 (file)
@@ -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 (file)
index 0000000..9dc7a39
--- /dev/null
@@ -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 (file)
index 0000000..f3ea5eb
--- /dev/null
@@ -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];
+};