diff --git a/gas/ChangeLog b/gas/ChangeLog index 5d5ece9a46..77f16283c2 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2002-01-07 Nick Clifton + + * read.c (emit_expr): Do not allow 'size' or 'nbytes' to go + negative. + 2002-01-06 Alan Modra * config/tc-m68k.h (md_prepare_relax_scan): Rewrite. diff --git a/gas/read.c b/gas/read.c index 5fc9511314..b0446c8d13 100644 --- a/gas/read.c +++ b/gas/read.c @@ -3683,7 +3683,7 @@ emit_expr (exp, nbytes) } nums = generic_bignum + size / CHARS_PER_LITTLENUM; - while (size > 0) + while (size >= CHARS_PER_LITTLENUM) { --nums; md_number_to_chars (p, (valueT) *nums, CHARS_PER_LITTLENUM); @@ -3694,7 +3694,7 @@ emit_expr (exp, nbytes) else { nums = generic_bignum; - while (size > 0) + while (size >= CHARS_PER_LITTLENUM) { md_number_to_chars (p, (valueT) *nums, CHARS_PER_LITTLENUM); ++nums; @@ -3703,7 +3703,7 @@ emit_expr (exp, nbytes) nbytes -= CHARS_PER_LITTLENUM; } - while (nbytes > 0) + while (nbytes >= CHARS_PER_LITTLENUM) { md_number_to_chars (p, extra_digit, CHARS_PER_LITTLENUM); nbytes -= CHARS_PER_LITTLENUM;