summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/lookup
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2014-10-30 09:35:42 +0000
committer <>2015-01-09 11:51:27 +0000
commitc27a97d04853380f1e80525391b3f0d156ed4c84 (patch)
tree68ffaade7c605bc80cffa18360799c98a810976f /gcc/testsuite/g++.dg/lookup
parent6af3fdec2262dd94954acc5e426ef71cbd4521d3 (diff)
downloadgcc-tarball-c27a97d04853380f1e80525391b3f0d156ed4c84.tar.gz
Imported from /home/lorry/working-area/delta_gcc-tarball/gcc-4.9.2.tar.bz2.gcc-4.9.2
Diffstat (limited to 'gcc/testsuite/g++.dg/lookup')
-rw-r--r--gcc/testsuite/g++.dg/lookup/ambig1.C2
-rw-r--r--gcc/testsuite/g++.dg/lookup/ambig2.C2
-rw-r--r--gcc/testsuite/g++.dg/lookup/ambig3.C2
-rw-r--r--gcc/testsuite/g++.dg/lookup/ambig4.C4
-rw-r--r--gcc/testsuite/g++.dg/lookup/ambig5.C4
-rw-r--r--gcc/testsuite/g++.dg/lookup/anon6.C8
-rw-r--r--gcc/testsuite/g++.dg/lookup/crash3.C4
-rw-r--r--gcc/testsuite/g++.dg/lookup/crash6.C2
-rw-r--r--gcc/testsuite/g++.dg/lookup/crash8.C13
-rw-r--r--gcc/testsuite/g++.dg/lookup/extern-c-redecl5.C4
-rw-r--r--gcc/testsuite/g++.dg/lookup/friend15.C1
-rw-r--r--gcc/testsuite/g++.dg/lookup/hidden-class17.C22
-rw-r--r--gcc/testsuite/g++.dg/lookup/linkage1.C2
-rw-r--r--gcc/testsuite/g++.dg/lookup/name-clash10.C8
-rw-r--r--gcc/testsuite/g++.dg/lookup/name-clash5.C2
-rw-r--r--gcc/testsuite/g++.dg/lookup/name-clash6.C2
-rw-r--r--gcc/testsuite/g++.dg/lookup/strong-using-2.C4
-rw-r--r--gcc/testsuite/g++.dg/lookup/using16.C4
-rw-r--r--gcc/testsuite/g++.dg/lookup/using17.C4
-rw-r--r--gcc/testsuite/g++.dg/lookup/using18.C4
-rw-r--r--gcc/testsuite/g++.dg/lookup/using20.C4
-rw-r--r--gcc/testsuite/g++.dg/lookup/using53.C53
-rw-r--r--gcc/testsuite/g++.dg/lookup/using9.C4
23 files changed, 127 insertions, 32 deletions
diff --git a/gcc/testsuite/g++.dg/lookup/ambig1.C b/gcc/testsuite/g++.dg/lookup/ambig1.C
index 1cf9ab4f0a..c027428899 100644
--- a/gcc/testsuite/g++.dg/lookup/ambig1.C
+++ b/gcc/testsuite/g++.dg/lookup/ambig1.C
@@ -7,7 +7,7 @@
// Bug 16889:Undetected ambiguity.
struct B {
- int f(); // { dg-error "int B::f" "" }
+ int f(); // { dg-message "int B::f" "" }
};
struct B1 : virtual B {};
diff --git a/gcc/testsuite/g++.dg/lookup/ambig2.C b/gcc/testsuite/g++.dg/lookup/ambig2.C
index 4d423d1706..505eda60d5 100644
--- a/gcc/testsuite/g++.dg/lookup/ambig2.C
+++ b/gcc/testsuite/g++.dg/lookup/ambig2.C
@@ -7,7 +7,7 @@
// Bug 16889:Undetected ambiguity.
struct B {
- int i; // { dg-error "int B::i" "" }
+ int i; // { dg-message "int B::i" "" }
};
struct B1 : virtual B {};
diff --git a/gcc/testsuite/g++.dg/lookup/ambig3.C b/gcc/testsuite/g++.dg/lookup/ambig3.C
index 7a0a8377a9..5a3f5b9492 100644
--- a/gcc/testsuite/g++.dg/lookup/ambig3.C
+++ b/gcc/testsuite/g++.dg/lookup/ambig3.C
@@ -7,7 +7,7 @@
// Follow on from Bug 16889:Undetected ambiguity.
struct B {
- int f(); // { dg-error "int B::f" "" }
+ int f(); // { dg-message "int B::f" "" }
};
struct B1 : virtual B {};
diff --git a/gcc/testsuite/g++.dg/lookup/ambig4.C b/gcc/testsuite/g++.dg/lookup/ambig4.C
index 3a74f7d1c7..1f3daa1e5e 100644
--- a/gcc/testsuite/g++.dg/lookup/ambig4.C
+++ b/gcc/testsuite/g++.dg/lookup/ambig4.C
@@ -4,10 +4,10 @@
namespace N
{
- int i; // { dg-error "i" }
+ int i; // { dg-message "i" }
}
-int i; // { dg-error "i" }
+int i; // { dg-message "i" }
using namespace N;
diff --git a/gcc/testsuite/g++.dg/lookup/ambig5.C b/gcc/testsuite/g++.dg/lookup/ambig5.C
index cebec27791..fb48ff3c8a 100644
--- a/gcc/testsuite/g++.dg/lookup/ambig5.C
+++ b/gcc/testsuite/g++.dg/lookup/ambig5.C
@@ -4,10 +4,10 @@
namespace N
{
- namespace M {} // { dg-error "M" }
+ namespace M {} // { dg-message "M" }
}
-namespace M {} // { dg-error "M" }
+namespace M {} // { dg-message "M" }
using namespace N;
using namespace M; // { dg-error "namespace-name|ambiguous" }
diff --git a/gcc/testsuite/g++.dg/lookup/anon6.C b/gcc/testsuite/g++.dg/lookup/anon6.C
index 09fa7f8f3b..7c5a96848c 100644
--- a/gcc/testsuite/g++.dg/lookup/anon6.C
+++ b/gcc/testsuite/g++.dg/lookup/anon6.C
@@ -1,11 +1,11 @@
-extern int v1; // { dg-error "declared" }
+extern int v1; // { dg-message "declared" }
static union { int v1; }; // { dg-error "redeclaration" }
-static union { int v2; }; // { dg-error "declared" }
+static union { int v2; }; // { dg-message "declared" }
extern int v2; // { dg-error "redeclaration" }
-int v3; // { dg-error "declared" }
+int v3; // { dg-message "declared" }
static union { int v3; }; // { dg-error "redeclaration" }
-static union { int v4; }; // { dg-error "declared" }
+static union { int v4; }; // { dg-message "declared" }
static union { int v4; }; // { dg-error "redeclaration" }
diff --git a/gcc/testsuite/g++.dg/lookup/crash3.C b/gcc/testsuite/g++.dg/lookup/crash3.C
index 24a3360ba3..5b58e8ed55 100644
--- a/gcc/testsuite/g++.dg/lookup/crash3.C
+++ b/gcc/testsuite/g++.dg/lookup/crash3.C
@@ -4,8 +4,8 @@
typedef __SIZE_TYPE__ size_t;
-struct A { void *operator new(size_t s){} }; // { dg-error "operator new" }
-struct B { void *operator new(size_t s){} }; // { dg-error "operator new" }
+struct A { void *operator new(size_t s){} }; // { dg-message "operator new" }
+struct B { void *operator new(size_t s){} }; // { dg-message "operator new" }
struct C : A,B {};
diff --git a/gcc/testsuite/g++.dg/lookup/crash6.C b/gcc/testsuite/g++.dg/lookup/crash6.C
index 0e49324bf2..b8481be4d3 100644
--- a/gcc/testsuite/g++.dg/lookup/crash6.C
+++ b/gcc/testsuite/g++.dg/lookup/crash6.C
@@ -4,5 +4,5 @@
// PR c++/18652: ICE redeclaring variable as template.
-int A; // { dg-error "previous declaration" }
+int A; // { dg-message "previous declaration" }
template<int> struct A; // { dg-error "different kind of symbol" }
diff --git a/gcc/testsuite/g++.dg/lookup/crash8.C b/gcc/testsuite/g++.dg/lookup/crash8.C
new file mode 100644
index 0000000000..7dce9cb723
--- /dev/null
+++ b/gcc/testsuite/g++.dg/lookup/crash8.C
@@ -0,0 +1,13 @@
+// PR c++/58843
+
+struct A {};
+
+template<typename T> void foo(T t)
+{
+ t.T::~X(); // { dg-error "no type" }
+}
+
+void bar()
+{
+ foo(A());
+}
diff --git a/gcc/testsuite/g++.dg/lookup/extern-c-redecl5.C b/gcc/testsuite/g++.dg/lookup/extern-c-redecl5.C
index 51a342d433..4d934c1045 100644
--- a/gcc/testsuite/g++.dg/lookup/extern-c-redecl5.C
+++ b/gcc/testsuite/g++.dg/lookup/extern-c-redecl5.C
@@ -6,11 +6,11 @@
class frok
{
int this_errno;
- friend int fork (void); // { dg-error "previous declaration .*?C\\+\\+. linkage" }
+ friend int fork (void); // { dg-message "previous declaration .*?C\\+\\+. linkage" }
};
extern "C" int
-fork (void) // { dg-error "conflicts with new declaration .*?C. linkage" }}
+fork (void) // { dg-error "conflicting declaration .*?C. linkage" }}
{
frok grouped;
return grouped.this_errno;
diff --git a/gcc/testsuite/g++.dg/lookup/friend15.C b/gcc/testsuite/g++.dg/lookup/friend15.C
index 1e271fc3f0..e05cc55570 100644
--- a/gcc/testsuite/g++.dg/lookup/friend15.C
+++ b/gcc/testsuite/g++.dg/lookup/friend15.C
@@ -8,5 +8,4 @@ void foo()
friend class B;
};
B::B() {} // { dg-error "has not been declared" }
-// { dg-error "expected" "expected" { target *-*-* } 10 }
}
diff --git a/gcc/testsuite/g++.dg/lookup/hidden-class17.C b/gcc/testsuite/g++.dg/lookup/hidden-class17.C
new file mode 100644
index 0000000000..3d5ccec39c
--- /dev/null
+++ b/gcc/testsuite/g++.dg/lookup/hidden-class17.C
@@ -0,0 +1,22 @@
+// Origin PR c++/51641
+// { dg-do compile }
+
+struct A {
+ struct B { typedef int X; };
+};
+
+template<class B> struct C : A {
+ B::X q; // Ok: A::B.
+ struct U { typedef int X; };
+ template<class U>
+ struct D;
+};
+
+template<class B>
+template<class U>
+struct C<B>::D {
+ typename U::X r; // { dg-error "" }
+};
+
+C<int>::D<double> y;
+
diff --git a/gcc/testsuite/g++.dg/lookup/linkage1.C b/gcc/testsuite/g++.dg/lookup/linkage1.C
index 6f6bdfdea8..aa6983c54c 100644
--- a/gcc/testsuite/g++.dg/lookup/linkage1.C
+++ b/gcc/testsuite/g++.dg/lookup/linkage1.C
@@ -1,4 +1,4 @@
// DR 563
-extern int i; // { dg-error "linkage" }
+extern int i; // { dg-message "linkage" }
extern "C" int i; // { dg-error "linkage" }
diff --git a/gcc/testsuite/g++.dg/lookup/name-clash10.C b/gcc/testsuite/g++.dg/lookup/name-clash10.C
new file mode 100644
index 0000000000..0a089be257
--- /dev/null
+++ b/gcc/testsuite/g++.dg/lookup/name-clash10.C
@@ -0,0 +1,8 @@
+// PR c++/38313
+
+struct foo { };
+struct bar { };
+
+struct baz {
+ static foo (bar)();
+};
diff --git a/gcc/testsuite/g++.dg/lookup/name-clash5.C b/gcc/testsuite/g++.dg/lookup/name-clash5.C
index 7f220d8877..74595c2687 100644
--- a/gcc/testsuite/g++.dg/lookup/name-clash5.C
+++ b/gcc/testsuite/g++.dg/lookup/name-clash5.C
@@ -7,7 +7,7 @@
// declarative region (7.3.2, clause 14). ]"
namespace N
-{ // { dg-error "previous declaration" }
+{ // { dg-message "previous declaration" }
}
class N; // { dg-error "redeclared" }
diff --git a/gcc/testsuite/g++.dg/lookup/name-clash6.C b/gcc/testsuite/g++.dg/lookup/name-clash6.C
index 63a0b15bf5..6918142f22 100644
--- a/gcc/testsuite/g++.dg/lookup/name-clash6.C
+++ b/gcc/testsuite/g++.dg/lookup/name-clash6.C
@@ -6,7 +6,7 @@
// "[Note: a namespace name or a class template name must be unique in its
// declarative region (7.3.2, clause 14). ]"
-class N; // { dg-error "previous declaration" }
+class N; // { dg-message "previous declaration" }
namespace N
{ // { dg-error "redeclared" }
diff --git a/gcc/testsuite/g++.dg/lookup/strong-using-2.C b/gcc/testsuite/g++.dg/lookup/strong-using-2.C
index 38bb54c2f5..d9f99a8d12 100644
--- a/gcc/testsuite/g++.dg/lookup/strong-using-2.C
+++ b/gcc/testsuite/g++.dg/lookup/strong-using-2.C
@@ -5,12 +5,12 @@
namespace foo {
inline namespace foo_impl {
- class T; // { dg-error "T" "" }
+ class T; // { dg-message "T" "" }
}
}
namespace bar {
inline namespace bar_impl {
- class T; // { dg-error "T" "" }
+ class T; // { dg-message "T" "" }
}
using namespace foo;
}
diff --git a/gcc/testsuite/g++.dg/lookup/using16.C b/gcc/testsuite/g++.dg/lookup/using16.C
index a396afb973..8a36504caf 100644
--- a/gcc/testsuite/g++.dg/lookup/using16.C
+++ b/gcc/testsuite/g++.dg/lookup/using16.C
@@ -3,12 +3,12 @@
// { dg-do compile }
namespace M {
- struct S {}; // { dg-error "struct M::S" "candidate 1" }
+ struct S {}; // { dg-message "struct M::S" "candidate 1" }
}
namespace N {
int S;
- struct S {}; // { dg-error "struct N::S" "candidate 2" }
+ struct S {}; // { dg-message "struct N::S" "candidate 2" }
}
using namespace M;
diff --git a/gcc/testsuite/g++.dg/lookup/using17.C b/gcc/testsuite/g++.dg/lookup/using17.C
index b98b21a0cd..9019dabf5d 100644
--- a/gcc/testsuite/g++.dg/lookup/using17.C
+++ b/gcc/testsuite/g++.dg/lookup/using17.C
@@ -3,11 +3,11 @@
// { dg-do compile }
namespace M {
- struct S {}; // { dg-error "struct M::S" "candidate 2" }
+ struct S {}; // { dg-message "struct M::S" "candidate 2" }
}
int S;
-struct S {}; // { dg-error "candidates are: struct S" "candidate 1" }
+struct S {}; // { dg-message "candidates are: struct S" "candidate 1" }
using namespace M;
diff --git a/gcc/testsuite/g++.dg/lookup/using18.C b/gcc/testsuite/g++.dg/lookup/using18.C
index 37557148ea..d64fbc6e91 100644
--- a/gcc/testsuite/g++.dg/lookup/using18.C
+++ b/gcc/testsuite/g++.dg/lookup/using18.C
@@ -4,12 +4,12 @@
namespace N1 {
void f ();
- struct f; // { dg-error "" "candidate" }
+ struct f; // { dg-message "" "candidate" }
}
namespace N2 {
void f (int);
- struct f; // { dg-error "" "candidate" }
+ struct f; // { dg-message "" "candidate" }
}
namespace M {
diff --git a/gcc/testsuite/g++.dg/lookup/using20.C b/gcc/testsuite/g++.dg/lookup/using20.C
index dc1d293a2e..f1be41fea9 100644
--- a/gcc/testsuite/g++.dg/lookup/using20.C
+++ b/gcc/testsuite/g++.dg/lookup/using20.C
@@ -2,14 +2,14 @@
namespace A
{
- int i; // { dg-error "i" }
+ int i; // { dg-message "i" }
}
using namespace A;
namespace B
{
namespace B2
{
- int i; // { dg-error "i" }
+ int i; // { dg-message "i" }
}
using namespace B2;
}
diff --git a/gcc/testsuite/g++.dg/lookup/using53.C b/gcc/testsuite/g++.dg/lookup/using53.C
new file mode 100644
index 0000000000..a108b50ef8
--- /dev/null
+++ b/gcc/testsuite/g++.dg/lookup/using53.C
@@ -0,0 +1,53 @@
+// PR c++/20420
+
+class B
+{
+protected:
+ enum E { E1, E2, E3 };
+ struct S { int i; E e; };
+};
+
+class D : private B
+{
+public:
+ using B::E; // { dg-message "previous" }
+ using B::S; // { dg-message "previous" }
+
+private:
+ enum E {}; // { dg-error "conflicts" }
+ struct S {}; // { dg-error "conflicts" }
+};
+
+template<typename T>
+class BT
+{
+protected:
+ enum E { E1, E2, E3 };
+ struct S { int i; E e; };
+};
+
+template<typename T>
+class DT : private BT<T>
+{
+public:
+ using BT<T>::E; // { dg-message "previous" }
+ using BT<T>::S; // { dg-message "previous" }
+
+private:
+ enum E {}; // { dg-error "conflicts" }
+ struct S {}; // { dg-error "conflicts" }
+};
+
+template class DT<int>;
+
+namespace N
+{
+ int i;
+}
+
+void
+f ()
+{
+ using N::i;
+ using N::i; // { dg-error "declared" }
+}
diff --git a/gcc/testsuite/g++.dg/lookup/using9.C b/gcc/testsuite/g++.dg/lookup/using9.C
index 32abb5371f..fd3e788638 100644
--- a/gcc/testsuite/g++.dg/lookup/using9.C
+++ b/gcc/testsuite/g++.dg/lookup/using9.C
@@ -21,11 +21,11 @@ void h()
f('h');
f(1); // { dg-error "ambiguous" }
// { dg-message "candidate" "candidate note" { target *-*-* } 22 }
- void f(int); // { dg-error "previous using declaration" }
+ void f(int); // { dg-error "previous declaration" }
}
void m()
{
void f(int);
- using B::f; // { dg-error "already declared" }
+ using B::f; // { dg-error "previous declaration" }
}