From c27a97d04853380f1e80525391b3f0d156ed4c84 Mon Sep 17 00:00:00 2001 From: Lorry Tar Creator Date: Thu, 30 Oct 2014 09:35:42 +0000 Subject: Imported from /home/lorry/working-area/delta_gcc-tarball/gcc-4.9.2.tar.bz2. --- gcc/testsuite/g++.dg/lookup/ambig1.C | 2 +- gcc/testsuite/g++.dg/lookup/ambig2.C | 2 +- gcc/testsuite/g++.dg/lookup/ambig3.C | 2 +- gcc/testsuite/g++.dg/lookup/ambig4.C | 4 +- gcc/testsuite/g++.dg/lookup/ambig5.C | 4 +- gcc/testsuite/g++.dg/lookup/anon6.C | 8 ++-- gcc/testsuite/g++.dg/lookup/crash3.C | 4 +- gcc/testsuite/g++.dg/lookup/crash6.C | 2 +- gcc/testsuite/g++.dg/lookup/crash8.C | 13 +++++++ gcc/testsuite/g++.dg/lookup/extern-c-redecl5.C | 4 +- gcc/testsuite/g++.dg/lookup/friend15.C | 1 - gcc/testsuite/g++.dg/lookup/hidden-class17.C | 22 +++++++++++ gcc/testsuite/g++.dg/lookup/linkage1.C | 2 +- gcc/testsuite/g++.dg/lookup/name-clash10.C | 8 ++++ gcc/testsuite/g++.dg/lookup/name-clash5.C | 2 +- gcc/testsuite/g++.dg/lookup/name-clash6.C | 2 +- gcc/testsuite/g++.dg/lookup/strong-using-2.C | 4 +- gcc/testsuite/g++.dg/lookup/using16.C | 4 +- gcc/testsuite/g++.dg/lookup/using17.C | 4 +- gcc/testsuite/g++.dg/lookup/using18.C | 4 +- gcc/testsuite/g++.dg/lookup/using20.C | 4 +- gcc/testsuite/g++.dg/lookup/using53.C | 53 ++++++++++++++++++++++++++ gcc/testsuite/g++.dg/lookup/using9.C | 4 +- 23 files changed, 127 insertions(+), 32 deletions(-) create mode 100644 gcc/testsuite/g++.dg/lookup/crash8.C create mode 100644 gcc/testsuite/g++.dg/lookup/hidden-class17.C create mode 100644 gcc/testsuite/g++.dg/lookup/name-clash10.C create mode 100644 gcc/testsuite/g++.dg/lookup/using53.C (limited to 'gcc/testsuite/g++.dg/lookup') 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 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 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 struct C : A { + B::X q; // Ok: A::B. + struct U { typedef int X; }; + template + struct D; +}; + +template +template +struct C::D { + typename U::X r; // { dg-error "" } +}; + +C::D 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 +class BT +{ +protected: + enum E { E1, E2, E3 }; + struct S { int i; E e; }; +}; + +template +class DT : private BT +{ +public: + using BT::E; // { dg-message "previous" } + using BT::S; // { dg-message "previous" } + +private: + enum E {}; // { dg-error "conflicts" } + struct S {}; // { dg-error "conflicts" } +}; + +template class DT; + +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" } } -- cgit v1.2.1