diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 9390740180c8fd8c5380ad3411d2b4eccb93b511..0315ff0a2d07fac4dd2197c4fffda0c001d3de9c 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2003-06-17  Kazu Hirata  <kazu@cs.umass.edu>
+
+	* gcc.c-torture/compile/20020604-1.c: Use dg-xfail-if for h8300.
+	* gcc.c-torture/compile/961203-1.c: Likewise.
+	* gcc.c-torture/compile/980506-1.c: Likewise.
+
 2003-06-17  Mark Mitchell  <mark@codesourcery.com>
 
 	PR c++/10712
diff --git a/gcc/testsuite/gcc.c-torture/compile/20020604-1.c b/gcc/testsuite/gcc.c-torture/compile/20020604-1.c
index fca4a53589364222ec3f989bbd4769482e7a6227..488a1b403d375dcaa2399bea5b7fe8bf40503ad8 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20020604-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20020604-1.c
@@ -1,5 +1,6 @@
 /* The array is too big. */
-/* { dg-do assemble { xfail h8300-*-* m6811-*-* m6812-*-* } } */
+/* { dg-xfail-if "The array too big" { "h8300-*-*" } { "-mno-h" } { "" } } */
+/* { dg-do assemble { xfail m6811-*-* m6812-*-* } } */
 
 /* PR c/6957
    This testcase ICEd at -O2 on IA-32, because
diff --git a/gcc/testsuite/gcc.c-torture/compile/961203-1.c b/gcc/testsuite/gcc.c-torture/compile/961203-1.c
index 12aba52e7e0fcf431803ed6c89aa21180bf15d31..1d879292e518aaeabc8b702c922e0cf3d762aeee 100644
--- a/gcc/testsuite/gcc.c-torture/compile/961203-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/961203-1.c
@@ -1,6 +1,7 @@
 /* The structure is too large for the xstormy16 - won't fit in 16
    bits.  */
-/* { dg-do assemble { xfail xstormy16-*-* h8300-*-* m6811-*-* m6812-*-* } } */
+/* { dg-xfail-if "The array too big" { "h8300-*-*" } { "-mno-h" } { "" } } */
+/* { dg-do assemble { xfail xstormy16-*-* m6811-*-* m6812-*-* } } */
 
 struct s {
   char a[0x32100000];
diff --git a/gcc/testsuite/gcc.c-torture/compile/980506-1.c b/gcc/testsuite/gcc.c-torture/compile/980506-1.c
index 834137244f903cc5faace8e11d0d3808ad710dea..fd3496af3092fbc8e5772c199fef79999af420f8 100644
--- a/gcc/testsuite/gcc.c-torture/compile/980506-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/980506-1.c
@@ -1,5 +1,6 @@
 /* The arrays are too large for the xstormy16 - won't fit in 16 bits. */
-/* { dg-do assemble { xfail xstormy16-*-* h8300-*-* m6811-*-* m6812-*-* } } */
+/* { dg-xfail-if "The array too big" { "h8300-*-*" } { "-mno-h" } { "" } } */
+/* { dg-do assemble { xfail xstormy16-*-* m6811-*-* m6812-*-* } } */
 
 unsigned char	TIFFFax2DMode[20][256];
 unsigned char	TIFFFax2DNextState[20][256];