aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin v. Loewis <martin@mira.isdn.cs.tu-berlin.de>1998-07-09 21:10:51 +0000
committerRobert Lipe <robertl@gcc.gnu.org>1998-07-09 21:10:51 +0000
commita0f95f3f49cf56a3e494139ca9fcabbcdf0536b0 (patch)
tree4d49be6898677722b1fa1b4c89dfe1afd22b8023
parentb458ba78ae79060cd5bc83db14da735e5f7ba9b0 (diff)
downloadgcc-a0f95f3f49cf56a3e494139ca9fcabbcdf0536b0.zip
gcc-a0f95f3f49cf56a3e494139ca9fcabbcdf0536b0.tar.gz
gcc-a0f95f3f49cf56a3e494139ca9fcabbcdf0536b0.tar.bz2
From Martin Von Loewis. * g++.ns/{alias2.C, alias5.C, koenig4.C, lookup3.C ns13.C, ns14.C, ns15.C, template3.C, undef1.C, using4.C, using5.C, using6.C, using7.C}: New namespace tests. From-SVN: r21043
-rw-r--r--gcc/testsuite/g++.old-deja/g++.ns/koenig4.C24
-rw-r--r--gcc/testsuite/g++.old-deja/g++.ns/lookup3.C14
-rw-r--r--gcc/testsuite/g++.old-deja/g++.ns/ns13.C13
-rw-r--r--gcc/testsuite/g++.old-deja/g++.ns/ns14.C16
-rw-r--r--gcc/testsuite/g++.old-deja/g++.ns/ns15.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.ns/template3.C21
-rw-r--r--gcc/testsuite/g++.old-deja/g++.ns/undef1.C5
-rw-r--r--gcc/testsuite/g++.old-deja/g++.ns/using4.C5
-rw-r--r--gcc/testsuite/g++.old-deja/g++.ns/using5.C6
-rw-r--r--gcc/testsuite/g++.old-deja/g++.ns/using6.C9
-rw-r--r--gcc/testsuite/g++.old-deja/g++.ns/using7.C11
11 files changed, 126 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/koenig4.C b/gcc/testsuite/g++.old-deja/g++.ns/koenig4.C
new file mode 100644
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/lookup3.C b/gcc/testsuite/g++.old-deja/g++.ns/lookup3.C
new file mode 100644
index 0000000..cd1aaae
--- /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;
+}
+
+main()
+{
+ return A::f();
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/ns13.C b/gcc/testsuite/g++.old-deja/g++.ns/ns13.C
new file mode 100644
index 0000000..0272055
--- /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()
+{}
+
+main()
+{
+ return std::i-5;
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/ns14.C b/gcc/testsuite/g++.old-deja/g++.ns/ns14.C
new file mode 100644
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 100644
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/template3.C b/gcc/testsuite/g++.old-deja/g++.ns/template3.C
new file mode 100644
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/undef1.C b/gcc/testsuite/g++.old-deja/g++.ns/undef1.C
new file mode 100644
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/using4.C b/gcc/testsuite/g++.old-deja/g++.ns/using4.C
new file mode 100644
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 100644
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 100644
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 100644
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);
+}