aboutsummaryrefslogtreecommitdiff
path: root/gas/frags.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2019-04-15 21:51:44 +0930
committerAlan Modra <amodra@gmail.com>2019-04-16 17:12:09 +0930
commit871a6bd2d852b0fb677386e1be78c3f4c6939b48 (patch)
treef1a378f0c442384f758827ba5c8f5a85ca83d3bd /gas/frags.c
parent02e902e1a1ec7b74125f329b3faef1992efb6d51 (diff)
downloadbinutils-871a6bd2d852b0fb677386e1be78c3f4c6939b48.zip
binutils-871a6bd2d852b0fb677386e1be78c3f4c6939b48.tar.gz
binutils-871a6bd2d852b0fb677386e1be78c3f4c6939b48.tar.bz2
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 <fr_fix>): 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.
Diffstat (limited to 'gas/frags.c')
-rw-r--r--gas/frags.c4
1 files changed, 3 insertions, 1 deletions
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);