diff options
author | YamaArashi <shadow962@live.com> | 2016-01-06 01:47:28 -0800 |
---|---|---|
committer | YamaArashi <shadow962@live.com> | 2016-01-06 01:47:28 -0800 |
commit | be8b04496302184c6e8f04d6179f9c3afc50aeb6 (patch) | |
tree | 726e2468c0c07add773c0dbd86ab6386844259ae /gcc/testsuite/g++.old-deja/g++.ns |
initial commit
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.ns')
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 +} + |