mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-12-03 00:34:21 +08:00
* combine.c (nonzero_bits): Fix check for negative divide operands.
From-SVN: r62029
This commit is contained in:
parent
1e1bd14eb2
commit
6d09ef27d4
@ -1,3 +1,7 @@
|
||||
2003-01-28 Richard Sandiford <rsandifo@redhat.com>
|
||||
|
||||
* combine.c (nonzero_bits): Fix check for negative divide operands.
|
||||
|
||||
2003-01-28 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* config/ia64/ia64.c (ia64_rwreloc_section_type_flags): New.
|
||||
|
@ -8369,14 +8369,15 @@ nonzero_bits (x, mode)
|
||||
{
|
||||
unsigned HOST_WIDE_INT nz0 = nonzero_bits (XEXP (x, 0), mode);
|
||||
unsigned HOST_WIDE_INT nz1 = nonzero_bits (XEXP (x, 1), mode);
|
||||
int sign_index = GET_MODE_BITSIZE (GET_MODE (x)) - 1;
|
||||
int width0 = floor_log2 (nz0) + 1;
|
||||
int width1 = floor_log2 (nz1) + 1;
|
||||
int low0 = floor_log2 (nz0 & -nz0);
|
||||
int low1 = floor_log2 (nz1 & -nz1);
|
||||
HOST_WIDE_INT op0_maybe_minusp
|
||||
= (nz0 & ((HOST_WIDE_INT) 1 << (mode_width - 1)));
|
||||
= (nz0 & ((HOST_WIDE_INT) 1 << sign_index));
|
||||
HOST_WIDE_INT op1_maybe_minusp
|
||||
= (nz1 & ((HOST_WIDE_INT) 1 << (mode_width - 1)));
|
||||
= (nz1 & ((HOST_WIDE_INT) 1 << sign_index));
|
||||
unsigned int result_width = mode_width;
|
||||
int result_low = 0;
|
||||
|
||||
|
@ -1,3 +1,7 @@
|
||||
2003-01-28 Richard Sandiford <rsandifo@redhat.com>
|
||||
|
||||
* gcc.c-torture/execute/20030128-1.c: New test.
|
||||
|
||||
2003-01-28 Jeffrey D. Oldham <oldham@codesourcery.com>
|
||||
|
||||
* g++.dg/lookup/nested1.C: Test moved from ...
|
||||
|
10
gcc/testsuite/gcc.c-torture/execute/20030128-1.c
Normal file
10
gcc/testsuite/gcc.c-torture/execute/20030128-1.c
Normal file
@ -0,0 +1,10 @@
|
||||
unsigned char x = 50;
|
||||
volatile short y = -5;
|
||||
|
||||
int main ()
|
||||
{
|
||||
x /= y;
|
||||
if (x != (unsigned char) -10)
|
||||
abort ();
|
||||
exit (0);
|
||||
}
|
Loading…
Reference in New Issue
Block a user