diff options
author | Jan Beulich <jbeulich@suse.com> | 2021-06-16 08:55:20 +0200 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2021-06-16 08:55:20 +0200 |
commit | 4504a6346777d544a144683bd2a534b686fbac41 (patch) | |
tree | 65f18b24a6c7df5caaf8eec8bd7ba25f7f466875 /gas/ChangeLog | |
parent | b80d4475804d5f3c4e9d996229e1569b7b3c8426 (diff) | |
download | gdb-4504a6346777d544a144683bd2a534b686fbac41.zip gdb-4504a6346777d544a144683bd2a534b686fbac41.tar.gz gdb-4504a6346777d544a144683bd2a534b686fbac41.tar.bz2 |
gas: fix overflow diagnostics
While the logic in fixup_segment() so far was off by 1 for fixups
dealing with quantities without known signedness, thus failing to report
an overflow when e.g. a byte-sized resulting value is -0x100, the logic
in emit_expr_with_reloc() reported an overflow even on large negative
values when the respective positive ones would not be warned
about, and when fixup_segment() wouldn't do so either. Such diagnostics
all ought to follow a similar pattern of what value range is acceptable.
(If expressions' X_unsigned was reliably set, emit_expr_with_reloc()'s
checking might make sense to tighten based on that flag.)
Note that with commit 80aab57939a0 ("Changes to let cons handle bignums
like general expressions") having added handling of nbytes >
sizeof(valueT) in the O_constant case, converting to O_big, the setting
to zero of "hibit" had become dead. With "hibit" no longer used, this
code now gets dropped altogether. But additionally a respective know()
gets inserted.
Diffstat (limited to 'gas/ChangeLog')
-rw-r--r-- | gas/ChangeLog | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index be9882a..ebbf27f 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,13 @@ +2021-06-16 Jan Beulich <jbeulich@suse.com> + + * read.c (emit_expr_with_reloc): Adjust overflow check. Drop + hibit local variable. + * write.c (fixup_segment): Differentiate signed and non-signed + relocs in overflow check. + * testsuite/gas/all/overflow.s, + testsuite/gas/all/overflow.l: New. + * testsuite/gas/all/gas.exp: Run new test. + 2021-06-15 Jan Beulich <jbeulich@suse.com> * config/tc-i386.c (md_show_usage): Split ELF and PE/COFF parts |