aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2021-04-19 13:28:35 +0200
committerJan Beulich <jbeulich@suse.com>2021-04-19 13:28:35 +0200
commit9a8041fd94b7b5c12cb802f87648cce954d18d2a (patch)
tree0c3070b7a9525345185ba17ef4ff6efba4be9978
parent4dee4f3ea143a8910de487a810e972152154292d (diff)
downloadgdb-9a8041fd94b7b5c12cb802f87648cce954d18d2a.zip
gdb-9a8041fd94b7b5c12cb802f87648cce954d18d2a.tar.gz
gdb-9a8041fd94b7b5c12cb802f87648cce954d18d2a.tar.bz2
gas: drop sprint_value()
Its (documented) behavior is unhelpful in particular in 64-bit build environments: While printing large 32-bit numbers in decimal already isn't very meaningful to most people, this even more so goes for yet larger 64-bit numbers. bfd_sprintf_vma() still tries to limit the number of digits printed (without depending on a build system property), but uniformly produces hex output.
-rw-r--r--gas/ChangeLog11
-rw-r--r--gas/as.h1
-rw-r--r--gas/config/tc-i386.c4
-rw-r--r--gas/config/tc-s390.c2
-rw-r--r--gas/doc/internals.texi7
-rw-r--r--gas/messages.c16
-rw-r--r--gas/write.c8
7 files changed, 19 insertions, 30 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 72b8c69..2c498a6 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,14 @@
+2021-04-19 Jan Beulich <jbeulich@suse.com>
+
+ * as.h (sprint_value): Delete.
+ * messages.c (sprint_value): Likewise.
+ * config/tc-i386.c (offset_in_range): Use bfd_sprintf_vma in
+ place of sprint_value.
+ * config/tc-s390.c (s390_insert_operand): Likewise.
+ * doc/internals.texi (sprint_value): Delete section.
+ * write.c (fixup_segment): Likewise.
+ (relax_segment): Likewise.
+
2021-04-16 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
* testsuite/gas/aarch64/rme-invalid.d: New test.
diff --git a/gas/as.h b/gas/as.h
index 6b68954..14a768f 100644
--- a/gas/as.h
+++ b/gas/as.h
@@ -428,7 +428,6 @@ PRINTF_WHERE_LIKE (as_warn_where);
void as_abort (const char *, int, const char *) ATTRIBUTE_NORETURN;
void signal_init (void);
-void sprint_value (char *, addressT);
int had_errors (void);
int had_warnings (void);
void as_warn_value_out_of_range (const char *, offsetT, offsetT, offsetT,
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index b6d43b5f..e49d0f5 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -2556,8 +2556,8 @@ offset_in_range (offsetT val, int size)
{
char buf1[40], buf2[40];
- sprint_value (buf1, val);
- sprint_value (buf2, 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;
diff --git a/gas/config/tc-s390.c b/gas/config/tc-s390.c
index 0750f25..064dd33 100644
--- a/gas/config/tc-s390.c
+++ b/gas/config/tc-s390.c
@@ -626,7 +626,7 @@ s390_insert_operand (unsigned char *insn,
min <<= 1;
max <<= 1;
}
- sprint_value (buf, val);
+ bfd_sprintf_vma (stdoutput, buf, val);
if (file == (char *) NULL)
as_bad (err, buf, (int) min, (int) max);
else
diff --git a/gas/doc/internals.texi b/gas/doc/internals.texi
index 3b345d5..91ef975 100644
--- a/gas/doc/internals.texi
+++ b/gas/doc/internals.texi
@@ -1918,13 +1918,6 @@ after all input has been read, but messages about fixups should refer to the
original filename and line number that they are applicable to.
@end deftypefun
-@deftypefun @{@} void sprint_value (char *@var{buf}, valueT @var{val})
-This function is helpful for converting a @code{valueT} value into printable
-format, in case it's wider than modes that @code{*printf} can handle. If the
-type is narrow enough, a decimal number will be produced; otherwise, it will be
-in hexadecimal. The value itself is not examined to make this determination.
-@end deftypefun
-
@node Test suite
@section Test suite
@cindex test suite
diff --git a/gas/messages.c b/gas/messages.c
index 0728146..62f9312 100644
--- a/gas/messages.c
+++ b/gas/messages.c
@@ -356,22 +356,6 @@ signal_init (void)
/* Support routines. */
-void
-sprint_value (char *buf, valueT val)
-{
- if (sizeof (val) <= sizeof (long))
- {
- sprintf (buf, "%ld", (long) val);
- return;
- }
- if (sizeof (val) <= sizeof (bfd_vma))
- {
- sprintf_vma (buf, val);
- return;
- }
- abort ();
-}
-
#define HEX_MAX_THRESHOLD 1024
#define HEX_MIN_THRESHOLD -(HEX_MAX_THRESHOLD)
diff --git a/gas/write.c b/gas/write.c
index 706c9c0..682e28f 100644
--- a/gas/write.c
+++ b/gas/write.c
@@ -1110,9 +1110,9 @@ fixup_segment (fixS *fixP, segT this_segment)
if ((add_number & mask) != 0 && (add_number & mask) != mask)
{
char buf[50], buf2[50];
- sprint_value (buf, fragP->fr_address + fixP->fx_where);
+ bfd_sprintf_vma (stdoutput, buf, fragP->fr_address + fixP->fx_where);
if (add_number > 1000)
- sprint_value (buf2, add_number);
+ bfd_sprintf_vma (stdoutput, buf2, add_number);
else
sprintf (buf2, "%ld", (long) add_number);
as_bad_where (fixP->fx_file, fixP->fx_line,
@@ -2866,7 +2866,9 @@ relax_segment (struct frag *segment_frag_root, segT segment, int pass)
if (flag_warn_displacement)
{
char buf[50];
- sprint_value (buf, (addressT) lie->addnum);
+
+ bfd_sprintf_vma (stdoutput, buf,
+ (addressT) lie->addnum);
as_warn_where (fragP->fr_file, fragP->fr_line,
_(".word %s-%s+%s didn't fit"),
S_GET_NAME (lie->add),