OSDN Git Service

authorrobertl <robertl@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 9 Jul 1998 21:10:51 +0000 (21:10 +0000)
committerrobertl <robertl@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 9 Jul 1998 21:10:51 +0000 (21:10 +0000)
From Martin Von Loewis.
       * g++.ns/{alias2.C, alias5.C, koenig4.C, lookup3.C ns13.C,
       ns14.C, ns15.C, template3.C, undef1.C, using4.C, using5.C,
       using6.C, using7.C}:  New namespace tests.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@21043 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/testsuite/g++.old-deja/g++.ns/koenig4.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.ns/lookup3.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.ns/ns13.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.ns/ns14.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.ns/ns15.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.ns/template3.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.ns/undef1.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.ns/using4.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.ns/using5.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.ns/using6.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.ns/using7.C [new file with mode: 0644]

diff --git a/gcc/testsuite/g++.old-deja/g++.ns/koenig4.C b/gcc/testsuite/g++.old-deja/g++.ns/koenig4.C
new file mode 100644 (file)
index 0000000..009327c
--- /dev/null
@@ -0,0 +1,24 @@
+void f();
+void f(int);
+
+namespace A{
+  struct S{
+    void f();
+    void f(S);
+  };
+  void f(S&){}
+  void h(S&){}
+}
+
+template<class T>
+void g(T t){
+  f(t);
+}
+
+int main()
+{
+  A::S s;
+  f(s);
+  g(s);
+  h(s);
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/lookup3.C b/gcc/testsuite/g++.old-deja/g++.ns/lookup3.C
new file mode 100644 (file)
index 0000000..cd1aaae
--- /dev/null
@@ -0,0 +1,14 @@
+namespace A{
+  int i;
+  int f();
+}
+
+int A::f()
+{
+  return i;
+}
+
+main()
+{
+  return A::f();
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/ns13.C b/gcc/testsuite/g++.old-deja/g++.ns/ns13.C
new file mode 100644 (file)
index 0000000..0272055
--- /dev/null
@@ -0,0 +1,13 @@
+namespace std{ 
+  void f(){}
+  void g();
+  int i=5;
+}
+
+void std::g()
+{}
+
+main()
+{
+  return std::i-5;
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/ns14.C b/gcc/testsuite/g++.old-deja/g++.ns/ns14.C
new file mode 100644 (file)
index 0000000..5a3cc70
--- /dev/null
@@ -0,0 +1,16 @@
+//Special g++ Options: -fhonor-std
+namespace std{ 
+  int f(){
+    return 0;
+  }
+}
+
+int f()
+{
+  return 1;
+}
+
+int main()
+{
+  return std::f();
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/ns15.C b/gcc/testsuite/g++.old-deja/g++.ns/ns15.C
new file mode 100644 (file)
index 0000000..cbb6292
--- /dev/null
@@ -0,0 +1,2 @@
+//Build don't link:
+namespace std {}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/template3.C b/gcc/testsuite/g++.old-deja/g++.ns/template3.C
new file mode 100644 (file)
index 0000000..761656f
--- /dev/null
@@ -0,0 +1,21 @@
+//Check instantiation of templates outside their namespace
+namespace A{
+template <class T>void g(){}
+template <class T> struct B {
+  B(){
+   f();
+  }
+  void f()
+  {
+    g<T>();
+  }
+};
+}
+
+template class A::B<int>;
+A::B<int> s;
+
+int main()
+{
+  return 0;
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/undef1.C b/gcc/testsuite/g++.old-deja/g++.ns/undef1.C
new file mode 100644 (file)
index 0000000..d13b8e7
--- /dev/null
@@ -0,0 +1,5 @@
+//Build don't link:
+namespace A{
+}
+
+struct Y: A::S<int>{};     //ERROR - no such type
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/using4.C b/gcc/testsuite/g++.old-deja/g++.ns/using4.C
new file mode 100644 (file)
index 0000000..f3197be
--- /dev/null
@@ -0,0 +1,5 @@
+//Build don't link
+#include <vector>
+namespace csp {
+using namespace std::vector;  // ERROR - vector is not a namespace
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/using5.C b/gcc/testsuite/g++.old-deja/g++.ns/using5.C
new file mode 100644 (file)
index 0000000..37fc6a8
--- /dev/null
@@ -0,0 +1,6 @@
+// Build don't link:
+namespace a {
+    class b {
+       using std::c;  //ERROR - namespace using on class level
+    };
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/using6.C b/gcc/testsuite/g++.old-deja/g++.ns/using6.C
new file mode 100644 (file)
index 0000000..b770950
--- /dev/null
@@ -0,0 +1,9 @@
+//Build don't link:
+#include <vector>
+
+namespace csp {
+    using namespace std;
+    struct X {
+       vector<int> v;
+    };
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/using7.C b/gcc/testsuite/g++.old-deja/g++.ns/using7.C
new file mode 100644 (file)
index 0000000..a449284
--- /dev/null
@@ -0,0 +1,11 @@
+namespace X{
+  void f(int){}
+}
+
+void f();
+
+int main()
+{
+  using X::f;
+  f(3);
+}