diff options
author | Richard Henderson <rth@redhat.com> | 2004-01-03 23:05:47 +0000 |
---|---|---|
committer | Richard Henderson <rth@redhat.com> | 2004-01-03 23:05:47 +0000 |
commit | 411b2295ee9a18f93fdc45bd3d4b2dd8cc8d055d (patch) | |
tree | 863b8a9b56c0018d65b86cc23d20ad3b5f8d4a89 /gcc/testsuite/g++.dg | |
parent | 97a27604616ab18e514bad680435fb93de2900eb (diff) |
Merge to tree-ssa-20020619-merge-20040102.
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/tree-ssa-20020619-branch@75375 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/g++.dg')
26 files changed, 44 insertions, 52 deletions
diff --git a/gcc/testsuite/g++.dg/abi/bitfield5.C b/gcc/testsuite/g++.dg/abi/bitfield5.C index eed76e649e6..e754f0ddf22 100644 --- a/gcc/testsuite/g++.dg/abi/bitfield5.C +++ b/gcc/testsuite/g++.dg/abi/bitfield5.C @@ -1,5 +1,5 @@ // { dg-do compile } -// { dg-options "-Wabi" } +// { dg-options "-Wabi -fabi-version=1" } struct A { virtual void f(); diff --git a/gcc/testsuite/g++.dg/abi/bitfield7.C b/gcc/testsuite/g++.dg/abi/bitfield7.C index 9868cfce198..b5b656ffa47 100644 --- a/gcc/testsuite/g++.dg/abi/bitfield7.C +++ b/gcc/testsuite/g++.dg/abi/bitfield7.C @@ -1,5 +1,5 @@ // { dg-do compile } -// { dg-options "-Wabi" } +// { dg-options "-Wabi -fabi-version=1" } union U { // { dg-warning "ABI" } int i: 4096; // { dg-warning "exceeds" } diff --git a/gcc/testsuite/g++.dg/abi/dtor2.C b/gcc/testsuite/g++.dg/abi/dtor2.C index f4a1336fefa..6b89cc8eae0 100644 --- a/gcc/testsuite/g++.dg/abi/dtor2.C +++ b/gcc/testsuite/g++.dg/abi/dtor2.C @@ -1,5 +1,5 @@ // { dg-do compile } -// { dg-options "-Wabi" } +// { dg-options "-Wabi -fabi-version=1" } struct A { virtual void a (); diff --git a/gcc/testsuite/g++.dg/abi/mangle11.C b/gcc/testsuite/g++.dg/abi/mangle11.C index f7151171d30..a049a956671 100644 --- a/gcc/testsuite/g++.dg/abi/mangle11.C +++ b/gcc/testsuite/g++.dg/abi/mangle11.C @@ -1,4 +1,4 @@ -// { dg-options "-Wabi" } +// { dg-options "-Wabi -fabi-version=1" } template <typename Q> void f (typename Q::X) {} diff --git a/gcc/testsuite/g++.dg/abi/mangle12.C b/gcc/testsuite/g++.dg/abi/mangle12.C index 772b58b7a39..406a13b3f79 100644 --- a/gcc/testsuite/g++.dg/abi/mangle12.C +++ b/gcc/testsuite/g++.dg/abi/mangle12.C @@ -1,4 +1,4 @@ -// { dg-options "-Wabi" } +// { dg-options "-Wabi -fabi-version=1" } template <template <typename> class Q> void f (typename Q<int>::X) {} diff --git a/gcc/testsuite/g++.dg/abi/mangle14.C b/gcc/testsuite/g++.dg/abi/mangle14.C index 8e2bfddde76..1205ac45fe0 100644 --- a/gcc/testsuite/g++.dg/abi/mangle14.C +++ b/gcc/testsuite/g++.dg/abi/mangle14.C @@ -1,5 +1,5 @@ // { dg-do compile } -// { dg-options "-Wabi" } +// { dg-options "-Wabi -fabi-version=1" } struct A { template <typename T> int f (); diff --git a/gcc/testsuite/g++.dg/abi/mangle17.C b/gcc/testsuite/g++.dg/abi/mangle17.C index 6f8e387e1d7..994da88edca 100644 --- a/gcc/testsuite/g++.dg/abi/mangle17.C +++ b/gcc/testsuite/g++.dg/abi/mangle17.C @@ -1,4 +1,4 @@ -// { dg-options "-Wabi" } +// { dg-options "-Wabi -fabi-version=1" } enum E { e = 3 }; diff --git a/gcc/testsuite/g++.dg/abi/mangle4.C b/gcc/testsuite/g++.dg/abi/mangle4.C index d4b5936825c..3ce224716db 100644 --- a/gcc/testsuite/g++.dg/abi/mangle4.C +++ b/gcc/testsuite/g++.dg/abi/mangle4.C @@ -18,7 +18,7 @@ int main() C<static_cast<const A*>(&b)> c; // { dg-error "" } D<&b> d; E<const_cast<B*>(&b)> e; // { dg-error "" } - f(d, c); // { dg-error "" } - g(d, e); // { dg-error "" } + f(d, c); + g(d, e); } diff --git a/gcc/testsuite/g++.dg/abi/vbase10.C b/gcc/testsuite/g++.dg/abi/vbase10.C index 3c110be7188..bd03105ec1d 100644 --- a/gcc/testsuite/g++.dg/abi/vbase10.C +++ b/gcc/testsuite/g++.dg/abi/vbase10.C @@ -1,7 +1,13 @@ // { dg-do compile } -// { dg-options "-Wabi" } +// { dg-options "-Wabi -fabi-version=1" } struct A { virtual void f(); char c1; }; struct B { B(); char c2; }; -struct C : public A, public virtual B {}; // { dg-warning "ABI" } +// On ARM processors, the alignment of B will be 4 even though it +// contains only a single "char". That avoids the situation that the +// warning below is designed to catch. On ARM NetBSD, the alignment +// of B will be only 1 -- but there is no way to tell DejaGNU that a +// failure is expected on all ARM targets except arm*-*-netbsd*. +// Therefore, this test will XPASS on arm*-*-netbsd*. +struct C : public A, public virtual B {}; // { dg-warning "ABI" "" { xfail arm*-*-* } } diff --git a/gcc/testsuite/g++.dg/abi/vbase14.C b/gcc/testsuite/g++.dg/abi/vbase14.C index 99290b85720..320d5ba77dc 100644 --- a/gcc/testsuite/g++.dg/abi/vbase14.C +++ b/gcc/testsuite/g++.dg/abi/vbase14.C @@ -1,4 +1,4 @@ -// { dg-options "-Wabi" } +// { dg-options "-Wabi -fabi-version=1" } struct E1 {}; struct E2 : public E1 {}; // { dg-warning "layout" } diff --git a/gcc/testsuite/g++.dg/bprob/bprob.exp b/gcc/testsuite/g++.dg/bprob/bprob.exp index 83a7de95c6a..bef57836cf1 100644 --- a/gcc/testsuite/g++.dg/bprob/bprob.exp +++ b/gcc/testsuite/g++.dg/bprob/bprob.exp @@ -17,13 +17,11 @@ # Test the functionality of programs compiled with profile-directed block # ordering using -fprofile-arcs followed by -fbranch-probabilities. +load_lib target-supports.exp + # Some targets don't have any implementation of __bb_init_func or are # missing other needed machinery. -if { [istarget mmix-*-*] - || [istarget arm*-*-elf] - || [istarget strongarm*-*-elf] - || [istarget xscale*-*-elf] - || [istarget cris-*-*] } { +if { ![check_profiling_available] } { return } diff --git a/gcc/testsuite/g++.dg/compat/compat.exp b/gcc/testsuite/g++.dg/compat/compat.exp index 1adb4569c6d..94da38c77de 100644 --- a/gcc/testsuite/g++.dg/compat/compat.exp +++ b/gcc/testsuite/g++.dg/compat/compat.exp @@ -43,11 +43,13 @@ proc compat-fix-library-path { } { global ld_library_path # See comments in lib/g++.exp for why this is needed. - setenv LD_LIBRARY_PATH $ld_library_path - setenv SHLIB_PATH $ld_library_path - setenv LD_LIBRARYN32_PATH $ld_library_path - setenv LD_LIBRARY64_PATH $ld_library_path - setenv DYLD_LIBRARY_PATH $ld_library_path + if {![is_remote target]} { + # See comments in lib/g++.exp for why this is needed. + setenv LD_LIBRARY_PATH $ld_library_path + setenv SHLIB_PATH $ld_library_path + setenv LD_LIBRARYN32_PATH $ld_library_path + setenv LD_LIBRARY64_PATH $ld_library_path + } } # diff --git a/gcc/testsuite/g++.dg/eh/simd-1.C b/gcc/testsuite/g++.dg/eh/simd-1.C index 1e15b4d5d1a..9cad5ad9d10 100644 --- a/gcc/testsuite/g++.dg/eh/simd-1.C +++ b/gcc/testsuite/g++.dg/eh/simd-1.C @@ -2,6 +2,7 @@ // Contributed by Aldy Hernandez (aldy@quesejoda.com). // { dg-options "-O" } // { dg-do run } +// { dg-error "" "PR target/12916" { target sparc*-*-* } 10 } typedef int __attribute__((mode(V2SI))) vecint; diff --git a/gcc/testsuite/g++.dg/eh/simd-2.C b/gcc/testsuite/g++.dg/eh/simd-2.C index 39f8dc80f23..81c4025a12e 100644 --- a/gcc/testsuite/g++.dg/eh/simd-2.C +++ b/gcc/testsuite/g++.dg/eh/simd-2.C @@ -3,6 +3,7 @@ // { dg-options "-O" } // { dg-options "-O -w" { target i?86-*-* } } // { dg-do run } +// { dg-error "" "PR target/12916" { target sparc*-*-* } 11 } typedef int __attribute__((mode(V4SI))) vecint; diff --git a/gcc/testsuite/g++.dg/lookup/using5.C b/gcc/testsuite/g++.dg/lookup/using5.C index 8aab55b84cb..b443b97742f 100644 --- a/gcc/testsuite/g++.dg/lookup/using5.C +++ b/gcc/testsuite/g++.dg/lookup/using5.C @@ -13,5 +13,5 @@ template <typename> struct A template <typename T> struct B : A<T> { - using X::foo; // { dg-error "not a class-name|nested-name-specifier|non-member" } + using X::foo; // { dg-error "declared|nested-name-specifier|non-member" } }; diff --git a/gcc/testsuite/g++.dg/other/error2.C b/gcc/testsuite/g++.dg/other/error2.C index 391115ddc6d..ea6c5203ecb 100644 --- a/gcc/testsuite/g++.dg/other/error2.C +++ b/gcc/testsuite/g++.dg/other/error2.C @@ -10,5 +10,5 @@ namespace N class B { friend void operator>>(int, class B); }; class N { friend void operator>>(int,class N); }; } -void N::operator>>(int, N::B) // { dg-error "`B' is not a member of|non-function|primary-expression" "" } +void N::operator>>(int, N::B) // { dg-error "N::N::B" } { } // { dg-error "" "" } diff --git a/gcc/testsuite/g++.dg/other/offsetof2.C b/gcc/testsuite/g++.dg/other/offsetof2.C index 64b4fbdc84d..3ab63981d9b 100644 --- a/gcc/testsuite/g++.dg/other/offsetof2.C +++ b/gcc/testsuite/g++.dg/other/offsetof2.C @@ -1,4 +1,4 @@ -// { dg-do run { xfail *-*-* } } +// { dg-do run } // { dg-options -Wold-style-cast } // Copyright (C) 2003 Free Software Foundation, Inc. @@ -6,8 +6,6 @@ // DR273 POD can have an operator&, offsetof is still required to work -// XFAILED - you can't write offsetof without an extension - #include <stddef.h> struct POD1 diff --git a/gcc/testsuite/g++.dg/parse/typename5.C b/gcc/testsuite/g++.dg/parse/typename5.C index 70a2814a44f..6b2ed894a86 100644 --- a/gcc/testsuite/g++.dg/parse/typename5.C +++ b/gcc/testsuite/g++.dg/parse/typename5.C @@ -8,5 +8,5 @@ template <typename> struct A {}; template <typename> struct B { - typedef A<typename X::Y> C; // { dg-error "not a class-name|invalid|no type" } + typedef A<typename X::Y> C; // { dg-error "declared|invalid|no type" } }; diff --git a/gcc/testsuite/g++.dg/parse/undefined1.C b/gcc/testsuite/g++.dg/parse/undefined1.C index 324c575b9b0..0ae4e88777c 100644 --- a/gcc/testsuite/g++.dg/parse/undefined1.C +++ b/gcc/testsuite/g++.dg/parse/undefined1.C @@ -7,4 +7,4 @@ struct foo foo(X) {} // { dg-error "" } foo(X y, int) : x() {} // { dg-error "" } -}; // { dg-error "" } +}; diff --git a/gcc/testsuite/g++.dg/template/arg2.C b/gcc/testsuite/g++.dg/template/arg2.C index 5a4ff275cf3..dbed54d2131 100644 --- a/gcc/testsuite/g++.dg/template/arg2.C +++ b/gcc/testsuite/g++.dg/template/arg2.C @@ -10,5 +10,5 @@ template <typename T> class X {}; void fn () { class L {}; - X<L> f; // { dg-error "uses local type|trying to instantiate|expected" "" } + X<L> f; // { dg-error "uses local type|trying to instantiate|no type" "" } } diff --git a/gcc/testsuite/g++.dg/template/nested3.C b/gcc/testsuite/g++.dg/template/nested3.C index 1c45d645290..0094783166a 100644 --- a/gcc/testsuite/g++.dg/template/nested3.C +++ b/gcc/testsuite/g++.dg/template/nested3.C @@ -5,13 +5,13 @@ class A { int _k; }; T1 _t1; - T2 _t2; + T2 _t2; // { dg-error "instantiated" } }; template <class U> -class B { +class B { // { dg-error "" } class SubB1 { - B _i; + B _i; // { dg-error "" } }; class SubB2 { @@ -22,7 +22,7 @@ class B { int main() { - B<char> objB; + B<char> objB; // { dg-error "instantiated" } return 0; } diff --git a/gcc/testsuite/g++.dg/template/ptrmem7.C b/gcc/testsuite/g++.dg/template/ptrmem7.C index 59b28a36296..cd907f21264 100644 --- a/gcc/testsuite/g++.dg/template/ptrmem7.C +++ b/gcc/testsuite/g++.dg/template/ptrmem7.C @@ -27,17 +27,3 @@ X<&S::i,S> x = X<&S::i,S>(); X<&S::i,S> x2 = X<&S2::i,S>(); X<&S::i,S> y = X<&S::j,S>(); // { dg-error "" } X<&S::i,S> z = X<&R::i,S>(); // { dg-error "" } - -template <class T> -struct Foo -{ - void foo(void) - { - X<&T::i,T> x = X<&T::i,T>(); - X<&S::i,S> x2 = X<&S2::i,S>(); - X<&S::i,S> y = X<&S::j,S>(); // { dg-error "" } - X<&S::i,S> z = X<&R::i,S>(); // { dg-error "" } - } -}; - -template struct Foo<S>; // { dg-error "instantiated from" } diff --git a/gcc/testsuite/g++.dg/template/qualttp17.C b/gcc/testsuite/g++.dg/template/qualttp17.C index 4766c53847d..4d79c9a7653 100644 --- a/gcc/testsuite/g++.dg/template/qualttp17.C +++ b/gcc/testsuite/g++.dg/template/qualttp17.C @@ -1,7 +1,7 @@ // Copyright (C) 2001 Free Software Foundation // Contributed by Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> // { dg-do compile } -// { dg-options "-fno-inline" } +// { dg-options "-fno-inline -fabi-version=1" } struct A { diff --git a/gcc/testsuite/g++.dg/template/static2.C b/gcc/testsuite/g++.dg/template/static2.C index d18c1a7fb4e..881f07ce95a 100644 --- a/gcc/testsuite/g++.dg/template/static2.C +++ b/gcc/testsuite/g++.dg/template/static2.C @@ -4,7 +4,7 @@ template<int A::* P> class B { public: - static int A::* const p = P; // { dg-error "in-class" } + static int A::* const p = P; // { dg-error "" } }; class A diff --git a/gcc/testsuite/g++.dg/template/ttp3.C b/gcc/testsuite/g++.dg/template/ttp3.C index cc3128cfc95..a7f231a7fb0 100644 --- a/gcc/testsuite/g++.dg/template/ttp3.C +++ b/gcc/testsuite/g++.dg/template/ttp3.C @@ -23,4 +23,4 @@ class List { }; // This next line should just do a lookup of 'class List', and then // get a type/value mismatch. Instead we try and push 'class List' // into the global namespace and get a redeclaration error. -vector<class List > data; // { dg-error "invalid|required|expected" "" } +vector<class List > data; // { dg-error "invalid|required|declaration" "" } diff --git a/gcc/testsuite/g++.dg/template/type1.C b/gcc/testsuite/g++.dg/template/type1.C index 98a4bd3bf03..b74d975ac49 100644 --- a/gcc/testsuite/g++.dg/template/type1.C +++ b/gcc/testsuite/g++.dg/template/type1.C @@ -5,4 +5,4 @@ struct A { }; int A::B::c; // { dg-error "parameters" } -int A::C::d; // { dg-error "class" } +int A::C::d; // { dg-error "declared" } |