diff options
Diffstat (limited to 'modules/objfmts/bin/bin-objfmt.c')
-rw-r--r-- | modules/objfmts/bin/bin-objfmt.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/modules/objfmts/bin/bin-objfmt.c b/modules/objfmts/bin/bin-objfmt.c index 478502ec..3d69a2db 100644 --- a/modules/objfmts/bin/bin-objfmt.c +++ b/modules/objfmts/bin/bin-objfmt.c @@ -663,6 +663,7 @@ map_symrec_output(yasm_symrec *sym, void *d) map_output_info *info = (map_output_info *)d; const yasm_expr *equ; /*@dependent@*/ yasm_bytecode *precbc; + /*@only@*/ char *name = yasm_symrec_get_global_name(sym, info->object); assert(info != NULL); @@ -673,7 +674,7 @@ map_symrec_output(yasm_symrec *sym, void *d) yasm_intnum_set(info->intn, yasm_expr_get_intnum(&realequ, 0)); yasm_expr_destroy(realequ); map_print_intnum(info->intn, info); - fprintf(info->f, " %s\n", yasm_symrec_get_name(sym)); + fprintf(info->f, " %s\n", name); } else if (yasm_symrec_get_label(sym, &precbc) && yasm_bc_get_section(precbc) == info->section) { bin_section_data *bsd = @@ -691,8 +692,9 @@ map_symrec_output(yasm_symrec *sym, void *d) map_print_intnum(info->intn, info); /* Name */ - fprintf(info->f, " %s\n", yasm_symrec_get_name(sym)); + fprintf(info->f, " %s\n", name); } + yasm_xfree(name); return 0; } |