mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-26 12:23:59 +08:00
re PR rtl-optimization/17099 (Bootstrap failure on powerpc64-redhat-linux)
PR rtl-optimization/17099 * combine.c (force_to_mode): Check if inner_mask has any bits set outside of GET_MODE (x) instead of op_mode. * gcc.c-torture/execute/20040820-1.c: New test. From-SVN: r86339
This commit is contained in:
parent
87c2399d89
commit
f3b2657c01
@ -1,3 +1,9 @@
|
||||
2004-08-20 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR rtl-optimization/17099
|
||||
* combine.c (force_to_mode): Check if inner_mask has any bits set
|
||||
outside of GET_MODE (x) instead of op_mode.
|
||||
|
||||
2004-08-20 Mark Mitchell <mark@codesourcery.com>
|
||||
|
||||
* config.gcc (arm*-*-symbianelf*): Add t-symbian Makefile
|
||||
|
@ -7151,9 +7151,8 @@ force_to_mode (rtx x, enum machine_mode mode, unsigned HOST_WIDE_INT mask,
|
||||
|
||||
/* We can only change the mode of the shift if we can do arithmetic
|
||||
in the mode of the shift and INNER_MASK is no wider than the
|
||||
width of OP_MODE. */
|
||||
if (GET_MODE_BITSIZE (op_mode) > HOST_BITS_PER_WIDE_INT
|
||||
|| (inner_mask & ~GET_MODE_MASK (op_mode)) != 0)
|
||||
width of X's mode. */
|
||||
if ((inner_mask & ~GET_MODE_MASK (GET_MODE (x))) != 0)
|
||||
op_mode = GET_MODE (x);
|
||||
|
||||
inner = force_to_mode (inner, op_mode, inner_mask, reg, next_select);
|
||||
|
@ -1,3 +1,8 @@
|
||||
2004-08-20 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR rtl-optimization/17099
|
||||
* gcc.c-torture/execute/20040820-1.c: New test.
|
||||
|
||||
2004-08-20 David Edelsohn <edelsohn@gnu.org>
|
||||
|
||||
* gcc.dg/uninit-H.c: Add _POWER to powerpc case.
|
||||
|
24
gcc/testsuite/gcc.c-torture/execute/20040820-1.c
Normal file
24
gcc/testsuite/gcc.c-torture/execute/20040820-1.c
Normal file
@ -0,0 +1,24 @@
|
||||
/* PR rtl-optimization/17099 */
|
||||
|
||||
extern void exit (int);
|
||||
extern void abort (void);
|
||||
|
||||
void
|
||||
check (int a)
|
||||
{
|
||||
if (a != 1)
|
||||
abort ();
|
||||
}
|
||||
|
||||
void
|
||||
test (int a, int b)
|
||||
{
|
||||
check ((a ? 1 : 0) | (b ? 2 : 0));
|
||||
}
|
||||
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
test (1, 0);
|
||||
exit (0);
|
||||
}
|
Loading…
Reference in New Issue
Block a user