* combine.c (nonzero_bits): Fix check for negative divide operands.

From-SVN: r62029
This commit is contained in:
Richard Sandiford 2003-01-28 22:15:50 +00:00 committed by Richard Sandiford
parent 1e1bd14eb2
commit 6d09ef27d4
4 changed files with 21 additions and 2 deletions

View File

@ -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.

View File

@ -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;

View File

@ -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 ...

View 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);
}