From 871a6bd2d852b0fb677386e1be78c3f4c6939b48 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Mon, 15 Apr 2019 21:51:44 +0930 Subject: Make frag fr_fix unsigned The field only stores unsigned values, so let's make it unsigned to stop people worrying about the possibility of negative values. * frags.h (struct frag ): Use unsigned type. * frags.c (frag_new): Assert that current size exceeds old_frags_var_max_size. * ehopt.c (get_cie_info): Adjust for unsigned fr_fix. * listing.c (calc_hex): Likewise. * write.c (cvt_frag_to_fill, write_relocs): Likewise. * config/tc-arc.c (md_convert_frag): Likewise. * config/tc-avr.c (avr_patch_gccisr_frag): Likewise. * config/tc-mips.c (md_convert_frag): Likewise. * config/tc-rl78.c (md_convert_frag): Likewise. * config/tc-rx.c (md_convert_frag): Likewise. * config/tc-sparc.c (md_apply_fix): Likewise. * config/tc-xtensa.c (next_instrs_are_b_retw): Likewise. (unrelaxed_frag_min_insn_count, unrelaxed_frag_has_b_j): Likewise. --- gas/frags.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'gas/frags.c') diff --git a/gas/frags.c b/gas/frags.c index 90096ff..a9fc003 100644 --- a/gas/frags.c +++ b/gas/frags.c @@ -165,7 +165,9 @@ frag_new (size_t old_frags_var_max_size gas_assert (frchain_now->frch_last == frag_now); /* Fix up old frag's fr_fix. */ - frag_now->fr_fix = frag_now_fix_octets () - old_frags_var_max_size; + frag_now->fr_fix = frag_now_fix_octets (); + gas_assert (frag_now->fr_fix >= old_frags_var_max_size); + frag_now->fr_fix -= old_frags_var_max_size; /* Make sure its type is valid. */ gas_assert (frag_now->fr_type != 0); -- cgit v1.1