Testsuite patch for Solaris 10

Joseph S. Myers joseph@codesourcery.com
Fri Nov 12 21:14:00 GMT 2004


AMD64 Solaris 10 defaults to 32-bit compilation so has target triple
i386-pc-solaris2.10, but builds 64-bit multilibs.  Various testcases
that are for i?86-*-* only, not x86_64-*-*, need to disable the use of
-m64.  This patch (around a third of the changes present on
csl-sol210-branch) adds dg-forbid-option to achieve this.  As various
significant test harness changes have been being discussed lately for
mainline, I hope this too can be considered for mainline now.

(This patch isn't quite identical to that on csl-sol210-branch; there
are whitespace fixes, ChangeLog typo fixes and some tests have been
adjusted only to disallow -m64 on i?86-*-* where they are tested on
all targets but have special 32-bit-only options on x86, rather than
disallowing it everywhere as some but not most such tests did.)

As a sanity check for TCL syntax, there are no testsuite regressions
with this patch on i686-pc-linux-gnu.  OK to commit?

2004-11-12  Mark Mitchell <mark@codesourcery.com>

	* lib/gcc-dg.exp (dg-forbid-option): New function.
	* g++.dg/abi/bitfield3.C: Use dg-forbid-option -m64.
	* g++.dg/abi/bitfield8.C: Likewise.
	* g++.dg/abi/dtor1.C: Likewise.
	* g++.dg/abi/empty10.C: Likewise.
	* g++.dg/abi/empty7.C: Likewise.
	* g++.dg/abi/empty9.C: Likewise.
	* g++.dg/abi/layout3.C: Likewise.
	* g++.dg/abi/layout4.C: Likewise.
	* g++.dg/abi/thunk1.C: Likewise.
	* g++.dg/abi/thunk2.C: Likewise.
	* g++.dg/abi/vbase11.C: Likewise.
	* g++.dg/abi/vthunk2.C: Likewise.
	* g++.dg/abi/vthunk3.C: Likewise.
	* g++.dg/ext/attrib8.C: Likewise.
	* g++.dg/opt/longbranch2.C: Likewise.
	* g++.dg/opt/reg-stack4.C: Likewise.
	* g++.old-deja/g++.ext/attrib1.C: Likewise.
	* g++.old-deja/g++.ext/attrib2.C: Likewise.
	* g++.old-deja/g++.ext/attrib3.C: Likewise.
	* g++.old-deja/g++.other/store-expr1.C: Likewise.
	* g++.old-deja/g++.other/store-expr2.C: Likewise.
	* gcc.dg/20000609-1.c: Likewise.
	* gcc.dg/20000720-1.c: Likewise.
	* gcc.dg/20011107-1.c: Likewise.
	* gcc.dg/20011119-1.c: Likewise.
	* gcc.dg/20020108-1.c: Likewise.
	* gcc.dg/20020122-2.c: Likewise.
	* gcc.dg/20020122-3.c: Likewise.
	* gcc.dg/20020201-3.c: Likewise.
	* gcc.dg/20020206-1.c: Likewise.
	* gcc.dg/20020218-1.c: Likewise.
	* gcc.dg/20020310-1.c: Likewise.
	* gcc.dg/20020411-1.c: Likewise.
	* gcc.dg/20020418-2.c: Likewise.
	* gcc.dg/20020426-1.c: Likewise.
	* gcc.dg/20020426-2.c: Likewise.
	* gcc.dg/20020517-1.c: Likewise.
	* gcc.dg/20020523-1.c: Likewise.
	* gcc.dg/20020523-2.c: Likewise.
	* gcc.dg/20020729-1.c: Likewise.
	* gcc.dg/20030204-1.c: Likewise.
	* gcc.dg/20030826-2.c: Likewise.
	* gcc.dg/20030926-1.c: Likewise.
	* gcc.dg/20031202-1.c: Likewise.
	* gcc.dg/980312-1.c: Likewise.
	* gcc.dg/980313-1.c: Likewise.
	* gcc.dg/990117-1.c: Likewise.
	* gcc.dg/990424-1.c: Likewise.
	* gcc.dg/990524-1.c: Likewise.
	* gcc.dg/991230-1.c: Likewise.
	* gcc.dg/i386-387-1.c: Likewise.
	* gcc.dg/i386-387-2.c: Likewise.
	* gcc.dg/i386-387-3.c: Likewise.
	* gcc.dg/i386-387-4.c: Likewise.
	* gcc.dg/i386-387-5.c: Likewise.
	* gcc.dg/i386-387-6.c: Likewise.
	* gcc.dg/i386-asm-1.c: Likewise.
	* gcc.dg/i386-bitfield1.c: Likewise.
	* gcc.dg/i386-bitfield2.c: Likewise.
	* gcc.dg/i386-loop-1.c: Likewise.
	* gcc.dg/i386-loop-2.c: Likewise.
	* gcc.dg/i386-loop-3.c: Likewise.
	* gcc.dg/i386-pentium4-not-mull.c: Likewise.
	* gcc.dg/i386-pic-1.c: Likewise.
	* gcc.dg/i386-regparm.c: Likewise.
	* gcc.dg/i386-signbit-1.c: Likewise.
	* gcc.dg/i386-signbit-2.c: Likewise.
	* gcc.dg/i386-signbit-3.c: Likewise.
	* gcc.dg/i386-sse-5.c: Likewise.
	* gcc.dg/i386-sse-8.c: Likewise.
	* gcc.dg/i386-unroll-1.c: Likewise.
	* gcc.dg/tls/opt-1.c: Likewise.
	* gcc.dg/tls/opt-2.c: Likewise.
	* gcc.dg/unroll-1.c: Likewise.
	* gcc.misc-tests/i386-pf-3dnow-1.c: Likewise.
	* gcc.misc-tests/i386-pf-athlon-1.c: Likewise.
	* gcc.misc-tests/i386-pf-none-1.c: Likewise.
	* gcc.misc-tests/i386-pf-sse-1.c: Likewise.
	* gcc.c-torture/execute/20010129-1.x: Do not use -mtune=i686 when
	-m64 is specified.

diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.c-torture/execute/20010129-1.x gcc-sol210/gcc/testsuite/gcc.c-torture/execute/20010129-1.x
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.c-torture/execute/20010129-1.x	2003-02-22 19:10:03.000000000 -0800
+++ gcc-sol210/gcc/testsuite/gcc.c-torture/execute/20010129-1.x	2004-09-27 08:45:09.000000000 -0700
@@ -1,4 +1,13 @@
+# Use "-mtune=i686" on i?86-*-* unless "-m64" is specified.
 if { [istarget "i?86-*-*"] } {
-  set additional_flags "-mtune=i686"
+  set target_name [target_info name]
+  if {[board_info $target_name exists multilib_flags]} {
+    set multilib_flags [board_info $target_name multilib_flags]
+    if { ![regexp -- "-m64" $multilib_flags] } {
+      set additional_flags "-mtune=i686"
+    }
+  } else {
+    set additional_flags "-mtune=i686"
+  }
 }
 return 0
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20000609-1.c gcc-sol210/gcc/testsuite/gcc.dg/20000609-1.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20000609-1.c	2000-06-09 19:57:20.000000000 -0700
+++ gcc-sol210/gcc/testsuite/gcc.dg/20000609-1.c	2004-09-27 08:45:10.000000000 -0700
@@ -1,5 +1,6 @@
 /* { dg-do run { target i?86-*-* } } */
 /* { dg-options "-O1 -ffast-math -march=i686" } */
+/* { dg-forbid-option "-m64" } */
 
 /* Sanity check for fp_jcc_* with TARGET_CMOVE.  */
 
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20000720-1.c gcc-sol210/gcc/testsuite/gcc.dg/20000720-1.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20000720-1.c	2000-07-25 12:35:45.000000000 -0700
+++ gcc-sol210/gcc/testsuite/gcc.dg/20000720-1.c	2004-09-27 08:45:10.000000000 -0700
@@ -1,4 +1,5 @@
 /* { dg-do compile { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" } */
 /* { dg-options "-mpreferred-stack-boundary=2 -march=i586 -O2 -fomit-frame-pointer" } */
 
 extern void *foo(void *a, const void *b, unsigned c);
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20011107-1.c gcc-sol210/gcc/testsuite/gcc.dg/20011107-1.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20011107-1.c	2003-02-22 19:10:03.000000000 -0800
+++ gcc-sol210/gcc/testsuite/gcc.dg/20011107-1.c	2004-09-27 08:45:10.000000000 -0700
@@ -1,4 +1,5 @@
 /* { dg-do compile { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" } */
 /* { dg-options "-O2 -mtune=k6" } */
 
 void
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20011119-1.c gcc-sol210/gcc/testsuite/gcc.dg/20011119-1.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20011119-1.c	2001-11-20 16:04:47.000000000 -0800
+++ gcc-sol210/gcc/testsuite/gcc.dg/20011119-1.c	2004-09-27 08:45:10.000000000 -0700
@@ -1,5 +1,6 @@
 /* Test for reload failing to eliminate from argp to sp.  */
 /* { dg-do run { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" } */
 /* { dg-options "-O2 -fomit-frame-pointer" } */
 
 static int ustrsize (const char *s);
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20020108-1.c gcc-sol210/gcc/testsuite/gcc.dg/20020108-1.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20020108-1.c	2003-02-22 19:10:03.000000000 -0800
+++ gcc-sol210/gcc/testsuite/gcc.dg/20020108-1.c	2004-09-27 08:45:10.000000000 -0700
@@ -6,6 +6,7 @@
 /* { dg-do compile } */
 /* { dg-options "-O2" } */
 /* { dg-options "-O2 -mtune=i686" { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" { target i?86-*-* } } */
 
 void
 foo (unsigned short *cp)
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20020122-2.c gcc-sol210/gcc/testsuite/gcc.dg/20020122-2.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20020122-2.c	2002-01-22 13:21:42.000000000 -0800
+++ gcc-sol210/gcc/testsuite/gcc.dg/20020122-2.c	2004-09-27 08:45:10.000000000 -0700
@@ -4,6 +4,7 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -fprefetch-loop-arrays -w" } */
 /* { dg-options "-O2 -fprefetch-loop-arrays -march=athlon" { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" { target i?86-*-* } } */
 
 extern int access( char* );
 extern int a();
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20020122-3.c gcc-sol210/gcc/testsuite/gcc.dg/20020122-3.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20020122-3.c	2003-02-22 19:10:03.000000000 -0800
+++ gcc-sol210/gcc/testsuite/gcc.dg/20020122-3.c	2004-09-27 08:45:10.000000000 -0700
@@ -5,6 +5,7 @@
 /* { dg-do compile } */
 /* { dg-options "-Os -fprefetch-loop-arrays -w" } */
 /* { dg-options "-Os -fprefetch-loop-arrays -mtune=pentium3 -w" { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" { target i?86-*-* } } */
 
 int foo (int *p, int n)
 {
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20020201-3.c gcc-sol210/gcc/testsuite/gcc.dg/20020201-3.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20020201-3.c	2002-02-02 01:22:00.000000000 -0800
+++ gcc-sol210/gcc/testsuite/gcc.dg/20020201-3.c	2004-09-27 08:45:10.000000000 -0700
@@ -1,6 +1,7 @@
 /* This testcase ICEd because a SFmode variable was given a MMX register
    for which there is no movsf exists.  */
 /* { dg-do compile { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" } */
 /* { dg-options "-O2 -march=i686 -mmmx -fno-strict-aliasing" } */
 
 struct A { unsigned int a, b; };
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20020206-1.c gcc-sol210/gcc/testsuite/gcc.dg/20020206-1.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20020206-1.c	2003-02-22 19:10:03.000000000 -0800
+++ gcc-sol210/gcc/testsuite/gcc.dg/20020206-1.c	2004-09-27 08:45:10.000000000 -0700
@@ -5,6 +5,7 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -fprefetch-loop-arrays -w" } */
 /* { dg-options "-O2 -fprefetch-loop-arrays -mtune=pentium3 -w" { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" { target i?86-*-* } } */
 
 struct reload
 {
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20020218-1.c gcc-sol210/gcc/testsuite/gcc.dg/20020218-1.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20020218-1.c	2002-01-21 07:53:31.000000000 -0800
+++ gcc-sol210/gcc/testsuite/gcc.dg/20020218-1.c	2004-09-27 08:45:10.000000000 -0700
@@ -1,5 +1,6 @@
 /* Verify that X86-64 only SSE registers aren't restored on IA-32.  */
 /* { dg-do compile { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" } */
 /* { dg-options "-O2 -msse" } */
 /* { dg-final { scan-assembler-not "xmm8" } } */
 
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20020310-1.c gcc-sol210/gcc/testsuite/gcc.dg/20020310-1.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20020310-1.c	2003-02-22 19:10:03.000000000 -0800
+++ gcc-sol210/gcc/testsuite/gcc.dg/20020310-1.c	2004-09-27 08:45:10.000000000 -0700
@@ -3,6 +3,7 @@
 /* { dg-do run } */
 /* { dg-options "-O2" } */
 /* { dg-options "-O2 -mtune=i586" { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" { target i?86-*-* } } */
 
 struct A
 {
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20020411-1.c gcc-sol210/gcc/testsuite/gcc.dg/20020411-1.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20020411-1.c	2002-10-06 21:38:56.000000000 -0700
+++ gcc-sol210/gcc/testsuite/gcc.dg/20020411-1.c	2004-09-27 08:45:10.000000000 -0700
@@ -4,6 +4,7 @@
 /* { dg-do compile } */
 /* { dg-options "-O2" } */
 /* { dg-options "-O2 -march=i686" { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" { target i?86-*-* } } */
 
 #if __INT_MAX__ > 32767
 
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20020418-2.c gcc-sol210/gcc/testsuite/gcc.dg/20020418-2.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20020418-2.c	2002-04-18 13:10:48.000000000 -0700
+++ gcc-sol210/gcc/testsuite/gcc.dg/20020418-2.c	2004-09-27 08:45:10.000000000 -0700
@@ -2,6 +2,7 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -funroll-all-loops" } */
 /* { dg-options "-O2 -funroll-all-loops -march=pentium3" { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" { target i?86-*-* } } */
 
 void bar (float);
 
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20020426-1.c gcc-sol210/gcc/testsuite/gcc.dg/20020426-1.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20020426-1.c	2002-04-26 14:28:46.000000000 -0700
+++ gcc-sol210/gcc/testsuite/gcc.dg/20020426-1.c	2004-09-27 08:45:10.000000000 -0700
@@ -1,5 +1,6 @@
 /* { dg-do compile { target i?86-*-* } } */
 /* { dg-options "-msoft-float -mfp-ret-in-387" } */
+/* { dg-forbid-option "-m64" } */
 
 void f() {
   __builtin_apply(0, 0, 0);
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20020426-2.c gcc-sol210/gcc/testsuite/gcc.dg/20020426-2.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20020426-2.c	2004-09-03 11:09:33.000000000 -0700
+++ gcc-sol210/gcc/testsuite/gcc.dg/20020426-2.c	2004-09-27 08:45:11.000000000 -0700
@@ -3,6 +3,7 @@
 /* { dg-do run } */
 /* { dg-options "-O2" } */
 /* { dg-options "-O2 -frename-registers -fomit-frame-pointer -fPIC -mtune=i686" { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" { target i?86-*-* } } */
 /* { dg-bogus "\[Uu\]nresolved symbol .(_GLOBAL_OFFSET_TABLE_|\[_.A-Za-z\]\[_.0-9A-Za-z\]*@(PLT|GOT|GOTOFF))" "PIC unsupported" { xfail *-*-netware* } 0 } */
 
 extern void exit (int);
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20020517-1.c gcc-sol210/gcc/testsuite/gcc.dg/20020517-1.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20020517-1.c	2003-02-22 19:10:03.000000000 -0800
+++ gcc-sol210/gcc/testsuite/gcc.dg/20020517-1.c	2004-09-27 08:45:11.000000000 -0700
@@ -3,6 +3,7 @@
 /* { dg-do run } */
 /* { dg-options "-O2" } */
 /* { dg-options "-O2 -mtune=i686" { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" { target i?86-*-* } } */
 
 #include <limits.h>
 
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20020523-1.c gcc-sol210/gcc/testsuite/gcc.dg/20020523-1.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20020523-1.c	2002-05-23 02:29:29.000000000 -0700
+++ gcc-sol210/gcc/testsuite/gcc.dg/20020523-1.c	2004-09-27 08:45:11.000000000 -0700
@@ -2,6 +2,7 @@
    This testcase was miscompiled because sse_mov?fcc_const0*
    patterns were missing earlyclobber.  */
 /* { dg-do run { target i386-*-* } } */
+/* { dg-forbid-option "-m64" } */
 /* { dg-options "-march=pentium3 -msse -ffast-math -O2" } */
 
 extern void abort (void);
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20020523-2.c gcc-sol210/gcc/testsuite/gcc.dg/20020523-2.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20020523-2.c	2004-01-08 17:01:50.000000000 -0800
+++ gcc-sol210/gcc/testsuite/gcc.dg/20020523-2.c	2004-09-27 08:45:11.000000000 -0700
@@ -2,6 +2,7 @@
    This testcase was miscompiled because sse_mov?fcc_const0*
    patterns were missing earlyclobber.  */
 /* { dg-do run { target i386-*-* } } */
+/* { dg-forbid-option "-m64" } */
 /* { dg-options "-march=pentium3 -msse -ffast-math -O2" } */
 
 #include "i386-cpuid.h"
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20020729-1.c gcc-sol210/gcc/testsuite/gcc.dg/20020729-1.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20020729-1.c	2003-05-16 12:35:43.000000000 -0700
+++ gcc-sol210/gcc/testsuite/gcc.dg/20020729-1.c	2004-09-27 08:45:11.000000000 -0700
@@ -1,4 +1,5 @@
 /* { dg-do compile { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" } */
 /* { dg-options "-O2 -march=k6" } */
 
 static inline void *
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20030204-1.c gcc-sol210/gcc/testsuite/gcc.dg/20030204-1.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20030204-1.c	2003-02-05 03:29:15.000000000 -0800
+++ gcc-sol210/gcc/testsuite/gcc.dg/20030204-1.c	2004-09-27 08:45:11.000000000 -0700
@@ -2,6 +2,7 @@
 /* { dg-do compile } */
 /* { dg-options "-O -ffast-math -funroll-loops" } */
 /* { dg-options "-march=pentium3 -O -ffast-math -funroll-loops" { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" { target i?86-*-* } } */
 
 float foo (float *a, int i)
 {
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20030826-2.c gcc-sol210/gcc/testsuite/gcc.dg/20030826-2.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20030826-2.c	2003-08-27 03:52:09.000000000 -0700
+++ gcc-sol210/gcc/testsuite/gcc.dg/20030826-2.c	2004-09-27 08:45:11.000000000 -0700
@@ -1,6 +1,7 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -fomit-frame-pointer" } */
 /* { dg-options "-O2 -fomit-frame-pointer -march=i386" { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" { target i?86-*-* } } */
 
 extern void abort (void);
 extern void exit (int);
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20030926-1.c gcc-sol210/gcc/testsuite/gcc.dg/20030926-1.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20030926-1.c	2004-08-03 01:22:21.000000000 -0700
+++ gcc-sol210/gcc/testsuite/gcc.dg/20030926-1.c	2004-09-27 08:45:11.000000000 -0700
@@ -2,6 +2,7 @@
 /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
 /* { dg-options "-O2 -minline-all-stringops" } */
 /* { dg-options "-O2 -minline-all-stringops -march=pentium4" { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" { target i?86-*-* } } */
 
 extern void *memcpy (void *, const void *, __SIZE_TYPE__);
 extern __SIZE_TYPE__ strlen (const char *);
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20031202-1.c gcc-sol210/gcc/testsuite/gcc.dg/20031202-1.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/20031202-1.c	2003-12-03 14:40:58.000000000 -0800
+++ gcc-sol210/gcc/testsuite/gcc.dg/20031202-1.c	2004-09-27 08:45:11.000000000 -0700
@@ -1,6 +1,7 @@
 /* { dg-do run } */
 /* { dg-options "-O2" } */
 /* { dg-options "-O2 -mtune=i686" { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" { target i?86-*-* } } */
 
 extern void abort (void);
 extern void exit (int);
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/980312-1.c gcc-sol210/gcc/testsuite/gcc.dg/980312-1.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/980312-1.c	1998-12-16 14:23:06.000000000 -0800
+++ gcc-sol210/gcc/testsuite/gcc.dg/980312-1.c	2004-09-27 08:45:11.000000000 -0700
@@ -1,4 +1,5 @@
 /* { dg-do link { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" } */
 /* { dg-options "-O2 -march=pentiumpro" } */
 
 extern __inline  double
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/980313-1.c gcc-sol210/gcc/testsuite/gcc.dg/980313-1.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/980313-1.c	1998-12-16 14:23:07.000000000 -0800
+++ gcc-sol210/gcc/testsuite/gcc.dg/980313-1.c	2004-09-27 08:45:11.000000000 -0700
@@ -1,4 +1,5 @@
 /* { dg-do link { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" } */
 /* { dg-options "-O2 -march=pentiumpro" } */
 
 extern __inline  double
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/990117-1.c gcc-sol210/gcc/testsuite/gcc.dg/990117-1.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/990117-1.c	2002-02-06 12:40:17.000000000 -0800
+++ gcc-sol210/gcc/testsuite/gcc.dg/990117-1.c	2004-09-27 08:45:12.000000000 -0700
@@ -1,4 +1,5 @@
 /* { dg-do compile { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" } */
 /* { dg-options "-O2 -march=pentiumpro" } */
 
 extern __inline  double
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/990424-1.c gcc-sol210/gcc/testsuite/gcc.dg/990424-1.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/990424-1.c	2000-05-23 12:30:44.000000000 -0700
+++ gcc-sol210/gcc/testsuite/gcc.dg/990424-1.c	2004-09-27 08:45:12.000000000 -0700
@@ -2,6 +2,7 @@
    with stdcall functions.  */
 
 /* { dg-do run { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" } */
 /* { dg-options -mpreferred-stack-boundary=4 } */
 
 void __attribute__((stdcall)) foo(int a, int b, int c);
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/990524-1.c gcc-sol210/gcc/testsuite/gcc.dg/990524-1.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/990524-1.c	2002-02-06 12:40:17.000000000 -0800
+++ gcc-sol210/gcc/testsuite/gcc.dg/990524-1.c	2004-09-27 08:45:12.000000000 -0700
@@ -1,4 +1,5 @@
 /* { dg-do compile { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" } */
 /* { dg-options "-O2 -march=pentiumpro" } */
 
 typedef struct t_anim_info {
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/991230-1.c gcc-sol210/gcc/testsuite/gcc.dg/991230-1.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/991230-1.c	2003-02-22 19:10:03.000000000 -0800
+++ gcc-sol210/gcc/testsuite/gcc.dg/991230-1.c	2004-09-27 08:45:12.000000000 -0700
@@ -1,4 +1,5 @@
 /* { dg-do run { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" } */
 /* { dg-options "-O -ffast-math -mtune=i486" } */
 
 /* Test that floating point greater-than tests are compiled correctly with
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/i386-387-1.c gcc-sol210/gcc/testsuite/gcc.dg/i386-387-1.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/i386-387-1.c	2004-05-06 22:55:06.000000000 -0700
+++ gcc-sol210/gcc/testsuite/gcc.dg/i386-387-1.c	2004-09-27 08:45:12.000000000 -0700
@@ -1,5 +1,6 @@
 /* Verify that -mno-fancy-math-387 works.  */
 /* { dg-do compile { target "i?86-*-*" } } */
+/* { dg-forbid-option "-m64" } */
 /* { dg-options "-O -ffast-math -mfpmath=387 -mno-fancy-math-387 -march=i386" } */
 /* { dg-final { scan-assembler "call\t_?sin" } } */
 /* { dg-final { scan-assembler "call\t_?cos" } } */
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/i386-387-2.c gcc-sol210/gcc/testsuite/gcc.dg/i386-387-2.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/i386-387-2.c	2004-05-06 22:55:06.000000000 -0700
+++ gcc-sol210/gcc/testsuite/gcc.dg/i386-387-2.c	2004-09-27 08:45:12.000000000 -0700
@@ -1,5 +1,6 @@
 /* Verify that -march overrides -mno-fancy-math-387.  */
 /* { dg-do compile { target "i?86-*-*" } } */
+/* { dg-forbid-option "-m64" } */
 /* { dg-options "-O -ffast-math -mfpmath=387 -march=i686 -mno-fancy-math-387" } */
 /* { dg-final { scan-assembler "fsin" } } */
 /* { dg-final { scan-assembler "fcos" } } */
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/i386-387-3.c gcc-sol210/gcc/testsuite/gcc.dg/i386-387-3.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/i386-387-3.c	2003-02-15 17:35:38.000000000 -0800
+++ gcc-sol210/gcc/testsuite/gcc.dg/i386-387-3.c	2004-09-27 08:45:12.000000000 -0700
@@ -1,5 +1,6 @@
 /* Verify that 387 mathematical constants are recognized.  */
 /* { dg-do compile { target "i?86-*-*" } } */
+/* { dg-forbid-option "-m64" } */
 /* { dg-options "-O2 -march=i686" } */
 /* { dg-final { scan-assembler "fldpi" } } */
 
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/i386-387-4.c gcc-sol210/gcc/testsuite/gcc.dg/i386-387-4.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/i386-387-4.c	2003-06-04 05:20:40.000000000 -0700
+++ gcc-sol210/gcc/testsuite/gcc.dg/i386-387-4.c	2004-09-27 08:45:12.000000000 -0700
@@ -1,4 +1,5 @@
 /* { dg-do compile { target "i?86-*-*" } } */
+/* { dg-forbid-option "-m64" } */
 /* { dg-options "-O2 -march=i686" } */
 /* { dg-final { scan-assembler "fldpi" } } */
 
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/i386-387-5.c gcc-sol210/gcc/testsuite/gcc.dg/i386-387-5.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/i386-387-5.c	2004-05-06 22:55:06.000000000 -0700
+++ gcc-sol210/gcc/testsuite/gcc.dg/i386-387-5.c	2004-09-27 08:45:12.000000000 -0700
@@ -1,5 +1,6 @@
 /* Verify that -mno-fancy-math-387 works.  */
 /* { dg-do compile { target "i?86-*-*" } } */
+/* { dg-forbid-option "-m64" } */
 /* { dg-options "-O -ffast-math -mfpmath=387 -mno-fancy-math-387 -march=i386" } */
 /* { dg-final { scan-assembler "call\t_?atan" } } */
 /* { dg-final { scan-assembler "call\t_?log1p" } } */
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/i386-387-6.c gcc-sol210/gcc/testsuite/gcc.dg/i386-387-6.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/i386-387-6.c	2004-05-06 22:55:06.000000000 -0700
+++ gcc-sol210/gcc/testsuite/gcc.dg/i386-387-6.c	2004-09-27 08:45:12.000000000 -0700
@@ -1,5 +1,6 @@
 /* Verify that -march overrides -mno-fancy-math-387.  */
 /* { dg-do compile { target "i?86-*-*" } } */
+/* { dg-forbid-option "-m64" } */
 /* { dg-options "-O -ffast-math -mfpmath=387 -march=i686 -mno-fancy-math-387" } */
 /* { dg-final { scan-assembler "fpatan" } } */
 /* { dg-final { scan-assembler "fyl2xp1" } } */
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/i386-asm-1.c gcc-sol210/gcc/testsuite/gcc.dg/i386-asm-1.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/i386-asm-1.c	2004-08-03 01:22:21.000000000 -0700
+++ gcc-sol210/gcc/testsuite/gcc.dg/i386-asm-1.c	2004-09-27 08:45:12.000000000 -0700
@@ -1,5 +1,6 @@
 /* PR inline-asm/11676 */
 /* { dg-do run { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" } */
 /* { dg-options "-O2" } */
 
 extern void abort (void);
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/i386-bitfield1.c gcc-sol210/gcc/testsuite/gcc.dg/i386-bitfield1.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/i386-bitfield1.c	2004-06-09 18:48:50.000000000 -0700
+++ gcc-sol210/gcc/testsuite/gcc.dg/i386-bitfield1.c	2004-09-27 08:45:12.000000000 -0700
@@ -1,5 +1,6 @@
 // Test for bitfield alignment in structs on IA-32
 // { dg-do run { target i?86-*-* } }
+/* { dg-forbid-option "-m64" } */
 // { dg-options "-O2" }
 // { dg-options "-mno-align-double -mno-ms-bitfields" { target i?86-*-interix* i?86-*-cygwin* i?86-*-mingw*} }
 
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/i386-bitfield2.c gcc-sol210/gcc/testsuite/gcc.dg/i386-bitfield2.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/i386-bitfield2.c	2004-06-09 18:48:50.000000000 -0700
+++ gcc-sol210/gcc/testsuite/gcc.dg/i386-bitfield2.c	2004-09-27 08:45:12.000000000 -0700
@@ -1,5 +1,6 @@
 // Test for bitfield alignment in structs on IA-32
 // { dg-do run { target i?86-*-* } }
+/* { dg-forbid-option "-m64" } */
 // { dg-options "-O2" }
 // { dg-options "-mno-align-double -mno-ms-bitfields" { target i?86-*-interix* i?86-*-cygwin* i?86-*-mingw* } }
 
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/i386-loop-1.c gcc-sol210/gcc/testsuite/gcc.dg/i386-loop-1.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/i386-loop-1.c	2003-03-09 07:40:00.000000000 -0800
+++ gcc-sol210/gcc/testsuite/gcc.dg/i386-loop-1.c	2004-09-27 08:45:12.000000000 -0700
@@ -1,5 +1,6 @@
 /* PR optimization/9888 */
 /* { dg-do run { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" } */
 /* { dg-options "-mtune=k6 -O3" } */
 
 /* Verify that GCC doesn't emit out of range 'loop' instructions.  */
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/i386-loop-2.c gcc-sol210/gcc/testsuite/gcc.dg/i386-loop-2.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/i386-loop-2.c	2003-03-12 01:21:47.000000000 -0800
+++ gcc-sol210/gcc/testsuite/gcc.dg/i386-loop-2.c	2004-09-27 08:45:12.000000000 -0700
@@ -1,6 +1,7 @@
 /* PR optimization/9888 */
 /* Originator: Jim Bray <jb@as220.org> */
 /* { dg-do run { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" } */
 /* { dg-options "-mtune=k6 -Os" } */
 
 enum reload_type
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/i386-loop-3.c gcc-sol210/gcc/testsuite/gcc.dg/i386-loop-3.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/i386-loop-3.c	2004-08-03 01:22:21.000000000 -0700
+++ gcc-sol210/gcc/testsuite/gcc.dg/i386-loop-3.c	2004-09-27 08:45:12.000000000 -0700
@@ -2,6 +2,7 @@
 /* Originator: Tim McGrath <misty-@charter.net> */
 /* Testcase contributed by Eric Botcazou <ebotcazou@libertysurf.fr> */
 /* { dg-do run { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" } */
 /* { dg-options "-mtune=k6 -O3 -ffast-math -funroll-loops" } */
 
 extern void *memset (void *, int, __SIZE_TYPE__);
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/i386-pentium4-not-mull.c gcc-sol210/gcc/testsuite/gcc.dg/i386-pentium4-not-mull.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/i386-pentium4-not-mull.c	2003-11-11 22:44:46.000000000 -0800
+++ gcc-sol210/gcc/testsuite/gcc.dg/i386-pentium4-not-mull.c	2004-09-27 08:45:12.000000000 -0700
@@ -1,5 +1,6 @@
 /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
 /* { dg-options "-O2 -march=pentium4" { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" { target i?86-*-* } } */
 /* { dg-options "-O2 -march=pentium4 -m32" { target x86_64-*-* } } */
 /* { dg-final { scan-assembler-not "imull" } } */
 
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/i386-pic-1.c gcc-sol210/gcc/testsuite/gcc.dg/i386-pic-1.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/i386-pic-1.c	2002-12-19 09:06:45.000000000 -0800
+++ gcc-sol210/gcc/testsuite/gcc.dg/i386-pic-1.c	2004-09-27 08:45:12.000000000 -0700
@@ -1,5 +1,6 @@
 /* PR target/8340 */
 /* { dg-do compile { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" } */
 /* { dg-options "-fPIC" } */
 
 int foo ()
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/i386-regparm.c gcc-sol210/gcc/testsuite/gcc.dg/i386-regparm.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/i386-regparm.c	2004-02-24 16:48:23.000000000 -0800
+++ gcc-sol210/gcc/testsuite/gcc.dg/i386-regparm.c	2004-09-27 08:45:12.000000000 -0700
@@ -1,4 +1,5 @@
 /* { dg-do compile { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" } */
 /* { dg-options "-W -Wall" } */
 
 /* Verify that GCC correctly detects non-matching regparm attributes.  */
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/i386-signbit-1.c gcc-sol210/gcc/testsuite/gcc.dg/i386-signbit-1.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/i386-signbit-1.c	2003-03-25 02:18:47.000000000 -0800
+++ gcc-sol210/gcc/testsuite/gcc.dg/i386-signbit-1.c	2004-09-27 08:45:12.000000000 -0700
@@ -1,5 +1,6 @@
 /* PR optimization/8746 */
 /* { dg-do run { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" } */
 /* { dg-options "-O1 -mtune=i586" } */
 
 extern void abort (void);
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/i386-signbit-2.c gcc-sol210/gcc/testsuite/gcc.dg/i386-signbit-2.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/i386-signbit-2.c	2003-03-25 02:18:47.000000000 -0800
+++ gcc-sol210/gcc/testsuite/gcc.dg/i386-signbit-2.c	2004-09-27 08:45:12.000000000 -0700
@@ -1,5 +1,6 @@
 /* PR optimization/8746 */
 /* { dg-do run { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" } */
 /* { dg-options "-O1 -mtune=i586" } */
 
 extern void abort (void);
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/i386-signbit-3.c gcc-sol210/gcc/testsuite/gcc.dg/i386-signbit-3.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/i386-signbit-3.c	2003-03-25 02:18:47.000000000 -0800
+++ gcc-sol210/gcc/testsuite/gcc.dg/i386-signbit-3.c	2004-09-27 08:45:12.000000000 -0700
@@ -1,5 +1,6 @@
 /* PR optimization/8746 */
 /* { dg-do run { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" } */
 /* { dg-options "-O1 -mtune=i586" } */
 
 extern void abort (void);
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/i386-sse-5.c gcc-sol210/gcc/testsuite/gcc.dg/i386-sse-5.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/i386-sse-5.c	2004-03-16 12:37:29.000000000 -0800
+++ gcc-sol210/gcc/testsuite/gcc.dg/i386-sse-5.c	2004-09-27 08:45:13.000000000 -0700
@@ -1,4 +1,5 @@
 /* { dg-do compile { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" } */
 /* { dg-options "-Winline -O2 -march=i386" } */
 typedef double v2df __attribute__ ((vector_size (16)));
 v2df p;
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/i386-sse-8.c gcc-sol210/gcc/testsuite/gcc.dg/i386-sse-8.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/i386-sse-8.c	2004-04-06 13:29:09.000000000 -0700
+++ gcc-sol210/gcc/testsuite/gcc.dg/i386-sse-8.c	2004-09-27 08:45:13.000000000 -0700
@@ -4,6 +4,7 @@
 /* { dg-do compile } */
 /* { dg-options "" } */
 /* { dg-options "-march=pentium3" { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" { target i?86-*-* } } */
 
 int main() 
 { 
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/i386-unroll-1.c gcc-sol210/gcc/testsuite/gcc.dg/i386-unroll-1.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/i386-unroll-1.c	2003-02-22 19:10:03.000000000 -0800
+++ gcc-sol210/gcc/testsuite/gcc.dg/i386-unroll-1.c	2004-09-27 08:45:13.000000000 -0700
@@ -1,5 +1,6 @@
 /* PR optimization/8599 */
 /* { dg-do run { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" } */
 /* { dg-options "-mtune=k6 -O2 -funroll-loops" } */
 
 extern void exit (int);
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/tls/opt-1.c gcc-sol210/gcc/testsuite/gcc.dg/tls/opt-1.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/tls/opt-1.c	2003-05-16 12:35:42.000000000 -0700
+++ gcc-sol210/gcc/testsuite/gcc.dg/tls/opt-1.c	2004-09-27 08:45:14.000000000 -0700
@@ -1,6 +1,7 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -fPIC" } */
 /* { dg-options "-O2 -fPIC -mtune=i686" { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" { target i?86-*-* } } */
 
 extern __thread int thr;
 
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/tls/opt-2.c gcc-sol210/gcc/testsuite/gcc.dg/tls/opt-2.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/tls/opt-2.c	2002-08-08 17:01:12.000000000 -0700
+++ gcc-sol210/gcc/testsuite/gcc.dg/tls/opt-2.c	2004-09-27 08:45:14.000000000 -0700
@@ -5,6 +5,7 @@
 /* { dg-do link } */
 /* { dg-options "-O2 -ftls-model=initial-exec" } */
 /* { dg-options "-O2 -ftls-model=initial-exec -march=i686" { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" { target i?86-*-* } } */
 
 __thread int thr;
 
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/unroll-1.c gcc-sol210/gcc/testsuite/gcc.dg/unroll-1.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.dg/unroll-1.c	2003-05-16 12:35:43.000000000 -0700
+++ gcc-sol210/gcc/testsuite/gcc.dg/unroll-1.c	2004-09-27 08:45:13.000000000 -0700
@@ -2,6 +2,7 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -funroll-loops" } */
 /* { dg-options "-mtune=k6 -O2 -funroll-loops" { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" { target i?86-*-* } } */
 
 extern void abort (void);
 
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.misc-tests/i386-pf-3dnow-1.c gcc-sol210/gcc/testsuite/gcc.misc-tests/i386-pf-3dnow-1.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.misc-tests/i386-pf-3dnow-1.c	2004-08-03 01:22:26.000000000 -0700
+++ gcc-sol210/gcc/testsuite/gcc.misc-tests/i386-pf-3dnow-1.c	2004-09-27 08:45:15.000000000 -0700
@@ -2,6 +2,7 @@
    variants that use 3DNow! prefetch instructions.  */
 
 /* { dg-do compile { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" } */
 
 extern void exit (int);
 
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.misc-tests/i386-pf-athlon-1.c gcc-sol210/gcc/testsuite/gcc.misc-tests/i386-pf-athlon-1.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.misc-tests/i386-pf-athlon-1.c	2004-08-03 01:22:26.000000000 -0700
+++ gcc-sol210/gcc/testsuite/gcc.misc-tests/i386-pf-athlon-1.c	2004-09-27 08:45:15.000000000 -0700
@@ -3,6 +3,7 @@
    locality hints.  */
 
 /* { dg-do compile { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" } */
 
 extern void exit (int);
 
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.misc-tests/i386-pf-none-1.c gcc-sol210/gcc/testsuite/gcc.misc-tests/i386-pf-none-1.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.misc-tests/i386-pf-none-1.c	2004-08-03 01:22:26.000000000 -0700
+++ gcc-sol210/gcc/testsuite/gcc.misc-tests/i386-pf-none-1.c	2004-09-27 08:45:15.000000000 -0700
@@ -2,6 +2,7 @@
    that do not support those instructions.  */
 
 /* { dg-do compile { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" } */
 
 extern void exit (int);
 
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.misc-tests/i386-pf-sse-1.c gcc-sol210/gcc/testsuite/gcc.misc-tests/i386-pf-sse-1.c
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/gcc.misc-tests/i386-pf-sse-1.c	2004-08-03 01:22:26.000000000 -0700
+++ gcc-sol210/gcc/testsuite/gcc.misc-tests/i386-pf-sse-1.c	2004-09-27 08:45:15.000000000 -0700
@@ -2,6 +2,7 @@
    variants that use SSE prefetch instructions.  */
 
 /* { dg-do compile { target i?86-*-* } } */
+/* { dg-forbid-option "-m64" } */
 
 extern void exit (int);
 
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/g++.dg/abi/bitfield3.C gcc-sol210/gcc/testsuite/g++.dg/abi/bitfield3.C
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/g++.dg/abi/bitfield3.C	2004-06-15 21:00:31.000000000 -0700
+++ gcc-sol210/gcc/testsuite/g++.dg/abi/bitfield3.C	2004-09-27 08:45:04.000000000 -0700
@@ -4,6 +4,7 @@
 // Cygwin and mingw32 default to MASK_ALIGN_DOUBLE. Override to ensure
 // 4-byte alignment.
 // { dg-options "-mno-align-double" { target i?86-*-cygwin* i?86-*-mingw* } }
+// { dg-forbid-option "-m64" }
 
 struct A
 {
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/g++.dg/abi/bitfield8.C gcc-sol210/gcc/testsuite/g++.dg/abi/bitfield8.C
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/g++.dg/abi/bitfield8.C	2002-09-23 02:22:17.000000000 -0700
+++ gcc-sol210/gcc/testsuite/g++.dg/abi/bitfield8.C	2004-09-27 08:45:04.000000000 -0700
@@ -1,5 +1,6 @@
 // { dg-do run { target i?86-*-* } }
 // { dg-options "-fabi-version=0" }
+// { dg-forbid-option "-m64" }
 
 struct A { 
   virtual void f() {}
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/g++.dg/abi/dtor1.C gcc-sol210/gcc/testsuite/g++.dg/abi/dtor1.C
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/g++.dg/abi/dtor1.C	2002-11-07 13:33:44.000000000 -0800
+++ gcc-sol210/gcc/testsuite/g++.dg/abi/dtor1.C	2004-09-27 08:45:04.000000000 -0700
@@ -1,4 +1,5 @@
 // { dg-do compile { target i?86-*-* } }
+// { dg-forbid-option "-m64" }
 // { dg-options "-fabi-version=0" }
 
 struct A {
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/g++.dg/abi/empty10.C gcc-sol210/gcc/testsuite/g++.dg/abi/empty10.C
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/g++.dg/abi/empty10.C	2002-11-26 11:37:45.000000000 -0800
+++ gcc-sol210/gcc/testsuite/g++.dg/abi/empty10.C	2004-09-27 08:45:04.000000000 -0700
@@ -1,4 +1,5 @@
 // { dg-do run { target i?86-*-* } }
+// { dg-forbid-option "-m64" }
 // { dg-options "-fabi-version=0 -w" }
 
 struct E {};
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/g++.dg/abi/empty7.C gcc-sol210/gcc/testsuite/g++.dg/abi/empty7.C
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/g++.dg/abi/empty7.C	2002-09-30 09:52:19.000000000 -0700
+++ gcc-sol210/gcc/testsuite/g++.dg/abi/empty7.C	2004-09-27 08:45:04.000000000 -0700
@@ -1,4 +1,5 @@
 // { dg-do run { target i?86-*-* } }
+// { dg-forbid-option "-m64" }
 // { dg-options "-fabi-version=0" }
 
 struct S1 {};
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/g++.dg/abi/empty9.C gcc-sol210/gcc/testsuite/g++.dg/abi/empty9.C
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/g++.dg/abi/empty9.C	2002-10-24 23:01:55.000000000 -0700
+++ gcc-sol210/gcc/testsuite/g++.dg/abi/empty9.C	2004-09-27 08:45:04.000000000 -0700
@@ -1,4 +1,5 @@
 // { dg-do run { target i?86-*-* } }
+// { dg-forbid-option "-m64" }
 // { dg-options "-w -fabi-version=0" }
 
 struct E1 {};
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/g++.dg/abi/layout3.C gcc-sol210/gcc/testsuite/g++.dg/abi/layout3.C
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/g++.dg/abi/layout3.C	2003-03-05 12:52:53.000000000 -0800
+++ gcc-sol210/gcc/testsuite/g++.dg/abi/layout3.C	2004-09-27 08:45:04.000000000 -0700
@@ -1,4 +1,5 @@
 // { dg-do run { target i?86-*-* } }
+// { dg-forbid-option "-m64" }
 // { dg-options "-fabi-version=0 -w" }
 
 struct S {
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/g++.dg/abi/layout4.C gcc-sol210/gcc/testsuite/g++.dg/abi/layout4.C
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/g++.dg/abi/layout4.C	2003-09-03 15:00:42.000000000 -0700
+++ gcc-sol210/gcc/testsuite/g++.dg/abi/layout4.C	2004-09-27 08:45:04.000000000 -0700
@@ -1,4 +1,5 @@
 // { dg-do run { target i?86-*-* } }
+// { dg-forbid-option "-m64" }
 // { dg-options "-fabi-version=1" }
 
 struct C4
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/g++.dg/abi/thunk1.C gcc-sol210/gcc/testsuite/g++.dg/abi/thunk1.C
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/g++.dg/abi/thunk1.C	2002-11-03 17:45:58.000000000 -0800
+++ gcc-sol210/gcc/testsuite/g++.dg/abi/thunk1.C	2004-09-27 08:45:04.000000000 -0700
@@ -1,4 +1,5 @@
 // { dg-do compile { target i?86-*-* } }
+// { dg-forbid-option "-m64" }
 
 struct A {
   virtual void f ();
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/g++.dg/abi/thunk2.C gcc-sol210/gcc/testsuite/g++.dg/abi/thunk2.C
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/g++.dg/abi/thunk2.C	2002-11-03 17:45:58.000000000 -0800
+++ gcc-sol210/gcc/testsuite/g++.dg/abi/thunk2.C	2004-09-27 08:45:04.000000000 -0700
@@ -1,4 +1,5 @@
 // { dg-do compile { target i?86-*-* } }
+// { dg-forbid-option "-m64" }
 // { dg-options -w }
 
 struct A {
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/g++.dg/abi/vbase11.C gcc-sol210/gcc/testsuite/g++.dg/abi/vbase11.C
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/g++.dg/abi/vbase11.C	2002-09-23 02:22:17.000000000 -0700
+++ gcc-sol210/gcc/testsuite/g++.dg/abi/vbase11.C	2004-09-27 08:45:04.000000000 -0700
@@ -1,4 +1,5 @@
 // { dg-do run { target i?86-*-* } }
+// { dg-forbid-option "-m64" }
 // { dg-options "-fabi-version=0" }
 
 struct A { virtual void f(); char c1; };
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/g++.dg/abi/vthunk2.C gcc-sol210/gcc/testsuite/g++.dg/abi/vthunk2.C
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/g++.dg/abi/vthunk2.C	2002-10-25 12:39:47.000000000 -0700
+++ gcc-sol210/gcc/testsuite/g++.dg/abi/vthunk2.C	2004-09-27 08:45:05.000000000 -0700
@@ -1,4 +1,5 @@
 // { dg-do compile { target i?86-*-* } }
+// { dg-forbid-option "-m64" }
 
 struct c0 {
   virtual void f ();
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/g++.dg/abi/vthunk3.C gcc-sol210/gcc/testsuite/g++.dg/abi/vthunk3.C
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/g++.dg/abi/vthunk3.C	2002-11-10 18:20:37.000000000 -0800
+++ gcc-sol210/gcc/testsuite/g++.dg/abi/vthunk3.C	2004-09-27 08:45:05.000000000 -0700
@@ -1,4 +1,5 @@
 // { dg-do compile { target i?86-*-* } }
+// { dg-forbid-option "-m64" }
 // { dg-options "-fabi-version=0" }
 
 struct A {
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/g++.dg/ext/attrib8.C gcc-sol210/gcc/testsuite/g++.dg/ext/attrib8.C
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/g++.dg/ext/attrib8.C	2003-10-09 11:08:50.000000000 -0700
+++ gcc-sol210/gcc/testsuite/g++.dg/ext/attrib8.C	2004-09-27 08:45:05.000000000 -0700
@@ -1,5 +1,6 @@
 // PR 8656
 // { dg-do compile { target i?86-*-* } }
+// { dg-forbid-option "-m64" }
 
 extern int * (__attribute__((stdcall)) *fooPtr)( void);
 int * __attribute__((stdcall)) myFn01( void) { return 0; }
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/g++.dg/opt/longbranch2.C gcc-sol210/gcc/testsuite/g++.dg/opt/longbranch2.C
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/g++.dg/opt/longbranch2.C	2003-09-07 23:41:49.000000000 -0700
+++ gcc-sol210/gcc/testsuite/g++.dg/opt/longbranch2.C	2004-09-27 08:45:06.000000000 -0700
@@ -3,6 +3,7 @@
 
 // { dg-do compile }
 // { dg-options "-O3 -funroll-loops -mtune=k6 -fomit-frame-pointer" { target i?86-*-*  } }
+// { dg-forbid-option "-m64" { target i?86-*-* } }
 
 // This used to fail to assemble because of an out-of-range 'loop' instructions.
 
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/g++.dg/opt/reg-stack4.C gcc-sol210/gcc/testsuite/g++.dg/opt/reg-stack4.C
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/g++.dg/opt/reg-stack4.C	2003-11-26 22:36:52.000000000 -0800
+++ gcc-sol210/gcc/testsuite/g++.dg/opt/reg-stack4.C	2004-09-27 08:45:07.000000000 -0700
@@ -6,6 +6,7 @@
 
 // { dg-do compile }
 // { dg-options "-mtune=i586 -O2" { target i?86-*-* } }
+// { dg-forbid-option "-m64" { target i?86-*-* } }
 
 struct array {
   double data;
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/g++.old-deja/g++.ext/attrib1.C gcc-sol210/gcc/testsuite/g++.old-deja/g++.ext/attrib1.C
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/g++.old-deja/g++.ext/attrib1.C	2003-04-30 19:02:39.000000000 -0700
+++ gcc-sol210/gcc/testsuite/g++.old-deja/g++.ext/attrib1.C	2004-09-27 08:45:08.000000000 -0700
@@ -1,4 +1,5 @@
 // { dg-do assemble { target i?86-*-* } }
+// { dg-forbid-option "-m64" }
 // Test for using prefix attributes in a parameter decl.
 // Contributed by Jason Merrill <jason@cygnus.com>
 
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/g++.old-deja/g++.ext/attrib2.C gcc-sol210/gcc/testsuite/g++.old-deja/g++.ext/attrib2.C
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/g++.old-deja/g++.ext/attrib2.C	2003-04-30 19:02:39.000000000 -0700
+++ gcc-sol210/gcc/testsuite/g++.old-deja/g++.ext/attrib2.C	2004-09-27 08:45:08.000000000 -0700
@@ -1,4 +1,5 @@
 // { dg-do run { target i?86-*-* } }
+// { dg-forbid-option "-m64" }
 // Test that stdcall doesn't prevent us from using op delete.
 // Contributed by Jason Merrill <jason@cygnus.com>
 
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/g++.old-deja/g++.ext/attrib3.C gcc-sol210/gcc/testsuite/g++.old-deja/g++.ext/attrib3.C
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/g++.old-deja/g++.ext/attrib3.C	2003-04-30 19:02:39.000000000 -0700
+++ gcc-sol210/gcc/testsuite/g++.old-deja/g++.ext/attrib3.C	2004-09-27 08:45:08.000000000 -0700
@@ -1,4 +1,5 @@
 // { dg-do run { target i?86-*-* } }
+// { dg-forbid-option "-m64" }
 // Test for proper handling of attributes in template instantiation.
 // Contributed by Jason Merrill <jason@cygnus.com>
 
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/g++.old-deja/g++.other/store-expr1.C gcc-sol210/gcc/testsuite/g++.old-deja/g++.other/store-expr1.C
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/g++.old-deja/g++.other/store-expr1.C	2004-09-03 11:09:31.000000000 -0700
+++ gcc-sol210/gcc/testsuite/g++.old-deja/g++.other/store-expr1.C	2004-09-27 08:45:08.000000000 -0700
@@ -1,4 +1,5 @@
 // { dg-do run { target i?86-*-* } }
+// { dg-forbid-option "-m64" }
 // { dg-options "-mtune=i686 -O2 -fpic" }
 // { dg-bogus "\[Uu\]nresolved symbol .(_GLOBAL_OFFSET_TABLE_|\[_.A-Za-z\]\[_.0-9A-Za-z\]*@(PLT|GOT|GOTOFF))" "PIC unsupported" { xfail *-*-netware* } 0 }
 class G {};
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/g++.old-deja/g++.other/store-expr2.C gcc-sol210/gcc/testsuite/g++.old-deja/g++.other/store-expr2.C
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/g++.old-deja/g++.other/store-expr2.C	2003-04-30 19:02:51.000000000 -0700
+++ gcc-sol210/gcc/testsuite/g++.old-deja/g++.other/store-expr2.C	2004-09-27 08:45:09.000000000 -0700
@@ -1,4 +1,5 @@
 // { dg-do run { target i?86-*-* } }
+// { dg-forbid-option "-m64" }
 // { dg-options "-mtune=i686 -O2" }
 class G {};
 
diff -rupN -x CVS gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/lib/gcc-dg.exp gcc-sol210/gcc/testsuite/lib/gcc-dg.exp
--- gcc-merge-HEAD-csl-sol210-1/gcc/testsuite/lib/gcc-dg.exp	2004-09-06 16:36:11.000000000 -0700
+++ gcc-sol210/gcc/testsuite/lib/gcc-dg.exp	2004-09-27 08:45:15.000000000 -0700
@@ -430,6 +430,37 @@ proc dg-require-named-sections { args } 
    }
 }
 
+# ARGS is a list.  The 0th element is the line number at which the
+# dg-forbid-option directive appeared in the source file.  The 1st
+# element is a regular expression.  If the regular expression matches
+# the command-line options implied by the current multilib, then the
+# test will be treated as unsupported.  The 2nd element of the list,
+# if present, is a target selector conditionalizing this directive;
+# if the target selector does not match the current target, this
+# dg-forbid-option directive is ignored.
+
+proc dg-forbid-option { args } {
+    set target_name [target_info name]
+    set pattern [lindex $args 1]
+
+    if {[llength $args] > 2} {
+	set selector [lindex $args 2]
+	if { [dg-process-target $selector] == "N" } {
+	    return
+	}
+    }
+	
+    # Check to see if the option occurs in the multilib options
+    # for this target.
+    if {[board_info $target_name exists multilib_flags]} {
+	set multilib_flags [board_info $target_name multilib_flags]
+	if { [regexp -- ${pattern} $multilib_flags] } {
+	    upvar dg-do-what dg-do-what
+	    set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
+	}
+    }
+}
+
 # Prune any messages matching ARGS[1] (a regexp) from test output.
 proc dg-prune-output { args } {
     global additional_prunes

-- 
Joseph S. Myers               http://www.srcf.ucam.org/~jsm28/gcc/
    jsm@polyomino.org.uk (personal mail)
    joseph@codesourcery.com (CodeSourcery mail)
    jsm28@gcc.gnu.org (Bugzilla assignments and CCs)



More information about the Gcc-patches mailing list