expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2 wide volatile memory by parts.
* expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2 wide volatile memory by parts. * gcc.c-torture/compile/20020304-2.c: New test. From-SVN: r50314
This commit is contained in:
parent
6d05169401
commit
170c56da73
4 changed files with 19 additions and 1 deletions
|
@ -1,3 +1,8 @@
|
|||
2002-03-05 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2
|
||||
wide volatile memory by parts.
|
||||
|
||||
2002-03-05 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* ssa-ccp.c (ssa_ccp_substitute_constants): Don't crash if def
|
||||
|
|
|
@ -4278,7 +4278,8 @@ emit_store_flag (target, code, op0, op1, mode, unsignedp, normalizep)
|
|||
the comparison into one involving a single word. */
|
||||
if (GET_MODE_BITSIZE (mode) == BITS_PER_WORD * 2
|
||||
&& GET_MODE_CLASS (mode) == MODE_INT
|
||||
&& op1 == const0_rtx)
|
||||
&& op1 == const0_rtx
|
||||
&& (GET_CODE (op0) != MEM || ! MEM_VOLATILE_P (op0)))
|
||||
{
|
||||
if (code == EQ || code == NE)
|
||||
{
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
|
||||
* gcc.dg/20020304-1.c: New test.
|
||||
|
||||
* gcc.c-torture/compile/20020304-2.c: New test.
|
||||
|
||||
2002-03-04 Zack Weinberg <zack@codesourcery.com>
|
||||
|
||||
* gcc.c-torture/compile/20020304-1.c: New test case
|
||||
|
|
10
gcc/testsuite/gcc.c-torture/compile/20020304-2.c
Normal file
10
gcc/testsuite/gcc.c-torture/compile/20020304-2.c
Normal file
|
@ -0,0 +1,10 @@
|
|||
/* This testcase ICEd because a SUBREG of MEM/v was never
|
||||
simplified. */
|
||||
volatile unsigned long long *a;
|
||||
|
||||
unsigned char
|
||||
foo (void)
|
||||
{
|
||||
unsigned char b = (*a != 0);
|
||||
return b;
|
||||
}
|
Loading…
Add table
Reference in a new issue