summaryrefslogtreecommitdiff
path: root/gas/itbl-ops.c
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2009-01-02 14:21:54 +0000
committerNick Clifton <nickc@redhat.com>2009-01-02 14:21:54 +0000
commit7e203cd1b83dfac9250149982dba116c1df7b744 (patch)
tree94fd42e58f5ac825f450fdfacb7b38c937686ffa /gas/itbl-ops.c
parent31062861410564cb7c89affbe119b6cd355ed8ce (diff)
downloadbinutils-redhat-7e203cd1b83dfac9250149982dba116c1df7b744.tar.gz
* or32-opc.c (or32_print_register, or32_print_immediate,
disassemble_insn): Don't rely on undefined sprintf behaviour. * itbl-ops.c (itbl_disassemble): Don't rely on undefined sprintf behaviour.
Diffstat (limited to 'gas/itbl-ops.c')
-rw-r--r--gas/itbl-ops.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/gas/itbl-ops.c b/gas/itbl-ops.c
index 948ec99672..e2f39d1b25 100644
--- a/gas/itbl-ops.c
+++ b/gas/itbl-ops.c
@@ -1,6 +1,6 @@
/* itbl-ops.c
- Copyright 1997, 1999, 2000, 2001, 2002, 2003, 2005, 2006, 2007
- Free Software Foundation, Inc.
+ Copyright 1997, 1999, 2000, 2001, 2002, 2003, 2005, 2006, 2007,
+ 2009 Free Software Foundation, Inc.
This file is part of GAS, the GNU Assembler.
@@ -593,6 +593,7 @@ itbl_disassemble (char *s, unsigned long insn)
{
struct itbl_entry *r;
unsigned long value;
+ char s_value[20];
if (f == e->fields) /* First operand is preceded by tab. */
strcat (s, "\t");
@@ -611,14 +612,18 @@ itbl_disassemble (char *s, unsigned long insn)
if (r)
strcat (s, r->name);
else
- sprintf (s, "%s$%lu", s, value);
+ {
+ sprintf (s_value, "$%lu", value);
+ strcat (s, s_value);
+ }
break;
case e_addr:
/* Use assembler's symbol table to find symbol. */
/* FIXME!! Do we need this? If so, what about relocs?? */
/* If not a symbol, fall through to IMMED. */
case e_immed:
- sprintf (s, "%s0x%lx", s, value);
+ sprintf (s_value, "0x%lx", value);
+ strcat (s, s_value);
break;
default:
return 0; /* error; invalid field spec */