From d965814fb65358df2f02c9f6af41cb1edd289277 Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Mon, 26 Apr 2021 10:39:11 +0200 Subject: [PATCH] x86: limit 32-bit @size overflow checks to 64-bit objects For 32-bit objects the behavior should not be dependent upon the build being a BFD64 one. --- gas/ChangeLog | 5 +++++ gas/config/tc-i386.c | 1 + 2 files changed, 6 insertions(+) diff --git a/gas/ChangeLog b/gas/ChangeLog index 1e056f7f8ff..93b3fa67276 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2021-04-26 Jan Beulich + + * config/tc-i386.c (tc_gen_reloc): Limit BFD_RELOC_SIZE32 + overflow check to 64-bit objects. + 2021-04-26 Jan Beulich * config/tc-i386.c (want_disp32): Also check for SIZE32. diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index 116b9db518f..147c8204b60 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -14212,6 +14212,7 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp) the symbol plus addend. */ valueT value = S_GET_SIZE (fixp->fx_addsy) + fixp->fx_offset; if (fixp->fx_r_type == BFD_RELOC_SIZE32 + && object_64bit && !fits_in_unsigned_long (value)) as_bad_where (fixp->fx_file, fixp->fx_line, _("symbol size computation overflow")); -- 2.30.2