From 3d56ab850cf81361423699ed8d78c40199d22862 Mon Sep 17 00:00:00 2001 From: Jim Wilson Date: Wed, 2 Aug 2000 21:24:54 +0000 Subject: 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. --- gas/config/tc-ia64.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'gas/config/tc-ia64.c') 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 -- cgit v1.1