simplify-rtx.c (simplify_relational_operation): Don't simplify address == constant into address + -constant == 0.
* simplify-rtx.c (simplify_relational_operation): Don't simplify address == constant into address + -constant == 0. * gcc.dg/20040123-1.c: New test. From-SVN: r76490
This commit is contained in:
parent
a515305612
commit
5473cfa7fd
@ -1,3 +1,8 @@
|
||||
2004-01-24 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* simplify-rtx.c (simplify_relational_operation): Don't
|
||||
simplify address == constant into address + -constant == 0.
|
||||
|
||||
2004-01-24 Kazu Hirata <kazu@cs.umass.edu>
|
||||
|
||||
* gcc.c (process_command): Don't internationalize the
|
||||
|
@ -2530,6 +2530,8 @@ simplify_relational_operation (enum rtx_code code, enum machine_mode mode,
|
||||
&& ! ((GET_CODE (op0) == REG || GET_CODE (trueop0) == CONST_INT)
|
||||
&& (GET_CODE (op1) == REG || GET_CODE (trueop1) == CONST_INT))
|
||||
&& 0 != (tem = simplify_binary_operation (MINUS, mode, op0, op1))
|
||||
/* We cannot do this for == or != if tem is a nonzero address. */
|
||||
&& ((code != EQ && code != NE) || ! nonzero_address_p (tem))
|
||||
&& code != GTU && code != GEU && code != LTU && code != LEU)
|
||||
return simplify_relational_operation (signed_condition (code),
|
||||
mode, tem, const0_rtx);
|
||||
|
@ -1,3 +1,7 @@
|
||||
2004-01-24 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* gcc.dg/20040123-1.c: New test.
|
||||
|
||||
2004-01-23 Zack Weinberg <zack@codesourcery.com>
|
||||
|
||||
* gcc.dg/builtins-30.c: Move dg-warning marks to the proper lines.
|
||||
|
12
gcc/testsuite/gcc.dg/20040123-1.c
Normal file
12
gcc/testsuite/gcc.dg/20040123-1.c
Normal file
@ -0,0 +1,12 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2" } */
|
||||
/* { dg-final { scan-assembler "abort" } } */
|
||||
|
||||
extern void abort (void);
|
||||
extern char a[];
|
||||
|
||||
void foo (void)
|
||||
{
|
||||
if ((void *) a == (void *) 0x4000UL)
|
||||
abort ();
|
||||
}
|
Loading…
Reference in New Issue
Block a user