summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.old-deja/g++.ns
diff options
context:
space:
mode:
authorYamaArashi <shadow962@live.com>2016-01-06 01:47:28 -0800
committerYamaArashi <shadow962@live.com>2016-01-06 01:47:28 -0800
commitbe8b04496302184c6e8f04d6179f9c3afc50aeb6 (patch)
tree726e2468c0c07add773c0dbd86ab6386844259ae /gcc/testsuite/g++.old-deja/g++.ns
initial commit
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.ns')
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/alias1.C18
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/alias2.C8
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/alias3.C30
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/alias4.C13
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/alias5.C18
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/alias6.C35
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/anon1.C12
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/bogus1.C10
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/crash1.C12
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/crash2.C12
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/crash3.C10
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/extern1.C18
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/friend1.C8
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/invalid1.C12
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/koenig1.C18
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/koenig2.C10
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/koenig3.C21
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/koenig4.C24
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/koenig5.C15
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/koenig6.C12
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/koenig7.C22
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/lookup1.C3
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/lookup2.C9
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/lookup3.C14
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/lookup4.C23
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/lookup5.C23
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/main1.C15
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/ns1.C16
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/ns10.C13
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/ns11.C19
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/ns12.C22
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/ns13.C13
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/ns14.C16
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/ns15.C2
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/ns16.C14
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/ns2.C26
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/ns3.C17
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/ns4.C11
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/ns5.C6
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/ns6.C13
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/ns7.C26
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/ns8.C11
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/ns9.C13
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/overload1.C33
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/overload2.C12
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/overload3.C19
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/overload4.C8
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/overload5.C14
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/template1.C9
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/template2.C14
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/template3.C21
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/template4.C17
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/template5.C33
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/template6.C24
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/template7.C13
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/undef1.C5
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/using1.C3
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/using10.C9
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/using11.C9
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/using12.C19
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/using2.C5
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/using3.C16
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/using4.C5
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/using5.C6
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/using6.C9
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/using7.C11
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/using8.C20
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.ns/using9.C24
68 files changed, 1021 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/alias1.C b/gcc/testsuite/g++.old-deja/g++.ns/alias1.C
new file mode 100755
index 0000000..797e2b2
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/alias1.C
@@ -0,0 +1,18 @@
+namespace foo{
+ int eine_funktion(int)
+ {
+ return 0;
+ }
+}
+
+namespace foo{
+ void eine_funktion(int,int)
+ {}
+}
+
+namespace bar = foo;
+
+int main()
+{
+ return bar::eine_funktion(3);
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/alias2.C b/gcc/testsuite/g++.old-deja/g++.ns/alias2.C
new file mode 100755
index 0000000..95b2a23
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/alias2.C
@@ -0,0 +1,8 @@
+//Build don't link:
+namespace NS1
+{
+ int a;
+}
+
+namespace NS2 = NonExistant; //ERROR -
+
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/alias3.C b/gcc/testsuite/g++.old-deja/g++.ns/alias3.C
new file mode 100755
index 0000000..3b8de0c
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/alias3.C
@@ -0,0 +1,30 @@
+namespace A{
+ struct X{};
+ void f(X&);
+ extern int i;
+ namespace a_very_long_namespace_name{
+ int k;
+ }
+}
+
+namespace B = A;
+namespace B = A;
+namespace B = B;
+
+namespace avl = A::a_very_long_namespace_name;
+
+void B::f(A::X& x)
+{
+ B::f(x);
+ f(x);
+ avl::k = 1;
+}
+
+int B::i = 0;
+
+int main()
+{
+ B::X x;
+ if (B::i)
+ A::f(x);
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/alias4.C b/gcc/testsuite/g++.old-deja/g++.ns/alias4.C
new file mode 100755
index 0000000..16c4dca
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/alias4.C
@@ -0,0 +1,13 @@
+namespace A = B; // ERROR - unknown namespace
+
+namespace C{}
+namespace D = C;
+namespace D { // ERROR - reopening namespace with alias
+ void f();
+}
+
+void C::f(){} // ERROR - previous definition
+
+void D::f(){} // ERROR - redefinition
+
+namespace E = C::F; // ERROR - unknown namespace
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/alias5.C b/gcc/testsuite/g++.old-deja/g++.ns/alias5.C
new file mode 100755
index 0000000..797e2b2
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/alias5.C
@@ -0,0 +1,18 @@
+namespace foo{
+ int eine_funktion(int)
+ {
+ return 0;
+ }
+}
+
+namespace foo{
+ void eine_funktion(int,int)
+ {}
+}
+
+namespace bar = foo;
+
+int main()
+{
+ return bar::eine_funktion(3);
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/alias6.C b/gcc/testsuite/g++.old-deja/g++.ns/alias6.C
new file mode 100755
index 0000000..b0799ab
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/alias6.C
@@ -0,0 +1,35 @@
+// Check namespace aliases inside blocks
+namespace A {
+ int i;
+ void f(){
+ i = 0;
+ }
+}
+
+int g();
+
+int main ()
+{
+ namespace B = A;
+ B::i=42;
+ B::f();
+ using namespace B;
+ f();
+ // A::i is now 0, B::i is 1
+ return g();
+}
+
+namespace B {
+ int i = 1;
+}
+
+int g()
+{
+ namespace x = A;
+ if (x::i)
+ {
+ namespace x = B;
+ return x::i;
+ }
+ return x::i;
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/anon1.C b/gcc/testsuite/g++.old-deja/g++.ns/anon1.C
new file mode 100755
index 0000000..c4a242a
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/anon1.C
@@ -0,0 +1,12 @@
+namespace{
+ void f();
+}
+
+int main()
+{
+ f();
+}
+
+namespace{
+ void f(){}
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/bogus1.C b/gcc/testsuite/g++.old-deja/g++.ns/bogus1.C
new file mode 100755
index 0000000..c61dea8
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/bogus1.C
@@ -0,0 +1,10 @@
+// Build don't link:
+
+namespace N {}
+
+void f(int N::k); // ERROR - cannot use `::' in parameter declaration
+
+class Foo
+{
+ int N::j; // ERROR - invalid use of `::'
+};
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/crash1.C b/gcc/testsuite/g++.old-deja/g++.ns/crash1.C
new file mode 100755
index 0000000..5a002bd
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/crash1.C
@@ -0,0 +1,12 @@
+// Build don't link:
+
+template <class T>
+struct S1 {};
+
+namespace N {
+}
+
+struct S2
+{
+ typedef N::S1<int> S2_T; // ERROR - parse error
+};
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/crash2.C b/gcc/testsuite/g++.old-deja/g++.ns/crash2.C
new file mode 100755
index 0000000..d49189b
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/crash2.C
@@ -0,0 +1,12 @@
+// Build don't link:
+
+// Submitted by bjornw@fairplay.no
+
+// crash test - XFAIL *-*-*
+
+namespace hei {
+ class CSomeClass {};
+ extern CSomeClass SomeClass;
+};
+
+hei::CSomeClass hei::CSomeClass; // ERROR - should be hei::SomeClass
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/crash3.C b/gcc/testsuite/g++.old-deja/g++.ns/crash3.C
new file mode 100755
index 0000000..842ed09
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/crash3.C
@@ -0,0 +1,10 @@
+// Build don't link:
+
+namespace N {
+ template <class T> struct S;
+};
+
+void f()
+{
+ N::S(); // ERROR - invalid use of template
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/extern1.C b/gcc/testsuite/g++.old-deja/g++.ns/extern1.C
new file mode 100755
index 0000000..906b97b
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/extern1.C
@@ -0,0 +1,18 @@
+// Build don't run:
+
+// Based on a testcase by eyal.ben-david@aks.com
+
+// An extern declaration of an undeclared object within a function
+// introduces the object into the enclosing namespace [basic.link]/7
+
+namespace {
+ void foo() {
+ extern int xx;
+ xx = 0;
+ }
+ int xx = 1;
+}
+
+int main() {
+ xx = 2;
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/friend1.C b/gcc/testsuite/g++.old-deja/g++.ns/friend1.C
new file mode 100755
index 0000000..859a84e
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/friend1.C
@@ -0,0 +1,8 @@
+// Build don't link:
+namespace A{
+ void f(int);
+}
+
+class X{
+ friend void A::f(int);
+};
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/invalid1.C b/gcc/testsuite/g++.old-deja/g++.ns/invalid1.C
new file mode 100755
index 0000000..76d3d70
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/invalid1.C
@@ -0,0 +1,12 @@
+//Build don't link:
+namespace x { };
+
+void f(int);
+
+int main()
+{
+ x(); // ERROR - calling a namespace
+ x=4; // ERROR - assigning to a namespace
+ f(x); // ERROR - passing a namespace as parameter
+}
+
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/koenig1.C b/gcc/testsuite/g++.old-deja/g++.ns/koenig1.C
new file mode 100755
index 0000000..bd721fe
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/koenig1.C
@@ -0,0 +1,18 @@
+// Build don't link:
+class ostream;
+extern ostream cout;
+namespace foo
+{
+ struct S
+ {
+ int i;
+ };
+
+ extern ostream &operator<<(ostream &, const S &);
+}
+
+
+void bar(foo::S s)
+{
+ cout << s ;
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/koenig2.C b/gcc/testsuite/g++.old-deja/g++.ns/koenig2.C
new file mode 100755
index 0000000..629cd38
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/koenig2.C
@@ -0,0 +1,10 @@
+// Build don't link:
+// Check association of {error} for Koenig lookup
+// Special g++ Options:
+
+struct QString { operator void * (); };
+int foo()
+{
+ QString bar;
+ return (bar == __null );
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/koenig3.C b/gcc/testsuite/g++.old-deja/g++.ns/koenig3.C
new file mode 100755
index 0000000..e039df6
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/koenig3.C
@@ -0,0 +1,21 @@
+//Check association of member pointer in overload resolution.
+struct A {
+ int m_val;
+ friend int operator ->* (A & other, int A::*pm)
+ { return 31; }
+};
+
+int A::*pi = & A::m_val;
+
+int
+main(void)
+{
+ A c;
+ c.m_val = 42;
+ int j = c ->* pi;
+
+ if (j == 31)
+ return 0;
+ else
+ return 1;
+}
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 100755
index 0000000..009327c
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/koenig4.C
@@ -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/koenig5.C b/gcc/testsuite/g++.old-deja/g++.ns/koenig5.C
new file mode 100755
index 0000000..e5500cb
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/koenig5.C
@@ -0,0 +1,15 @@
+// To find function pointers in Koenig lookup is ok as long as we only find one.
+namespace A{
+ void foo(); // ERROR -
+ struct X{};
+ void (*bar)(X*)=0;
+}
+using A::X;
+
+void (*foo)(X*)=0; // ERROR -
+
+void g()
+{
+ foo(new X); // ERROR - both objects and functions found
+ bar(new X); // ok
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/koenig6.C b/gcc/testsuite/g++.old-deja/g++.ns/koenig6.C
new file mode 100755
index 0000000..dc54903
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/koenig6.C
@@ -0,0 +1,12 @@
+namespace A{
+ struct X{};
+
+ X foo(X a){return a;}
+ void bar(X*){}
+}
+
+int main()
+{
+ A::X x;
+ bar(&foo(x)); // WARNING - address of temporary
+}
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 100755
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/lookup1.C b/gcc/testsuite/g++.old-deja/g++.ns/lookup1.C
new file mode 100755
index 0000000..6b6f0cc
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/lookup1.C
@@ -0,0 +1,3 @@
+// Build don't link:
+typedef int __quad_t;
+typedef __quad_t __qaddr_t;
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/lookup2.C b/gcc/testsuite/g++.old-deja/g++.ns/lookup2.C
new file mode 100755
index 0000000..0143290
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/lookup2.C
@@ -0,0 +1,9 @@
+// Build don't link:
+template <class charT>
+struct basic_string
+{
+ charT append (charT c)
+ { return c; }
+};
+typedef char c;
+template class basic_string <char>;
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 100755
index 0000000..3ace233
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/lookup3.C
@@ -0,0 +1,14 @@
+namespace A{
+ int i;
+ int f();
+}
+
+int A::f()
+{
+ return i;
+}
+
+int main()
+{
+ return A::f();
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/lookup4.C b/gcc/testsuite/g++.old-deja/g++.ns/lookup4.C
new file mode 100755
index 0000000..208a9d6
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/lookup4.C
@@ -0,0 +1,23 @@
+//Build don't link:
+namespace X{
+ typedef int foo;
+ const int bar=2;
+ namespace Y{
+ void f(foo);
+ extern int g;
+ extern int g1;
+ struct h{
+ void i(foo);
+ };
+ }
+}
+
+void X::Y::f(foo)
+{
+}
+
+int X::Y::g = bar;
+int X::Y::g1(bar);
+
+void X::Y::h::i(foo)
+{}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/lookup5.C b/gcc/testsuite/g++.old-deja/g++.ns/lookup5.C
new file mode 100755
index 0000000..c83b50a
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/lookup5.C
@@ -0,0 +1,23 @@
+// Build don't link:
+namespace A{
+ void f();
+}
+
+namespace B{
+ using namespace A;
+ void f(int); // ERROR - referenced below
+}
+
+using namespace B;
+
+void g()
+{
+ ::f(); // ERROR - A::f is not found
+}
+
+using namespace A;
+
+void g1()
+{
+ ::f(); // ok, it is found now
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/main1.C b/gcc/testsuite/g++.old-deja/g++.ns/main1.C
new file mode 100755
index 0000000..0e5a07f
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/main1.C
@@ -0,0 +1,15 @@
+// Build don't link:
+
+// main is only reserved in the global namespace [basic.start.main]/3
+
+// submitted by Gerald Gutierrez <gutier@intergate.bc.ca>
+
+namespace A { void main () { } }
+namespace B { void main () { } }
+namespace C {
+ void main () { }
+ namespace D {
+ void main () { }
+ }
+}
+
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/ns1.C b/gcc/testsuite/g++.old-deja/g++.ns/ns1.C
new file mode 100755
index 0000000..f835716
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/ns1.C
@@ -0,0 +1,16 @@
+namespace foo{
+ int eine_funktion(int)
+ {
+ return 0;
+ }
+
+ int eine_funktion(int,int)
+ {
+ return 1;
+ }
+}
+
+int main(int,char**)
+{
+ return foo::eine_funktion(1);
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/ns10.C b/gcc/testsuite/g++.old-deja/g++.ns/ns10.C
new file mode 100755
index 0000000..3eb70a8
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/ns10.C
@@ -0,0 +1,13 @@
+//Build don't link:
+namespace bb
+{
+ int f(int);
+
+ namespace k
+ {
+ void foo(int bar)
+ {
+ int i=bb:f(bar); // ERROR - namespace
+ }
+ }
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/ns11.C b/gcc/testsuite/g++.old-deja/g++.ns/ns11.C
new file mode 100755
index 0000000..ffc5acb
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/ns11.C
@@ -0,0 +1,19 @@
+// Build don't link
+// Check [namespace.memdef]/2
+
+namespace A{
+ void f(int);
+ void f(int,int);
+ int i; // ERROR - .*
+}
+
+void A::f(){} // ERROR - should have been declared before
+
+namespace B{
+ void A::f(int){} // ERROR - B does not surround A
+}
+
+int A::i; // ERROR - redefinition
+
+void A::f(int,int){} // ok
+
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/ns12.C b/gcc/testsuite/g++.old-deja/g++.ns/ns12.C
new file mode 100755
index 0000000..40f5b7c
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/ns12.C
@@ -0,0 +1,22 @@
+namespace fred
+{
+ int barney();
+ extern int wilma;
+}
+
+int fred::barney()
+{
+ return fred::wilma;
+}
+
+int fred::wilma;
+
+int barney()
+{
+ return 1;
+}
+
+int main()
+{
+ return fred::barney();
+}
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 100755
index 0000000..0b8c38a
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/ns13.C
@@ -0,0 +1,13 @@
+namespace std{
+ void f(){}
+ void g();
+ int i=5;
+}
+
+void std::g()
+{}
+
+int 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 100755
index 0000000..5a3cc70
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/ns14.C
@@ -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 100755
index 0000000..cbb6292
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/ns15.C
@@ -0,0 +1,2 @@
+//Build don't link:
+namespace std {}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/ns16.C b/gcc/testsuite/g++.old-deja/g++.ns/ns16.C
new file mode 100755
index 0000000..1f04ae8
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/ns16.C
@@ -0,0 +1,14 @@
+// Build don't link:
+
+class Y {
+public:
+ void operator +(int) const;
+};
+
+namespace X {
+ extern Y const& z;
+}
+
+void f(void) {
+ X::z + 1;
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/ns2.C b/gcc/testsuite/g++.old-deja/g++.ns/ns2.C
new file mode 100755
index 0000000..e0d1bda
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/ns2.C
@@ -0,0 +1,26 @@
+namespace foo{
+ struct X{
+ int i;
+ void f();
+ static int k1,k2;
+ };
+ void X::f(){}
+ int var;
+ int X::k1;
+}
+
+using namespace foo;
+X zzz;
+int X::k2;
+
+void andere_funktion()
+{
+ zzz.f();
+ var=4;
+}
+
+int main(int,char**)
+{
+ andere_funktion();
+ return 0;
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/ns3.C b/gcc/testsuite/g++.old-deja/g++.ns/ns3.C
new file mode 100755
index 0000000..a1c8f53
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/ns3.C
@@ -0,0 +1,17 @@
+// Build don't link:
+namespace foo{
+ void eine_funktion(int)
+ {}
+}
+
+using namespace foo;
+
+namespace foo{
+ void eine_funktion(int,int)
+ {}
+}
+
+void andere_funktion()
+{
+ eine_funktion(3,4);
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/ns4.C b/gcc/testsuite/g++.old-deja/g++.ns/ns4.C
new file mode 100755
index 0000000..f720da3
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/ns4.C
@@ -0,0 +1,11 @@
+// Build don't link:
+namespace A{
+ enum foo{a,b,c};
+}
+using A::foo;
+using A::b;
+void g()
+{
+ foo x;
+ x=b;
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/ns5.C b/gcc/testsuite/g++.old-deja/g++.ns/ns5.C
new file mode 100755
index 0000000..f35b247
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/ns5.C
@@ -0,0 +1,6 @@
+// Build don't link:
+namespace X{
+ class Y{};
+}
+
+X::Y z;
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/ns6.C b/gcc/testsuite/g++.old-deja/g++.ns/ns6.C
new file mode 100755
index 0000000..ba2508c
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/ns6.C
@@ -0,0 +1,13 @@
+namespace A{
+ int i;
+ namespace B{
+ void f(){i++;}
+ int i;
+ void g(){i++;}
+ }
+}
+
+int main()
+{
+ return A::i-A::B::i;
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/ns7.C b/gcc/testsuite/g++.old-deja/g++.ns/ns7.C
new file mode 100755
index 0000000..9afc97c
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/ns7.C
@@ -0,0 +1,26 @@
+// Build don't link:
+namespace A{
+ struct X{
+ int i;
+ X(){}
+ X(int j);
+ void operator=(const X&);
+ virtual ~X(){}
+ };
+ void X::operator=(const X&o)
+ {
+ i=o.i;
+ }
+}
+
+A::X::X(int j):i(j){}
+
+namespace A{
+ struct Y:public X{
+ int j;
+ Y(int,int);
+ };
+}
+
+A::Y::Y(int a,int b):X(a),j(b)
+{}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/ns8.C b/gcc/testsuite/g++.old-deja/g++.ns/ns8.C
new file mode 100755
index 0000000..4d1ab40
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/ns8.C
@@ -0,0 +1,11 @@
+// Build don't link:
+namespace B{
+ void f();
+}
+
+using namespace B;
+
+void g()
+{
+ ::f();
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/ns9.C b/gcc/testsuite/g++.old-deja/g++.ns/ns9.C
new file mode 100755
index 0000000..a8803b8
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/ns9.C
@@ -0,0 +1,13 @@
+// Build don't link:
+namespace bb
+{
+ int f(int);
+
+ namespace k
+ {
+ void foo(int bar)
+ {
+ return bb:f(bar); //ERROR - syntax error
+ }
+ }
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/overload1.C b/gcc/testsuite/g++.old-deja/g++.ns/overload1.C
new file mode 100755
index 0000000..55d66a1
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/overload1.C
@@ -0,0 +1,33 @@
+// Unqualified lookup should find all functions.
+// Duplicates are ignored as long as they lose during overload resolution.
+namespace A{
+ int f(){
+ return 1;
+ }
+ int f(double);
+}
+namespace B{
+ int f(int){
+ return 2;
+ }
+ int f(double);
+}
+
+int f(int,int)
+{
+ return 3;
+}
+
+using namespace A;
+using namespace B;
+
+int main()
+{
+ if(f() != 1)
+ return 1;
+ if(f(1) != 2)
+ return 1;
+ if(f(0,0) != 3)
+ return 1;
+ return 0;
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/overload2.C b/gcc/testsuite/g++.old-deja/g++.ns/overload2.C
new file mode 100755
index 0000000..500d780
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/overload2.C
@@ -0,0 +1,12 @@
+namespace A{
+ void f(); // ERROR - .*
+}
+
+using namespace A;
+
+void f(); // ERROR - .*
+
+void g()
+{
+ f(); // ERROR - ambiguous, ::f or A::f ?
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/overload3.C b/gcc/testsuite/g++.old-deja/g++.ns/overload3.C
new file mode 100755
index 0000000..945f948
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/overload3.C
@@ -0,0 +1,19 @@
+// Build don't link:
+// Declarations after the first one don't affect the set of used decls.
+
+namespace A{
+ void f(); // ERROR - .*
+}
+
+using A::f;
+
+namespace A{
+ void f(int);
+}
+
+using A::f;
+
+void g()
+{
+ f(4); // ERROR - too many arguments
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/overload4.C b/gcc/testsuite/g++.old-deja/g++.ns/overload4.C
new file mode 100755
index 0000000..ad96157
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/overload4.C
@@ -0,0 +1,8 @@
+// Build don't link:
+namespace A{
+ void f();
+}
+
+using A::f;
+void f(); // ERROR - duplicate declaration
+
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/overload5.C b/gcc/testsuite/g++.old-deja/g++.ns/overload5.C
new file mode 100755
index 0000000..24a0a6d
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/overload5.C
@@ -0,0 +1,14 @@
+// Build don't link:
+namespace A{
+ void f(){}
+}
+
+using A::f;
+
+void f(int);
+void f(){} // ERROR - conflict
+
+void g()
+{
+ f(4);
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/template1.C b/gcc/testsuite/g++.old-deja/g++.ns/template1.C
new file mode 100755
index 0000000..593df9e
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/template1.C
@@ -0,0 +1,9 @@
+// Build don't link:
+namespace foo {
+
+ template <class T>
+ class x {};
+
+}
+
+foo::x<int> y;
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/template2.C b/gcc/testsuite/g++.old-deja/g++.ns/template2.C
new file mode 100755
index 0000000..bb7c1dc
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/template2.C
@@ -0,0 +1,14 @@
+//Build don't link:
+//Inheritance from templates which are namespace members
+namespace foo {
+
+ template <class T>
+ struct x {
+ x(){}
+ };
+
+}
+
+class y : public foo::x<int> {};
+
+y r;
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 100755
index 0000000..761656f
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/template3.C
@@ -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/template4.C b/gcc/testsuite/g++.old-deja/g++.ns/template4.C
new file mode 100755
index 0000000..dd32444
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/template4.C
@@ -0,0 +1,17 @@
+namespace NS
+{
+template <typename T>
+void solver (){}
+
+}
+
+template<typename T>
+void solver(){}
+
+int main()
+{
+ solver<double>();
+ NS::solver<double>();
+}
+
+
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 100755
index 0000000..9dc7a39
--- /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++.ns/template6.C b/gcc/testsuite/g++.old-deja/g++.ns/template6.C
new file mode 100755
index 0000000..324b4d2
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/template6.C
@@ -0,0 +1,24 @@
+//Build don't link:
+//reported by Theodore Papadopoulo (Theodore.Papadopoulo@sophia.inria.fr)
+
+namespace A {
+
+ namespace B {
+
+ template <class T1,class T2>
+ struct B {
+ static const unsigned count = 0;
+ template <class ForwardIter>
+ void SetError(ForwardIter it,const T1& p1,const T2& p2) const { }
+ };
+
+ template <>
+ const unsigned B<int,int>::count = 2; // ERROR - duplicate init
+ }
+};
+
+int
+main()
+{
+ unsigned kk = A::B<int,int>::count; // ERROR - not a template: syntax error
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/template7.C b/gcc/testsuite/g++.old-deja/g++.ns/template7.C
new file mode 100755
index 0000000..3c85735
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/template7.C
@@ -0,0 +1,13 @@
+// Build don't link:
+
+// crash test - XFAIL *-*-*
+
+// Based on bug report by Eric NICOLAS <nicolas@bnp-eng.remcomp.com>
+
+namespace foo {
+ template<class F> struct bar {};
+}
+
+void baz() {
+ foo::bar(); // ERROR - template used as expression
+}
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 100755
index 0000000..d13b8e7
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/undef1.C
@@ -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/using1.C b/gcc/testsuite/g++.old-deja/g++.ns/using1.C
new file mode 100755
index 0000000..489faac
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/using1.C
@@ -0,0 +1,3 @@
+// Build don't link:
+using namespace bb; // ERROR - .*
+
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/using10.C b/gcc/testsuite/g++.old-deja/g++.ns/using10.C
new file mode 100755
index 0000000..cd5cd47
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/using10.C
@@ -0,0 +1,9 @@
+//Build don't link:
+//Based on a report by Helmut Jarausch <jarausch@IGPM.Rwth-Aachen.DE>
+template<class>
+class foo{};
+
+namespace ABC
+{
+ using ::foo;
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/using11.C b/gcc/testsuite/g++.old-deja/g++.ns/using11.C
new file mode 100755
index 0000000..23943f2
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/using11.C
@@ -0,0 +1,9 @@
+// Build don't link:
+
+class joey {
+public:
+ typedef int SVec;
+};
+
+using joey::SVec; // ERROR - joey is not a namespace
+
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/using12.C b/gcc/testsuite/g++.old-deja/g++.ns/using12.C
new file mode 100755
index 0000000..edc863b
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/using12.C
@@ -0,0 +1,19 @@
+// Build don't link:
+// Origin: Brendan Kehoe <brendan@cygnus.com>
+
+namespace foo
+{
+ void x (bool); // ERROR - candidates
+ void x (char); // ERROR - candidates
+ void x (int); // ERROR - candidates
+ void x (double); // ERROR - candidates
+}
+
+namespace baz { void x (int); } // ERROR - candidates
+
+void fn (int i)
+{
+ using foo::x;
+ using baz::x;
+ x(i); // ERROR - ambiguous
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/using2.C b/gcc/testsuite/g++.old-deja/g++.ns/using2.C
new file mode 100755
index 0000000..879e0c5
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/using2.C
@@ -0,0 +1,5 @@
+// Build don't link:
+void f();
+namespace A{
+ using ::f;
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/using3.C b/gcc/testsuite/g++.old-deja/g++.ns/using3.C
new file mode 100755
index 0000000..a8c1761
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/using3.C
@@ -0,0 +1,16 @@
+// Build don't link:
+
+typedef unsigned int atypedef;
+struct astruct{};
+void afunction();
+void aovlfunction();
+void aovlfunction(int);
+int avariable;
+
+namespace foo {
+ using ::atypedef;
+ using ::astruct;
+ using ::afunction;
+ using ::aovlfunction;
+ using ::avariable;
+}
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 100755
index 0000000..f3197be
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/using4.C
@@ -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 100755
index 0000000..37fc6a8
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/using5.C
@@ -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 100755
index 0000000..b770950
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/using6.C
@@ -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 100755
index 0000000..a449284
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/using7.C
@@ -0,0 +1,11 @@
+namespace X{
+ void f(int){}
+}
+
+void f();
+
+int main()
+{
+ using X::f;
+ f(3);
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/using8.C b/gcc/testsuite/g++.old-deja/g++.ns/using8.C
new file mode 100755
index 0000000..2234f58
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/using8.C
@@ -0,0 +1,20 @@
+// Build don't link:
+namespace M {
+ int i;
+}
+namespace N {
+ using namespace M;
+}
+
+using namespace N;
+int j = i;
+
+namespace O{
+ int k;
+}
+
+namespace N {
+ using namespace O;
+}
+
+int l = k;
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/using9.C b/gcc/testsuite/g++.old-deja/g++.ns/using9.C
new file mode 100755
index 0000000..547ae31
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.ns/using9.C
@@ -0,0 +1,24 @@
+// Test for proper merging of functions from multiple using directives.
+
+// Build don't link:
+
+namespace standard
+{ void print(int) {};
+ void dump(int) {};
+}
+namespace A { using standard::print; }
+namespace B { using namespace standard; }
+namespace User
+{ using namespace standard;
+ using namespace A;
+ void test()
+ { print(1); }
+ // egcs-1.1: call of overloaded `print (int)' is ambiguous
+}
+namespace User2
+{ using namespace standard;
+ using namespace B;
+ void test()
+ { print(1); } // egcs has no problems here
+}
+