URL
https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk
Subversion Repositories openrisc_me
Compare Revisions
- This comparison shows the changes necessary to convert path
/openrisc/trunk/gnu-src/gcc-4.2.2/gcc/testsuite/g++.old-deja/g++.ns
- from Rev 149 to Rev 154
- ↔ Reverse comparison
Rev 149 → Rev 154
/lookup5.C
0,0 → 1,23
// { dg-do assemble } |
namespace A{ |
void f(); |
} |
|
namespace B{ |
using namespace A; |
void f(int); // { dg-error "" } referenced below |
} |
|
using namespace B; |
|
void g() |
{ |
::f(); // { dg-error "" } A::f is not found |
} |
|
using namespace A; |
|
void g1() |
{ |
::f(); // ok, it is found now |
} |
lookup5.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: scoped1.C
===================================================================
--- scoped1.C (nonexistent)
+++ scoped1.C (revision 154)
@@ -0,0 +1,26 @@
+// { dg-do assemble }
+//
+// Copyright (C) 2000 Free Software Foundation, Inc.
+// Contributed by Nathan Sidwell 10 Aug 2000
+
+// Bug 354. We ICE'd before saying a namespace isn't an aggregate type.
+
+namespace mlp
+{
+ struct base
+ {
+ void reset ();
+ };
+}
+
+struct eo : mlp:: base
+{
+};
+
+void foo (eo &ref)
+{
+ ref.mlp::base::reset ();
+ ref.base::reset ();
+ ref.reset ();
+ ref.mlp::reset (); // { dg-error "" } not an aggregate type
+}
scoped1.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: alias2.C
===================================================================
--- alias2.C (nonexistent)
+++ alias2.C (revision 154)
@@ -0,0 +1,8 @@
+// { dg-do assemble }
+namespace NS1
+{
+ int a;
+}
+
+namespace NS2 = NonExistant; //{ dg-error "" }
+
alias2.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: anon1.C
===================================================================
--- anon1.C (nonexistent)
+++ anon1.C (revision 154)
@@ -0,0 +1,13 @@
+// { dg-do run }
+namespace{
+ void f();
+}
+
+int main()
+{
+ f();
+}
+
+namespace{
+ void f(){}
+}
anon1.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: alias4.C
===================================================================
--- alias4.C (nonexistent)
+++ alias4.C (revision 154)
@@ -0,0 +1,14 @@
+// { dg-do assemble }
+namespace A = B; // { dg-error "" } unknown namespace
+
+namespace C{}
+namespace D = C;
+namespace D { // { dg-error "" } reopening namespace with alias
+ void f();
+}
+
+void C::f(){} // { dg-error "" } previous definition
+
+void D::f(){} // { dg-error "" } redefinition
+
+namespace E = C::F; // { dg-error "" } unknown namespace
alias4.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: alias6.C
===================================================================
--- alias6.C (nonexistent)
+++ alias6.C (revision 154)
@@ -0,0 +1,36 @@
+// { dg-do run }
+// 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;
+}
alias6.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: ns10.C
===================================================================
--- ns10.C (nonexistent)
+++ ns10.C (revision 154)
@@ -0,0 +1,13 @@
+// { dg-do assemble }
+namespace bb
+{
+ int f(int);
+
+ namespace k
+ {
+ void foo(int bar)
+ {
+ int i=bb:f(bar); // { dg-error "" } namespace
+ }
+ }
+}
ns10.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: ns12.C
===================================================================
--- ns12.C (nonexistent)
+++ ns12.C (revision 154)
@@ -0,0 +1,23 @@
+// { dg-do run }
+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();
+}
ns12.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: ns14.C
===================================================================
--- ns14.C (nonexistent)
+++ ns14.C (revision 154)
@@ -0,0 +1,17 @@
+// { dg-do run }
+
+namespace std{
+ int f(){
+ return 0;
+ }
+}
+
+int f()
+{
+ return 1;
+}
+
+int main()
+{
+ return std::f();
+}
ns14.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: extern1.C
===================================================================
--- extern1.C (nonexistent)
+++ extern1.C (revision 154)
@@ -0,0 +1,18 @@
+// { dg-do link }
+
+// 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;
+}
extern1.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: ns16.C
===================================================================
--- ns16.C (nonexistent)
+++ ns16.C (revision 154)
@@ -0,0 +1,14 @@
+// { dg-do assemble }
+
+class Y {
+public:
+ void operator +(int) const;
+};
+
+namespace X {
+ extern Y const& z;
+}
+
+void f(void) {
+ X::z + 1;
+}
ns16.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: ns18.C
===================================================================
--- ns18.C (nonexistent)
+++ ns18.C (revision 154)
@@ -0,0 +1,30 @@
+// { dg-do assemble }
+// Origin: Theo Papadopoulo
+
+namespace Bname {
+ class B;
+}
+
+template
+class A {
+ friend class Bname::B;
+ static const int a = 1;
+public:
+ A() { }
+};
+
+namespace Bname {
+ class B {
+ int a;
+ public:
+ template
+ B(const T&):a(T::a) { }
+ };
+}
+
+int
+main()
+{
+ A a;
+ Bname::B b(a);
+}
ns18.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: template1.C
===================================================================
--- template1.C (nonexistent)
+++ template1.C (revision 154)
@@ -0,0 +1,9 @@
+// { dg-do assemble }
+namespace foo {
+
+ template
+ class x {};
+
+}
+
+foo::x y;
template1.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: overload1.C
===================================================================
--- overload1.C (nonexistent)
+++ overload1.C (revision 154)
@@ -0,0 +1,34 @@
+// { dg-do run }
+// 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;
+}
overload1.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: template3.C
===================================================================
--- template3.C (nonexistent)
+++ template3.C (revision 154)
@@ -0,0 +1,22 @@
+// { dg-do run }
+//Check instantiation of templates outside their namespace
+namespace A{
+template void g(){}
+template struct B {
+ B(){
+ f();
+ }
+ void f()
+ {
+ g();
+ }
+};
+}
+
+template class A::B;
+A::B s;
+
+int main()
+{
+ return 0;
+}
template3.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: overload3.C
===================================================================
--- overload3.C (nonexistent)
+++ overload3.C (revision 154)
@@ -0,0 +1,18 @@
+// { dg-do assemble }
+
+namespace A{
+ void f();
+}
+
+using A::f;
+
+namespace A{
+ void f(int);
+}
+
+using A::f;
+
+void g()
+{
+ f(4);
+}
overload3.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: koenig2.C
===================================================================
--- koenig2.C (nonexistent)
+++ koenig2.C (revision 154)
@@ -0,0 +1,10 @@
+// { dg-do assemble }
+// { dg-options "" }
+// Check association of {error} for Koenig lookup
+
+struct QString { operator void * (); };
+int foo()
+{
+ QString bar;
+ return (bar == __null );
+}
koenig2.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: overload5.C
===================================================================
--- overload5.C (nonexistent)
+++ overload5.C (revision 154)
@@ -0,0 +1,14 @@
+// { dg-do assemble }
+namespace A{
+ void f(){}
+}
+
+using A::f;
+
+void f(int);
+void f(){} // { dg-error "" } conflict
+
+void g()
+{
+ f(4);
+}
overload5.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: template5.C
===================================================================
--- template5.C (nonexistent)
+++ template5.C (revision 154)
@@ -0,0 +1,34 @@
+// { dg-do run }
+//Check whether namespace-scoped template instantiations
+//are mangled differently.
+
+namespace X{
+ template
+ struct Y{
+ int f(T){
+ return 1;
+ }
+ templatevoid g(){}
+ };
+}
+
+template
+struct Y{
+ int f(T){
+ return 2;
+ }
+};
+
+int main()
+{
+ X::Y z;
+ if (z.f(4) != 1)
+ return 1;
+ z.g();
+
+ Y z1;
+ if (z1.f(5) != 2)
+ return 1;
+ return 0;
+}
+
template5.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: koenig4.C
===================================================================
--- koenig4.C (nonexistent)
+++ koenig4.C (revision 154)
@@ -0,0 +1,25 @@
+// { dg-do run }
+void f();
+void f(int);
+
+namespace A{
+ struct S{
+ void f();
+ void f(S);
+ };
+ void f(S&){}
+ void h(S&){}
+}
+
+template
+void g(T t){
+ f(t);
+}
+
+int main()
+{
+ A::S s;
+ f(s);
+ g(s);
+ h(s);
+}
koenig4.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: ns1.C
===================================================================
--- ns1.C (nonexistent)
+++ ns1.C (revision 154)
@@ -0,0 +1,17 @@
+// { dg-do run }
+namespace foo{
+ int eine_funktion(int)
+ {
+ return 0;
+ }
+
+ int eine_funktion(int,int)
+ {
+ return 1;
+ }
+}
+
+int main(int,char**)
+{
+ return foo::eine_funktion(1);
+}
ns1.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: template7.C
===================================================================
--- template7.C (nonexistent)
+++ template7.C (revision 154)
@@ -0,0 +1,12 @@
+// { dg-do assemble }
+
+
+// Based on bug report by Eric NICOLAS
+
+namespace foo {
+ template struct bar {};
+}
+
+void baz() {
+ foo::bar(); // { dg-error "" } template used as expression
+}
template7.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: koenig6.C
===================================================================
--- koenig6.C (nonexistent)
+++ koenig6.C (revision 154)
@@ -0,0 +1,13 @@
+// { dg-do assemble }
+namespace A{
+ struct X{};
+
+ X foo(X a){return a;}
+ void bar(X*){}
+}
+
+int main()
+{
+ A::X x;
+ bar(&foo(x)); // { dg-warning "" } address of temporary
+}
koenig6.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: ns3.C
===================================================================
--- ns3.C (nonexistent)
+++ ns3.C (revision 154)
@@ -0,0 +1,17 @@
+// { dg-do assemble }
+namespace foo{
+ void eine_funktion(int)
+ {}
+}
+
+using namespace foo;
+
+namespace foo{
+ void eine_funktion(int,int)
+ {}
+}
+
+void andere_funktion()
+{
+ eine_funktion(3,4);
+}
ns3.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: type2.C
===================================================================
--- type2.C (nonexistent)
+++ type2.C (revision 154)
@@ -0,0 +1,19 @@
+// { dg-do assemble }
+//
+// Copyright (C) 2001 Free Software Foundation, Inc.
+// Contributed by Nathan Sidwell 11 April 2001
+// Origin:stephen.webb@cybersafe.com
+
+// Bug 2125. TYPE_DECLS never had their DECL_CONTEXT set, which
+// confused forward references to classes.
+
+typedef void T;
+namespace A {
+ class C;
+ typedef class C C;
+ typedef int T;
+ class C
+ {
+ T i; // got bogus error, found wrong T
+ };
+}
type2.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: template9.C
===================================================================
--- template9.C (nonexistent)
+++ template9.C (revision 154)
@@ -0,0 +1,41 @@
+// { dg-do run }
+// Produces ICE 980519.
+// Test case from Dirk Engelmann
+
+namespace vector {
+
+ // allocate memory for vector
+
+ template
+ inline T* alloc(const int aWidth)
+ {
+ // allocate memory
+ return new T[aWidth];
+ }
+
+}
+
+namespace matrix {
+
+ // allocate memory for matrix
+ template
+ T** alloc(const int aWidth,const int aHeight)
+ {
+ // allocate memory
+ T **mat = vector::alloc(aHeight);
+ T *data = vector::alloc (aWidth*aHeight);
+ // set pointer
+ for (int i=0; i(10,20);
+
+}
template9.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: koenig8.C
===================================================================
--- koenig8.C (nonexistent)
+++ koenig8.C (revision 154)
@@ -0,0 +1,14 @@
+// { dg-do assemble }
+// Copyright (C) 1999 Free Software Foundation, Inc.
+// Contributed by Nathan Sidwell 15 Dec 1999
+
+// caused an ICE determining whether to perform Koenig lookup
+// when checking is enabled
+
+template void Zap (T);
+
+void V3 ()
+{
+ Zap (1);
+}
+
koenig8.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: ns5.C
===================================================================
--- ns5.C (nonexistent)
+++ ns5.C (revision 154)
@@ -0,0 +1,6 @@
+// { dg-do assemble }
+namespace X{
+ class Y{};
+}
+
+X::Y z;
ns5.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: using1.C
===================================================================
--- using1.C (nonexistent)
+++ using1.C (revision 154)
@@ -0,0 +1,3 @@
+// { dg-do assemble }
+using namespace bb; // { dg-error "" } .*
+
using1.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: ns7.C
===================================================================
--- ns7.C (nonexistent)
+++ ns7.C (revision 154)
@@ -0,0 +1,26 @@
+// { dg-do assemble }
+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)
+{}
ns7.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: invalid1.C
===================================================================
--- invalid1.C (nonexistent)
+++ invalid1.C (revision 154)
@@ -0,0 +1,12 @@
+// { dg-do assemble }
+namespace x { }
+
+void f(int);
+
+int main()
+{
+ x(); // { dg-error "" } calling a namespace
+ x=4; // { dg-error "" } assigning to a namespace
+ f(x); // { dg-error "" } passing a namespace as parameter
+}
+
invalid1.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: using3.C
===================================================================
--- using3.C (nonexistent)
+++ using3.C (revision 154)
@@ -0,0 +1,16 @@
+// { dg-do assemble }
+
+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;
+}
using3.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: ns9.C
===================================================================
--- ns9.C (nonexistent)
+++ ns9.C (revision 154)
@@ -0,0 +1,13 @@
+// { dg-do assemble }
+namespace bb
+{
+ int f(int);
+
+ namespace k
+ {
+ void foo(int bar)
+ {
+ return bb:f(bar); //{ dg-error "" } syntax error
+ }
+ }
+}
ns9.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: using5.C
===================================================================
--- using5.C (nonexistent)
+++ using5.C (revision 154)
@@ -0,0 +1,6 @@
+// { dg-do assemble }
+namespace a {
+ class b {
+ using std::c; //{ dg-error "" } namespace using on class level
+ };
+}
using5.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: using7.C
===================================================================
--- using7.C (nonexistent)
+++ using7.C (revision 154)
@@ -0,0 +1,12 @@
+// { dg-do run }
+namespace X{
+ void f(int){}
+}
+
+void f();
+
+int main()
+{
+ using X::f;
+ f(3);
+}
using7.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: template11.C
===================================================================
--- template11.C (nonexistent)
+++ template11.C (revision 154)
@@ -0,0 +1,16 @@
+// { dg-do run }
+void foo(){}
+
+namespace Bar{
+ template
+ class Y{
+ friend void foo(Y){}
+ };
+}
+
+int main()
+{
+ Bar::Y y;
+ foo(y);
+ foo();
+}
template11.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: using9.C
===================================================================
--- using9.C (nonexistent)
+++ using9.C (revision 154)
@@ -0,0 +1,24 @@
+// { dg-do assemble }
+// Test for proper merging of functions from multiple using directives.
+
+
+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
+}
+
using9.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: template13.C
===================================================================
--- template13.C (nonexistent)
+++ template13.C (revision 154)
@@ -0,0 +1,23 @@
+// { dg-do compile }
+// Templates defined outside must be declared inside
+namespace bar
+{
+ // trick it to provide some prior declaration
+ template
+ void foo(); // { dg-error "definition" }
+ templateclass X; // { dg-error "previous declaration" }
+}
+
+template
+T const
+bar::foo(T const &a) // { dg-error "" "" { xfail *-*-* } } not declared in bar -
+{
+ return a;
+}
+
+template<> void bar::foo() // { dg-error "different namespace" }
+{
+}
+
+template
+class bar::X{}; // { dg-error "1 template parameter" }
template13.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: template15.C
===================================================================
--- template15.C (nonexistent)
+++ template15.C (revision 154)
@@ -0,0 +1,5 @@
+// { dg-do assemble }
+// Origin: Mark Mitchell
+
+namespace X { template void f () {} }
+template void X::f ();
template15.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: crash2.C
===================================================================
--- crash2.C (nonexistent)
+++ crash2.C (revision 154)
@@ -0,0 +1,11 @@
+// { dg-do assemble }
+
+// Submitted by bjornw@fairplay.no
+
+
+namespace hei {
+ class CSomeClass {};
+ extern CSomeClass SomeClass;
+}
+
+hei::CSomeClass hei::CSomeClass; // { dg-error "" "" { xfail *-*-* } } should be hei::SomeClass -
crash2.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: template17.C
===================================================================
--- template17.C (nonexistent)
+++ template17.C (revision 154)
@@ -0,0 +1,37 @@
+// { dg-do assemble }
+//
+// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+// Contributed by Nathan Sidwell 29 Apr 2001
+
+// Bug 2258. We failed to implement using directives inside template
+// functions. This makes us regress now that ::std is real.
+
+namespace thing
+{
+ template T end2 (T);
+}
+namespace whatever
+{
+}
+
+template void fn (T, T (*)(T));
+
+namespace whatever
+{
+ template T end3 (T);
+}
+
+template void mycout(const T& data)
+{
+ using namespace thing;
+ using namespace whatever;
+
+ fn (data, end2);
+ fn (data, end3);
+}
+
+int main()
+{
+ double data = 5.0;
+ mycout(data);
+}
template17.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: crash4.C
===================================================================
--- crash4.C (nonexistent)
+++ crash4.C (revision 154)
@@ -0,0 +1,11 @@
+// { dg-do assemble }
+// Origin: Geoffrey Furnish
+
+namespace N {
+
+ template class C
+ {
+ template friend class C;
+ };
+
+}
crash4.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: using10.C
===================================================================
--- using10.C (nonexistent)
+++ using10.C (revision 154)
@@ -0,0 +1,9 @@
+// { dg-do assemble }
+//Based on a report by Helmut Jarausch
+template
+class foo{};
+
+namespace ABC
+{
+ using ::foo;
+}
using10.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: using12.C
===================================================================
--- using12.C (nonexistent)
+++ using12.C (revision 154)
@@ -0,0 +1,19 @@
+// { dg-do assemble }
+// Origin: Brendan Kehoe
+
+namespace foo
+{
+ void x (bool); // { dg-error "" } candidates
+ void x (char); // { dg-error "" } candidates
+ void x (int); // { dg-error "" } candidates
+ void x (double); // { dg-error "" } candidates
+}
+
+namespace baz { void x (int); } // { dg-error "" } candidates
+
+void fn (int i)
+{
+ using foo::x;
+ using baz::x;
+ x(i); // { dg-error "" } ambiguous
+}
using12.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: friend1.C
===================================================================
--- friend1.C (nonexistent)
+++ friend1.C (revision 154)
@@ -0,0 +1,8 @@
+// { dg-do assemble }
+namespace A{
+ void f(int);
+}
+
+class X{
+ friend void A::f(int);
+};
friend1.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: using14.C
===================================================================
--- using14.C (nonexistent)
+++ using14.C (revision 154)
@@ -0,0 +1,15 @@
+// { dg-do assemble }
+// Origin: Mark Mitchell
+
+extern "C" void f ();
+
+namespace N {
+extern "C" void f ();
+}
+
+using N::f;
+
+void g ()
+{
+ f ();
+}
using14.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: lookup2.C
===================================================================
--- lookup2.C (nonexistent)
+++ lookup2.C (revision 154)
@@ -0,0 +1,9 @@
+// { dg-do assemble }
+template
+struct basic_string
+{
+ charT append (charT c)
+ { return c; }
+};
+typedef char c;
+template class basic_string ;
lookup2.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: lookup4.C
===================================================================
--- lookup4.C (nonexistent)
+++ lookup4.C (revision 154)
@@ -0,0 +1,23 @@
+// { dg-do assemble }
+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)
+{}
lookup4.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: bogus1.C
===================================================================
--- bogus1.C (nonexistent)
+++ bogus1.C (revision 154)
@@ -0,0 +1,10 @@
+// { dg-do assemble }
+
+namespace N {}
+
+void f(int N::k); // { dg-error "" }
+
+class Foo
+{
+ int N::j; // { dg-error "" } invalid use of `::'
+};
bogus1.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: alias1.C
===================================================================
--- alias1.C (nonexistent)
+++ alias1.C (revision 154)
@@ -0,0 +1,19 @@
+// { dg-do run }
+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);
+}
alias1.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: alias3.C
===================================================================
--- alias3.C (nonexistent)
+++ alias3.C (revision 154)
@@ -0,0 +1,31 @@
+// { dg-do run }
+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);
+}
alias3.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: alias7.C
===================================================================
--- alias7.C (nonexistent)
+++ alias7.C (revision 154)
@@ -0,0 +1,11 @@
+// { dg-do assemble }
+namespace A{
+ namespace B{int i;}
+ using namespace B;
+}
+
+namespace C=A;
+
+void f(){
+ C::i = 1;
+}
alias7.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: ns11.C
===================================================================
--- ns11.C (nonexistent)
+++ ns11.C (revision 154)
@@ -0,0 +1,20 @@
+// { dg-do assemble }
+// Build don't link
+// Check [namespace.memdef]/2
+
+namespace A{
+ void f(int);
+ void f(int,int);
+ int i; // { dg-error "" } .*
+}
+
+void A::f(){} // { dg-error "" } should have been declared before
+
+namespace B{
+ void A::f(int){} // { dg-error "" } B does not surround A
+}
+
+int A::i; // { dg-error "" } redefinition
+
+void A::f(int,int){} // ok
+
ns11.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: undef1.C
===================================================================
--- undef1.C (nonexistent)
+++ undef1.C (revision 154)
@@ -0,0 +1,5 @@
+// { dg-do assemble }
+namespace A{
+}
+
+struct Y: A::S{}; //{ dg-error "" } no such type
undef1.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: ns13.C
===================================================================
--- ns13.C (nonexistent)
+++ ns13.C (revision 154)
@@ -0,0 +1,14 @@
+// { dg-do run }
+namespace std{
+ void f(){}
+ void g();
+ int i=5;
+}
+
+void std::g()
+{}
+
+int main()
+{
+ return std::i-5;
+}
ns13.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: ns15.C
===================================================================
--- ns15.C (nonexistent)
+++ ns15.C (revision 154)
@@ -0,0 +1,2 @@
+// { dg-do assemble }
+namespace std {}
ns15.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: ns17.C
===================================================================
--- ns17.C (nonexistent)
+++ ns17.C (revision 154)
@@ -0,0 +1,13 @@
+// { dg-do assemble }
+namespace foo
+{
+ class c
+ {
+ };
+}
+
+int
+foo::c:fn () // { dg-error "" } syntax error
+{
+}
+
ns17.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: ns19.C
===================================================================
--- ns19.C (nonexistent)
+++ ns19.C (revision 154)
@@ -0,0 +1,7 @@
+// { dg-do assemble }
+// Origin: Chip Salzenberg
+
+namespace N {
+enum { E = 0 };
+static int f() { return E; }
+}
ns19.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: template2.C
===================================================================
--- template2.C (nonexistent)
+++ template2.C (revision 154)
@@ -0,0 +1,14 @@
+// { dg-do assemble }
+//Inheritance from templates which are namespace members
+namespace foo {
+
+ template
+ struct x {
+ x(){}
+ };
+
+}
+
+class y : public foo::x {};
+
+y r;
template2.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: koenig1.C
===================================================================
--- koenig1.C (nonexistent)
+++ koenig1.C (revision 154)
@@ -0,0 +1,18 @@
+// { dg-do assemble }
+class ostream;
+extern ostream cout;
+namespace foo
+{
+ struct S
+ {
+ int i;
+ };
+
+ extern ostream &operator<<(ostream &, const S &);
+}
+
+
+void bar(foo::S s)
+{
+ cout << s ;
+}
koenig1.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: overload2.C
===================================================================
--- overload2.C (nonexistent)
+++ overload2.C (revision 154)
@@ -0,0 +1,13 @@
+// { dg-do assemble }
+namespace A{
+ void f(); // { dg-error "" } .*
+}
+
+using namespace A;
+
+void f(); // { dg-error "" } .*
+
+void g()
+{
+ f(); // { dg-error "" } ambiguous, ::f or A::f ?
+}
overload2.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: koenig3.C
===================================================================
--- koenig3.C (nonexistent)
+++ koenig3.C (revision 154)
@@ -0,0 +1,22 @@
+// { dg-do run }
+//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;
+}
koenig3.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: template4.C
===================================================================
--- template4.C (nonexistent)
+++ template4.C (revision 154)
@@ -0,0 +1,18 @@
+// { dg-do run }
+namespace NS
+{
+template
+void solver (){}
+
+}
+
+template
+void solver(){}
+
+int main()
+{
+ solver();
+ NS::solver();
+}
+
+
template4.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: overload4.C
===================================================================
--- overload4.C (nonexistent)
+++ overload4.C (revision 154)
@@ -0,0 +1,8 @@
+// { dg-do assemble }
+namespace A{
+ void f();
+}
+
+using A::f;
+void f(); // { dg-error "" } duplicate declaration
+
overload4.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: template6.C
===================================================================
--- template6.C (nonexistent)
+++ template6.C (revision 154)
@@ -0,0 +1,24 @@
+// { dg-do assemble }
+//reported by Theodore Papadopoulo (Theodore.Papadopoulo@sophia.inria.fr)
+
+namespace A {
+
+ namespace B {
+
+ template
+ struct B {
+ static const unsigned count = 0;
+ template
+ void SetError(ForwardIter it,const T1& p1,const T2& p2) const { }
+ };
+
+ template <>
+ const unsigned B::count = 2; // { dg-error "" } duplicate init
+ }
+}
+
+int
+main()
+{
+ unsigned kk = A::B::count; // { dg-error "" } not a template: syntax error
+}
template6.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: koenig5.C
===================================================================
--- koenig5.C (nonexistent)
+++ koenig5.C (revision 154)
@@ -0,0 +1,18 @@
+// { dg-do assemble }
+// To find function pointers in Koenig lookup is ok as long as we only find one.
+namespace A{
+ void foo();
+ struct X{};
+ void (*bar)(X*)=0;
+}
+using A::X;
+
+void (*foo)(X*)=0;
+
+void g()
+{
+ foo(new X); // ok -- DR 218 says that we find the global
+ // foo variable first, and therefore do not
+ // perform argument-dependent lookup.
+ bar(new X); // ok
+}
koenig5.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: type1.C
===================================================================
--- type1.C (nonexistent)
+++ type1.C (revision 154)
@@ -0,0 +1,18 @@
+// { dg-do assemble }
+// Test that using an elaborated-type-specifier in a namespace to refer
+// to a class outside the namespace does not cause its name to be considered
+// declared in the namespace.
+
+// Contributed by Jason Merrill
+
+struct A { };
+
+int A;
+
+namespace N {
+ struct A *f ();
+}
+
+using namespace N;
+
+struct A *a;
type1.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: ns2.C
===================================================================
--- ns2.C (nonexistent)
+++ ns2.C (revision 154)
@@ -0,0 +1,27 @@
+// { dg-do run }
+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;
+}
ns2.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: template8.C
===================================================================
--- template8.C (nonexistent)
+++ template8.C (revision 154)
@@ -0,0 +1,9 @@
+// { dg-do assemble }
+namespace X {
+ template class foo;
+}
+
+template
+class X::foo {
+ T worthless;
+};
template8.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: koenig7.C
===================================================================
--- koenig7.C (nonexistent)
+++ koenig7.C (revision 154)
@@ -0,0 +1,23 @@
+// { dg-do run }
+// 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
+void f2(N1::A, T) {}
+
+void g(void (*)(int)) {}
+
+int main() {
+ g(&f1); // Works?
+ g(f2); // Works?
+}
koenig7.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: ns4.C
===================================================================
--- ns4.C (nonexistent)
+++ ns4.C (revision 154)
@@ -0,0 +1,11 @@
+// { dg-do assemble }
+namespace A{
+ enum foo{a,b,c};
+}
+using A::foo;
+using A::b;
+void g()
+{
+ foo x;
+ x=b;
+}
ns4.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: koenig9.C
===================================================================
--- koenig9.C (nonexistent)
+++ koenig9.C (revision 154)
@@ -0,0 +1,13 @@
+// { dg-do assemble }
+
+// Copyright (C) 2000 Free Software Foundation, Inc.
+// Contributed by Theodore.Papadopoulo 23 Jun 2000
+
+#include
+
+void foo(const char*,...);
+
+inline void
+bar() {
+ foo("",count); // { dg-error "" } multiple overloaded count functions
+}
koenig9.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: main1.C
===================================================================
--- main1.C (nonexistent)
+++ main1.C (revision 154)
@@ -0,0 +1,15 @@
+// { dg-do assemble }
+
+// main is only reserved in the global namespace [basic.start.main]/3
+
+// submitted by Gerald Gutierrez
+
+namespace A { void main () { } }
+namespace B { void main () { } }
+namespace C {
+ void main () { }
+ namespace D {
+ void main () { }
+ }
+}
+
main1.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: ns6.C
===================================================================
--- ns6.C (nonexistent)
+++ ns6.C (revision 154)
@@ -0,0 +1,14 @@
+// { dg-do run }
+namespace A{
+ int i;
+ namespace B{
+ void f(){i++;}
+ int i;
+ void g(){i++;}
+ }
+}
+
+int main()
+{
+ return A::i-A::B::i;
+}
ns6.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: using2.C
===================================================================
--- using2.C (nonexistent)
+++ using2.C (revision 154)
@@ -0,0 +1,5 @@
+// { dg-do assemble }
+void f();
+namespace A{
+ using ::f;
+}
using2.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: ns8.C
===================================================================
--- ns8.C (nonexistent)
+++ ns8.C (revision 154)
@@ -0,0 +1,11 @@
+// { dg-do assemble }
+namespace B{
+ void f();
+}
+
+using namespace B;
+
+void g()
+{
+ ::f();
+}
ns8.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: using4.C
===================================================================
--- using4.C (nonexistent)
+++ using4.C (revision 154)
@@ -0,0 +1,6 @@
+// { dg-do assemble }
+//Build don't link
+#include
+namespace csp {
+using namespace std::vector; // { dg-error "" } vector is not a namespace
+}
using4.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: using6.C
===================================================================
--- using6.C (nonexistent)
+++ using6.C (revision 154)
@@ -0,0 +1,9 @@
+// { dg-do assemble }
+#include
+
+namespace csp {
+ using namespace std;
+ struct X {
+ vector v;
+ };
+}
using6.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: template10.C
===================================================================
--- template10.C (nonexistent)
+++ template10.C (revision 154)
@@ -0,0 +1,7 @@
+// { dg-do assemble }
+// Origin: Manuel Menezes de Sequeira
+
+namespace N {
+ template void g() {}
+}
+void (*pf)() = N::g;
template10.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: using8.C
===================================================================
--- using8.C (nonexistent)
+++ using8.C (revision 154)
@@ -0,0 +1,20 @@
+// { dg-do assemble }
+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;
using8.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: template12.C
===================================================================
--- template12.C (nonexistent)
+++ template12.C (revision 154)
@@ -0,0 +1,19 @@
+// { dg-do assemble }
+// Templates can be defined outside of the namespace if the have been declared
+// inside
+namespace bar
+{
+ template
+ T const foo(T const &);
+ template<> const int foo(int const &);
+}
+
+template
+T const
+bar::foo(T const &a)
+{
+ return a;
+}
+
+template<> const int bar::foo(int const &){return 0;}
+
template12.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: template14.C
===================================================================
--- template14.C (nonexistent)
+++ template14.C (revision 154)
@@ -0,0 +1,14 @@
+// { dg-do assemble }
+// Origin: Alex Samuel
+
+namespace Outer
+{
+template class Inner;
+}
+
+template
+class Outer::Inner
+{
+public:
+ Inner ();
+};
template14.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: crash1.C
===================================================================
--- crash1.C (nonexistent)
+++ crash1.C (revision 154)
@@ -0,0 +1,12 @@
+// { dg-do assemble }
+
+template
+struct S1 {};
+
+namespace N {
+}
+
+struct S2
+{
+ typedef N::S1 S2_T; // { dg-error "" } parse error
+};
crash1.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: template16.C
===================================================================
--- template16.C (nonexistent)
+++ template16.C (revision 154)
@@ -0,0 +1,15 @@
+// { dg-do assemble }
+// Test that pushing into a namespace for a definition doesn't affect
+// template instantiations.
+
+
+namespace N {
+ template void f () { }
+ template struct A { friend void f(); };
+}
+
+namespace M {
+ struct B;
+}
+
+struct M::B: public N::A { };
template16.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: crash3.C
===================================================================
--- crash3.C (nonexistent)
+++ crash3.C (revision 154)
@@ -0,0 +1,10 @@
+// { dg-do assemble }
+
+namespace N {
+ template struct S;
+}
+
+void f()
+{
+ N::S(); // { dg-error "" } invalid use of template
+}
crash3.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: template18.C
===================================================================
--- template18.C (nonexistent)
+++ template18.C (revision 154)
@@ -0,0 +1,24 @@
+// { dg-do link }
+// Origin: Andrey Slepuhin
+
+namespace A
+{
+ int j;
+
+ template
+ struct X
+ {
+ inline X ()
+ {
+ extern int j;
+ i = j;
+ }
+
+ int i;
+ };
+}
+
+int main ()
+{
+ A::X x;
+}
template18.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: using11.C
===================================================================
--- using11.C (nonexistent)
+++ using11.C (revision 154)
@@ -0,0 +1,9 @@
+// { dg-do assemble }
+
+class joey {
+public:
+ typedef int SVec;
+};
+
+using joey::SVec; // { dg-error "" } joey is not a namespace
+
using11.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: friend2.C
===================================================================
--- friend2.C (nonexistent)
+++ friend2.C (revision 154)
@@ -0,0 +1,11 @@
+// { dg-do assemble }
+namespace A{
+ void foo();
+}
+
+
+namespace B{
+class B{
+ friend void A::foo();
+};
+}
friend2.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: using13.C
===================================================================
--- using13.C (nonexistent)
+++ using13.C (revision 154)
@@ -0,0 +1,24 @@
+// { dg-do run }
+namespace A{
+ void foo(int){}
+}
+namespace B{
+ void foo(bool){}
+}
+
+void bar()
+{
+ using B::foo;
+ using A::foo;
+ foo(true);
+}
+
+namespace Foo {
+ template void Hello(N) {}
+}
+
+int main() {
+ using Foo::Hello;
+ Hello(4);
+ bar();
+}
using13.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: lookup1.C
===================================================================
--- lookup1.C (nonexistent)
+++ lookup1.C (revision 154)
@@ -0,0 +1,3 @@
+// { dg-do assemble }
+typedef int __quad_t;
+typedef __quad_t __qaddr_t;
lookup1.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: lookup3.C
===================================================================
--- lookup3.C (nonexistent)
+++ lookup3.C (revision 154)
@@ -0,0 +1,15 @@
+// { dg-do run }
+namespace A{
+ int i;
+ int f();
+}
+
+int A::f()
+{
+ return i;
+}
+
+int main()
+{
+ return A::f();
+}
lookup3.C
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property