From: Jakub Jelinek Date: Wed, 16 Jan 2002 15:21:51 +0000 (+0100) Subject: re PR target/5357 (SPARC: illegal (?) combination of -mcpu=supersparc and -m64 causes... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c4031a047e530947f9888faec85c645c4c1ac065;p=gcc.git re PR target/5357 (SPARC: illegal (?) combination of -mcpu=supersparc and -m64 causes ICE) PR target/5357: * config/sparc/sparc.c (sparc_override_options): Avoid MASK_V9 and MASK_V8 being both set. * gcc.dg/20020116-2.c: New test. From-SVN: r48909 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5c262ab4a80..64d7ce42884 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2002-01-16 Jakub Jelinek + + PR target/5357: + * config/sparc/sparc.c (sparc_override_options): Avoid MASK_V9 and + MASK_V8 being both set. + 2002-01-16 Ulrich Weigand * config/s390/s390.c (s390_emit_prologue): Do not emit USE diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c index 8914a8b3314..3e3d1a8e1cc 100644 --- a/gcc/config/sparc/sparc.c +++ b/gcc/config/sparc/sparc.c @@ -401,7 +401,10 @@ sparc_override_options () are available. -m64 also implies v9. */ if (TARGET_VIS || TARGET_ARCH64) - target_flags |= MASK_V9; + { + target_flags |= MASK_V9; + target_flags &= ~(MASK_V8 | MASK_SPARCLET | MASK_SPARCLITE); + } /* Use the deprecated v8 insns for sparc64 in 32 bit mode. */ if (TARGET_V9 && TARGET_ARCH32) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index fc714f86179..28eeb14be3e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2002-01-16 Jakub Jelinek + + * gcc.dg/20020116-2.c: New test. + 2002-01-15 Geoffrey Keating * gcc.dg/20020103-1.c: Also test for __PPC__, since that's used diff --git a/gcc/testsuite/gcc.dg/20020116-2.c b/gcc/testsuite/gcc.dg/20020116-2.c new file mode 100644 index 00000000000..04f5c6ee571 --- /dev/null +++ b/gcc/testsuite/gcc.dg/20020116-2.c @@ -0,0 +1,18 @@ +/* This testcase ICEd on sparc64 because -mcpu=supersparc and implicit + -m64 resulted in MASK_V8 and MASK_V9 to be set at the same time. */ +/* { dg-do compile } */ +/* { dg-options "" } */ +/* { dg-options "-mcpu=supersparc" { target sparc*-*-* } } */ + +void bar (long *x, long *y); + +void foo (int x, long *y, long *z) +{ + int i; + + for (i = x - 1; i >= 0; i--) + { + bar (z + i * 3 + 1, y); + bar (z + i * 3 + 2, y); + } +}