x86: make offset_in_range()'s warning contents useful (again)

In case there is something which gets shortened (perhaps only on a BFD64
build targeting a 32-bit binary), seeing the full original value is
often helpful to understand what's actually going wrong. Of course for
non-64-bit binaries we better wouldn't be seeing such warnings at all,
as they're often indicative of a behavioral difference between BFD64 and
!BFD64 builds.

Prior to "gas: drop sprint_value()", which introduced the use of
bfd_sprintf_vma(), the output had other shortcomings.
This commit is contained in:
Jan Beulich
2021-06-15 07:58:57 +02:00
parent 4fe51f7d3c
commit 86f041462e
2 changed files with 7 additions and 6 deletions

View File

@ -1,3 +1,8 @@
2021-06-15 Jan Beulich <jbeulich@suse.com>
* config/tc-i386.c (offset_in_range): Replace uses of
bfd_sprintf_vma.
2021-06-15 Jan Beulich <jbeulich@suse.com>
* config/tc-i386.c (offset_in_range): Adjust conditional.

View File

@ -2564,13 +2564,9 @@ offset_in_range (offsetT val, int size)
}
if ((val & ~mask) != 0 && (-val & ~mask) != 0)
{
char buf1[40], buf2[40];
as_warn (_("%"BFD_VMA_FMT"x shortened to %"BFD_VMA_FMT"x"),
val, val & mask);
bfd_sprintf_vma (stdoutput, buf1, val);
bfd_sprintf_vma (stdoutput, buf2, val & mask);
as_warn (_("%s shortened to %s"), buf1, buf2);
}
return val & mask;
}