aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2004-01-03 23:05:47 +0000
committerRichard Henderson <rth@redhat.com>2004-01-03 23:05:47 +0000
commit411b2295ee9a18f93fdc45bd3d4b2dd8cc8d055d (patch)
tree863b8a9b56c0018d65b86cc23d20ad3b5f8d4a89 /gcc/testsuite/g++.dg
parent97a27604616ab18e514bad680435fb93de2900eb (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')
-rw-r--r--gcc/testsuite/g++.dg/abi/bitfield5.C2
-rw-r--r--gcc/testsuite/g++.dg/abi/bitfield7.C2
-rw-r--r--gcc/testsuite/g++.dg/abi/dtor2.C2
-rw-r--r--gcc/testsuite/g++.dg/abi/mangle11.C2
-rw-r--r--gcc/testsuite/g++.dg/abi/mangle12.C2
-rw-r--r--gcc/testsuite/g++.dg/abi/mangle14.C2
-rw-r--r--gcc/testsuite/g++.dg/abi/mangle17.C2
-rw-r--r--gcc/testsuite/g++.dg/abi/mangle4.C4
-rw-r--r--gcc/testsuite/g++.dg/abi/vbase10.C10
-rw-r--r--gcc/testsuite/g++.dg/abi/vbase14.C2
-rw-r--r--gcc/testsuite/g++.dg/bprob/bprob.exp8
-rw-r--r--gcc/testsuite/g++.dg/compat/compat.exp12
-rw-r--r--gcc/testsuite/g++.dg/eh/simd-1.C1
-rw-r--r--gcc/testsuite/g++.dg/eh/simd-2.C1
-rw-r--r--gcc/testsuite/g++.dg/lookup/using5.C2
-rw-r--r--gcc/testsuite/g++.dg/other/error2.C2
-rw-r--r--gcc/testsuite/g++.dg/other/offsetof2.C4
-rw-r--r--gcc/testsuite/g++.dg/parse/typename5.C2
-rw-r--r--gcc/testsuite/g++.dg/parse/undefined1.C2
-rw-r--r--gcc/testsuite/g++.dg/template/arg2.C2
-rw-r--r--gcc/testsuite/g++.dg/template/nested3.C8
-rw-r--r--gcc/testsuite/g++.dg/template/ptrmem7.C14
-rw-r--r--gcc/testsuite/g++.dg/template/qualttp17.C2
-rw-r--r--gcc/testsuite/g++.dg/template/static2.C2
-rw-r--r--gcc/testsuite/g++.dg/template/ttp3.C2
-rw-r--r--gcc/testsuite/g++.dg/template/type1.C2
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" }