aboutsummaryrefslogtreecommitdiff
path: root/gas/config
diff options
context:
space:
mode:
authorJim Wilson <wilson@tuliptree.org>2000-08-02 21:24:54 +0000
committerJim Wilson <wilson@tuliptree.org>2000-08-02 21:24:54 +0000
commit3d56ab850cf81361423699ed8d78c40199d22862 (patch)
tree5a84e31d0909eb00794cb5865f447bf7841b9d18 /gas/config
parent63266560e98843b391a571290bc6d5dfb788d0f5 (diff)
downloadgdb-3d56ab850cf81361423699ed8d78c40199d22862.zip
gdb-3d56ab850cf81361423699ed8d78c40199d22862.tar.gz
gdb-3d56ab850cf81361423699ed8d78c40199d22862.tar.bz2
Fix memory leaks for IA-64 opcode idescs.
gas/ * config/tc-ia64.c (emit_one_bundle): Call ia64_free_opcode before ia64_find_opcode. (md_assemble): Likewise. opcodes/ * ia64-dis.c (print_insn_ia64): Call ia64_free_opcode at end.
Diffstat (limited to 'gas/config')
-rw-r--r--gas/config/tc-ia64.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gas/config/tc-ia64.c b/gas/config/tc-ia64.c
index abcfe63..c704cc6 100644
--- a/gas/config/tc-ia64.c
+++ b/gas/config/tc-ia64.c
@@ -5390,6 +5390,7 @@ emit_one_bundle ()
as_fatal ("emit_one_bundle: unexpected dynamic op");
sprintf (mnemonic, "%s.%c", idesc->name, "?imbf??"[insn_unit]);
+ ia64_free_opcode (idesc);
md.slot[curr].idesc = idesc = ia64_find_opcode (mnemonic);
#if 0
know (!idesc->next); /* no resolved dynamic ops have collisions */
@@ -8493,6 +8494,7 @@ md_assemble (str)
mnemonic = "addl";
else
mnemonic = "adds";
+ ia64_free_opcode (idesc);
idesc = ia64_find_opcode (mnemonic);
#if 0
know (!idesc->next);
@@ -8516,6 +8518,7 @@ md_assemble (str)
mnemonic = "mov.i";
else
mnemonic = "mov.m";
+ ia64_free_opcode (idesc);
idesc = ia64_find_opcode (mnemonic);
while (idesc != NULL
&& (idesc->operands[0] != opnd1