Message ID | 1272374829-3594-1-git-send-email-thomas_ml@monjalon.net |
---|---|
State | New |
Headers | show |
Thanks, applied. Also clang analyzer had problems with the 'fprintf' variable. On 4/27/10, Thomas Monjalon <thomas_ml@monjalon.net> wrote: > From: Thomas Monjalon <thomas@monjalon.net> > > Using GCC-4.2.4-1ubuntu4, there is a warning: > microblaze-dis.c:792: warning: unused variable 'fprintf' > > Indeed, fprintf() is shadowed by a custom redefinition but is not used because > of FORTIFY_SOURCE option which replace calls to fprintf() by fprintf_chk(). > So, fprintf refers to the libc implementation instead of the qemu one. > It's a bug. > > It is fixed by renaming the variable to something different of "fprintf". > It prevents from hazardous shadowing. > > Signed-off-by: Thomas Monjalon <thomas@monjalon.net> > --- > microblaze-dis.c | 62 +++++++++++++++++++++++++++--------------------------- > 1 files changed, 31 insertions(+), 31 deletions(-) > > diff --git a/microblaze-dis.c b/microblaze-dis.c > index 9235fd8..7694a43 100644 > --- a/microblaze-dis.c > +++ b/microblaze-dis.c > @@ -789,7 +789,7 @@ read_insn_microblaze (bfd_vma memaddr, > int > print_insn_microblaze (bfd_vma memaddr, struct disassemble_info * info) > { > - fprintf_ftype fprintf = info->fprintf_func; > + fprintf_ftype fprintf_func = info->fprintf_func; > void * stream = info->stream; > unsigned long inst, prev_inst; > struct op_code_struct * op, *pop; > @@ -826,19 +826,19 @@ print_insn_microblaze (bfd_vma memaddr, struct disassemble_info * info) > prev_insn_vma = curr_insn_vma; > > if (op->name == 0) { > - fprintf (stream, ".short 0x%04lx", inst); > + fprintf_func (stream, ".short 0x%04lx", inst); > } > else > { > - fprintf (stream, "%s", op->name); > + fprintf_func (stream, "%s", op->name); > > switch (op->inst_type) > { > case INST_TYPE_RD_R1_R2: > - fprintf(stream, "\t%s, %s, %s", get_field_rd(inst), get_field_r1(inst), get_field_r2(inst)); > + fprintf_func(stream, "\t%s, %s, %s", get_field_rd(inst), get_field_r1(inst), get_field_r2(inst)); > break; > case INST_TYPE_RD_R1_IMM: > - fprintf(stream, "\t%s, %s, %s", get_field_rd(inst), get_field_r1(inst), get_field_imm(inst)); > + fprintf_func(stream, "\t%s, %s, %s", get_field_rd(inst), get_field_r1(inst), get_field_imm(inst)); > if (info->print_address_func && get_int_field_r1(inst) == 0 && info->symbol_at_address_func) { > if (immfound) > immval |= (get_int_field_imm(inst) & 0x0000ffff); > @@ -848,34 +848,34 @@ print_insn_microblaze (bfd_vma memaddr, struct disassemble_info * info) > immval |= 0xFFFF0000; > } > if (immval > 0 && info->symbol_at_address_func(immval, info)) { > - fprintf (stream, "\t// "); > + fprintf_func (stream, "\t// "); > info->print_address_func (immval, info); > } > } > break; > case INST_TYPE_RD_R1_IMM5: > - fprintf(stream, "\t%s, %s, %s", get_field_rd(inst), get_field_r1(inst), get_field_imm5(inst)); > + fprintf_func(stream, "\t%s, %s, %s", get_field_rd(inst), get_field_r1(inst), get_field_imm5(inst)); > break; > case INST_TYPE_RD_RFSL: > - fprintf(stream, "\t%s, %s", get_field_rd(inst), get_field_rfsl(inst)); > + fprintf_func(stream, "\t%s, %s", get_field_rd(inst), get_field_rfsl(inst)); > break; > case INST_TYPE_R1_RFSL: > - fprintf(stream, "\t%s, %s", get_field_r1(inst), get_field_rfsl(inst)); > + fprintf_func(stream, "\t%s, %s", get_field_r1(inst), get_field_rfsl(inst)); > break; > case INST_TYPE_RD_SPECIAL: > - fprintf(stream, "\t%s, %s", get_field_rd(inst), get_field_special(inst, op)); > + fprintf_func(stream, "\t%s, %s", get_field_rd(inst), get_field_special(inst, op)); > break; > case INST_TYPE_SPECIAL_R1: > - fprintf(stream, "\t%s, %s", get_field_special(inst, op), get_field_r1(inst)); > + fprintf_func(stream, "\t%s, %s", get_field_special(inst, op), get_field_r1(inst)); > break; > case INST_TYPE_RD_R1: > - fprintf(stream, "\t%s, %s", get_field_rd(inst), get_field_r1(inst)); > + fprintf_func(stream, "\t%s, %s", get_field_rd(inst), get_field_r1(inst)); > break; > case INST_TYPE_R1_R2: > - fprintf(stream, "\t%s, %s", get_field_r1(inst), get_field_r2(inst)); > + fprintf_func(stream, "\t%s, %s", get_field_r1(inst), get_field_r2(inst)); > break; > case INST_TYPE_R1_IMM: > - fprintf(stream, "\t%s, %s", get_field_r1(inst), get_field_imm(inst)); > + fprintf_func(stream, "\t%s, %s", get_field_r1(inst), get_field_imm(inst)); > /* The non-pc relative instructions are returns, which shouldn't > have a label printed */ > if (info->print_address_func && op->inst_offset_type == INST_PC_OFFSET && info->symbol_at_address_func) { > @@ -888,16 +888,16 @@ print_insn_microblaze (bfd_vma memaddr, struct disassemble_info * info) > } > immval += memaddr; > if (immval > 0 && info->symbol_at_address_func(immval, info)) { > - fprintf (stream, "\t// "); > + fprintf_func (stream, "\t// "); > info->print_address_func (immval, info); > } else { > - fprintf (stream, "\t\t// "); > - fprintf (stream, "%x", immval); > + fprintf_func (stream, "\t\t// "); > + fprintf_func (stream, "%x", immval); > } > } > break; > case INST_TYPE_RD_IMM: > - fprintf(stream, "\t%s, %s", get_field_rd(inst), get_field_imm(inst)); > + fprintf_func(stream, "\t%s, %s", get_field_rd(inst), get_field_imm(inst)); > if (info->print_address_func && info->symbol_at_address_func) { > if (immfound) > immval |= (get_int_field_imm(inst) & 0x0000ffff); > @@ -909,13 +909,13 @@ print_insn_microblaze (bfd_vma memaddr, struct disassemble_info * info) > if (op->inst_offset_type == INST_PC_OFFSET) > immval += (int) memaddr; > if (info->symbol_at_address_func(immval, info)) { > - fprintf (stream, "\t// "); > + fprintf_func (stream, "\t// "); > info->print_address_func (immval, info); > } > } > break; > case INST_TYPE_IMM: > - fprintf(stream, "\t%s", get_field_imm(inst)); > + fprintf_func(stream, "\t%s", get_field_imm(inst)); > if (info->print_address_func && info->symbol_at_address_func && op->instr != imm) { > if (immfound) > immval |= (get_int_field_imm(inst) & 0x0000ffff); > @@ -927,39 +927,39 @@ print_insn_microblaze (bfd_vma memaddr, struct disassemble_info * info) > if (op->inst_offset_type == INST_PC_OFFSET) > immval += (int) memaddr; > if (immval > 0 && info->symbol_at_address_func(immval, info)) { > - fprintf (stream, "\t// "); > + fprintf_func (stream, "\t// "); > info->print_address_func (immval, info); > } else if (op->inst_offset_type == INST_PC_OFFSET) { > - fprintf (stream, "\t\t// "); > - fprintf (stream, "%x", immval); > + fprintf_func (stream, "\t\t// "); > + fprintf_func (stream, "%x", immval); > } > } > break; > case INST_TYPE_RD_R2: > - fprintf(stream, "\t%s, %s", get_field_rd(inst), get_field_r2(inst)); > + fprintf_func(stream, "\t%s, %s", get_field_rd(inst), get_field_r2(inst)); > break; > case INST_TYPE_R2: > - fprintf(stream, "\t%s", get_field_r2(inst)); > + fprintf_func(stream, "\t%s", get_field_r2(inst)); > break; > case INST_TYPE_R1: > - fprintf(stream, "\t%s", get_field_r1(inst)); > + fprintf_func(stream, "\t%s", get_field_r1(inst)); > break; > case INST_TYPE_RD_R1_SPECIAL: > - fprintf(stream, "\t%s, %s", get_field_rd(inst), get_field_r2(inst)); > + fprintf_func(stream, "\t%s, %s", get_field_rd(inst), get_field_r2(inst)); > break; > case INST_TYPE_RD_IMM15: > - fprintf(stream, "\t%s, %s", get_field_rd(inst), get_field_imm15(inst)); > + fprintf_func(stream, "\t%s, %s", get_field_rd(inst), get_field_imm15(inst)); > break; > /* For tuqula instruction */ > case INST_TYPE_RD: > - fprintf(stream, "\t%s", get_field_rd(inst)); > + fprintf_func(stream, "\t%s", get_field_rd(inst)); > break; > case INST_TYPE_RFSL: > - fprintf(stream, "\t%s", get_field_rfsl(inst)); > + fprintf_func(stream, "\t%s", get_field_rfsl(inst)); > break; > default: > /* if the disassembler lags the instruction set */ > - fprintf (stream, "\tundecoded operands, inst is 0x%04lx", inst); > + fprintf_func (stream, "\tundecoded operands, inst is 0x%04lx", inst); > break; > } > } > > -- > 1.7.1 > > > > > >
diff --git a/microblaze-dis.c b/microblaze-dis.c index 9235fd8..7694a43 100644 --- a/microblaze-dis.c +++ b/microblaze-dis.c @@ -789,7 +789,7 @@ read_insn_microblaze (bfd_vma memaddr, int print_insn_microblaze (bfd_vma memaddr, struct disassemble_info * info) { - fprintf_ftype fprintf = info->fprintf_func; + fprintf_ftype fprintf_func = info->fprintf_func; void * stream = info->stream; unsigned long inst, prev_inst; struct op_code_struct * op, *pop; @@ -826,19 +826,19 @@ print_insn_microblaze (bfd_vma memaddr, struct disassemble_info * info) prev_insn_vma = curr_insn_vma; if (op->name == 0) { - fprintf (stream, ".short 0x%04lx", inst); + fprintf_func (stream, ".short 0x%04lx", inst); } else { - fprintf (stream, "%s", op->name); + fprintf_func (stream, "%s", op->name); switch (op->inst_type) { case INST_TYPE_RD_R1_R2: - fprintf(stream, "\t%s, %s, %s", get_field_rd(inst), get_field_r1(inst), get_field_r2(inst)); + fprintf_func(stream, "\t%s, %s, %s", get_field_rd(inst), get_field_r1(inst), get_field_r2(inst)); break; case INST_TYPE_RD_R1_IMM: - fprintf(stream, "\t%s, %s, %s", get_field_rd(inst), get_field_r1(inst), get_field_imm(inst)); + fprintf_func(stream, "\t%s, %s, %s", get_field_rd(inst), get_field_r1(inst), get_field_imm(inst)); if (info->print_address_func && get_int_field_r1(inst) == 0 && info->symbol_at_address_func) { if (immfound) immval |= (get_int_field_imm(inst) & 0x0000ffff); @@ -848,34 +848,34 @@ print_insn_microblaze (bfd_vma memaddr, struct disassemble_info * info) immval |= 0xFFFF0000; } if (immval > 0 && info->symbol_at_address_func(immval, info)) { - fprintf (stream, "\t// "); + fprintf_func (stream, "\t// "); info->print_address_func (immval, info); } } break; case INST_TYPE_RD_R1_IMM5: - fprintf(stream, "\t%s, %s, %s", get_field_rd(inst), get_field_r1(inst), get_field_imm5(inst)); + fprintf_func(stream, "\t%s, %s, %s", get_field_rd(inst), get_field_r1(inst), get_field_imm5(inst)); break; case INST_TYPE_RD_RFSL: - fprintf(stream, "\t%s, %s", get_field_rd(inst), get_field_rfsl(inst)); + fprintf_func(stream, "\t%s, %s", get_field_rd(inst), get_field_rfsl(inst)); break; case INST_TYPE_R1_RFSL: - fprintf(stream, "\t%s, %s", get_field_r1(inst), get_field_rfsl(inst)); + fprintf_func(stream, "\t%s, %s", get_field_r1(inst), get_field_rfsl(inst)); break; case INST_TYPE_RD_SPECIAL: - fprintf(stream, "\t%s, %s", get_field_rd(inst), get_field_special(inst, op)); + fprintf_func(stream, "\t%s, %s", get_field_rd(inst), get_field_special(inst, op)); break; case INST_TYPE_SPECIAL_R1: - fprintf(stream, "\t%s, %s", get_field_special(inst, op), get_field_r1(inst)); + fprintf_func(stream, "\t%s, %s", get_field_special(inst, op), get_field_r1(inst)); break; case INST_TYPE_RD_R1: - fprintf(stream, "\t%s, %s", get_field_rd(inst), get_field_r1(inst)); + fprintf_func(stream, "\t%s, %s", get_field_rd(inst), get_field_r1(inst)); break; case INST_TYPE_R1_R2: - fprintf(stream, "\t%s, %s", get_field_r1(inst), get_field_r2(inst)); + fprintf_func(stream, "\t%s, %s", get_field_r1(inst), get_field_r2(inst)); break; case INST_TYPE_R1_IMM: - fprintf(stream, "\t%s, %s", get_field_r1(inst), get_field_imm(inst)); + fprintf_func(stream, "\t%s, %s", get_field_r1(inst), get_field_imm(inst)); /* The non-pc relative instructions are returns, which shouldn't have a label printed */ if (info->print_address_func && op->inst_offset_type == INST_PC_OFFSET && info->symbol_at_address_func) { @@ -888,16 +888,16 @@ print_insn_microblaze (bfd_vma memaddr, struct disassemble_info * info) } immval += memaddr; if (immval > 0 && info->symbol_at_address_func(immval, info)) { - fprintf (stream, "\t// "); + fprintf_func (stream, "\t// "); info->print_address_func (immval, info); } else { - fprintf (stream, "\t\t// "); - fprintf (stream, "%x", immval); + fprintf_func (stream, "\t\t// "); + fprintf_func (stream, "%x", immval); } } break; case INST_TYPE_RD_IMM: - fprintf(stream, "\t%s, %s", get_field_rd(inst), get_field_imm(inst)); + fprintf_func(stream, "\t%s, %s", get_field_rd(inst), get_field_imm(inst)); if (info->print_address_func && info->symbol_at_address_func) { if (immfound) immval |= (get_int_field_imm(inst) & 0x0000ffff); @@ -909,13 +909,13 @@ print_insn_microblaze (bfd_vma memaddr, struct disassemble_info * info) if (op->inst_offset_type == INST_PC_OFFSET) immval += (int) memaddr; if (info->symbol_at_address_func(immval, info)) { - fprintf (stream, "\t// "); + fprintf_func (stream, "\t// "); info->print_address_func (immval, info); } } break; case INST_TYPE_IMM: - fprintf(stream, "\t%s", get_field_imm(inst)); + fprintf_func(stream, "\t%s", get_field_imm(inst)); if (info->print_address_func && info->symbol_at_address_func && op->instr != imm) { if (immfound) immval |= (get_int_field_imm(inst) & 0x0000ffff); @@ -927,39 +927,39 @@ print_insn_microblaze (bfd_vma memaddr, struct disassemble_info * info) if (op->inst_offset_type == INST_PC_OFFSET) immval += (int) memaddr; if (immval > 0 && info->symbol_at_address_func(immval, info)) { - fprintf (stream, "\t// "); + fprintf_func (stream, "\t// "); info->print_address_func (immval, info); } else if (op->inst_offset_type == INST_PC_OFFSET) { - fprintf (stream, "\t\t// "); - fprintf (stream, "%x", immval); + fprintf_func (stream, "\t\t// "); + fprintf_func (stream, "%x", immval); } } break; case INST_TYPE_RD_R2: - fprintf(stream, "\t%s, %s", get_field_rd(inst), get_field_r2(inst)); + fprintf_func(stream, "\t%s, %s", get_field_rd(inst), get_field_r2(inst)); break; case INST_TYPE_R2: - fprintf(stream, "\t%s", get_field_r2(inst)); + fprintf_func(stream, "\t%s", get_field_r2(inst)); break; case INST_TYPE_R1: - fprintf(stream, "\t%s", get_field_r1(inst)); + fprintf_func(stream, "\t%s", get_field_r1(inst)); break; case INST_TYPE_RD_R1_SPECIAL: - fprintf(stream, "\t%s, %s", get_field_rd(inst), get_field_r2(inst)); + fprintf_func(stream, "\t%s, %s", get_field_rd(inst), get_field_r2(inst)); break; case INST_TYPE_RD_IMM15: - fprintf(stream, "\t%s, %s", get_field_rd(inst), get_field_imm15(inst)); + fprintf_func(stream, "\t%s, %s", get_field_rd(inst), get_field_imm15(inst)); break; /* For tuqula instruction */ case INST_TYPE_RD: - fprintf(stream, "\t%s", get_field_rd(inst)); + fprintf_func(stream, "\t%s", get_field_rd(inst)); break; case INST_TYPE_RFSL: - fprintf(stream, "\t%s", get_field_rfsl(inst)); + fprintf_func(stream, "\t%s", get_field_rfsl(inst)); break; default: /* if the disassembler lags the instruction set */ - fprintf (stream, "\tundecoded operands, inst is 0x%04lx", inst); + fprintf_func (stream, "\tundecoded operands, inst is 0x%04lx", inst); break; } }