*-dis: Replace fprintf_ftype by fprintf_function (format checking)
This patch adds more printf format checking. Additional modifications were needed for this code change: * alpha-dis.c: The local definition of MAX conflicts with a previous definition from osdep.h, so add an #undef. * dis-asm.h: Add include for fprintf_function (qemu-common.h). The standard (now redundant) includes are removed. * mis-dis.c: The definition of ARRAY_SIZE is no longer needed and must be removed (conflict with previous definition from qemu-common.h). * sh4-dis.c: Remove some unneeded forward declarations. Cc: Blue Swirl <blauwirbel@gmail.com> Signed-off-by: Stefan Weil <weil@mail.berlios.de> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
This commit is contained in:
parent
e6e055c9d7
commit
6e2d864edf
@ -22,6 +22,9 @@ along with this file; see the file COPYING. If not, see
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "dis-asm.h"
|
#include "dis-asm.h"
|
||||||
|
|
||||||
|
/* MAX is redefined below, so remove any previous definition. */
|
||||||
|
#undef MAX
|
||||||
|
|
||||||
/* The opcode table is an array of struct alpha_opcode. */
|
/* The opcode table is an array of struct alpha_opcode. */
|
||||||
|
|
||||||
struct alpha_opcode
|
struct alpha_opcode
|
||||||
|
14
arm-dis.c
14
arm-dis.c
@ -1587,7 +1587,7 @@ arm_decode_bitfield (const char *ptr, unsigned long insn,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
arm_decode_shift (long given, fprintf_ftype func, void *stream,
|
arm_decode_shift (long given, fprintf_function func, void *stream,
|
||||||
int print_shift)
|
int print_shift)
|
||||||
{
|
{
|
||||||
func (stream, "%s", arm_regnames[given & 0xf]);
|
func (stream, "%s", arm_regnames[given & 0xf]);
|
||||||
@ -1633,7 +1633,7 @@ print_insn_coprocessor (bfd_vma pc, struct disassemble_info *info, long given,
|
|||||||
{
|
{
|
||||||
const struct opcode32 *insn;
|
const struct opcode32 *insn;
|
||||||
void *stream = info->stream;
|
void *stream = info->stream;
|
||||||
fprintf_ftype func = info->fprintf_func;
|
fprintf_function func = info->fprintf_func;
|
||||||
unsigned long mask;
|
unsigned long mask;
|
||||||
unsigned long value;
|
unsigned long value;
|
||||||
int cond;
|
int cond;
|
||||||
@ -2127,7 +2127,7 @@ static void
|
|||||||
print_arm_address (bfd_vma pc, struct disassemble_info *info, long given)
|
print_arm_address (bfd_vma pc, struct disassemble_info *info, long given)
|
||||||
{
|
{
|
||||||
void *stream = info->stream;
|
void *stream = info->stream;
|
||||||
fprintf_ftype func = info->fprintf_func;
|
fprintf_function func = info->fprintf_func;
|
||||||
|
|
||||||
if (((given & 0x000f0000) == 0x000f0000)
|
if (((given & 0x000f0000) == 0x000f0000)
|
||||||
&& ((given & 0x02000000) == 0))
|
&& ((given & 0x02000000) == 0))
|
||||||
@ -2222,7 +2222,7 @@ print_insn_neon (struct disassemble_info *info, long given, bfd_boolean thumb)
|
|||||||
{
|
{
|
||||||
const struct opcode32 *insn;
|
const struct opcode32 *insn;
|
||||||
void *stream = info->stream;
|
void *stream = info->stream;
|
||||||
fprintf_ftype func = info->fprintf_func;
|
fprintf_function func = info->fprintf_func;
|
||||||
|
|
||||||
if (thumb)
|
if (thumb)
|
||||||
{
|
{
|
||||||
@ -2676,7 +2676,7 @@ print_insn_arm_internal (bfd_vma pc, struct disassemble_info *info, long given)
|
|||||||
{
|
{
|
||||||
const struct opcode32 *insn;
|
const struct opcode32 *insn;
|
||||||
void *stream = info->stream;
|
void *stream = info->stream;
|
||||||
fprintf_ftype func = info->fprintf_func;
|
fprintf_function func = info->fprintf_func;
|
||||||
|
|
||||||
if (print_insn_coprocessor (pc, info, given, false))
|
if (print_insn_coprocessor (pc, info, given, false))
|
||||||
return;
|
return;
|
||||||
@ -3036,7 +3036,7 @@ print_insn_thumb16 (bfd_vma pc, struct disassemble_info *info, long given)
|
|||||||
{
|
{
|
||||||
const struct opcode16 *insn;
|
const struct opcode16 *insn;
|
||||||
void *stream = info->stream;
|
void *stream = info->stream;
|
||||||
fprintf_ftype func = info->fprintf_func;
|
fprintf_function func = info->fprintf_func;
|
||||||
|
|
||||||
for (insn = thumb_opcodes; insn->assembler; insn++)
|
for (insn = thumb_opcodes; insn->assembler; insn++)
|
||||||
if ((given & insn->mask) == insn->value)
|
if ((given & insn->mask) == insn->value)
|
||||||
@ -3312,7 +3312,7 @@ print_insn_thumb32 (bfd_vma pc, struct disassemble_info *info, long given)
|
|||||||
{
|
{
|
||||||
const struct opcode32 *insn;
|
const struct opcode32 *insn;
|
||||||
void *stream = info->stream;
|
void *stream = info->stream;
|
||||||
fprintf_ftype func = info->fprintf_func;
|
fprintf_function func = info->fprintf_func;
|
||||||
|
|
||||||
if (print_insn_coprocessor (pc, info, given, true))
|
if (print_insn_coprocessor (pc, info, given, true))
|
||||||
return;
|
return;
|
||||||
|
10
dis-asm.h
10
dis-asm.h
@ -9,11 +9,7 @@
|
|||||||
#ifndef DIS_ASM_H
|
#ifndef DIS_ASM_H
|
||||||
#define DIS_ASM_H
|
#define DIS_ASM_H
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include "qemu-common.h"
|
||||||
#include <stdbool.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <inttypes.h>
|
|
||||||
|
|
||||||
typedef void *PTR;
|
typedef void *PTR;
|
||||||
typedef uint64_t bfd_vma;
|
typedef uint64_t bfd_vma;
|
||||||
@ -237,8 +233,6 @@ typedef struct symbol_cache_entry
|
|||||||
} udata;
|
} udata;
|
||||||
} asymbol;
|
} asymbol;
|
||||||
|
|
||||||
typedef int (*fprintf_ftype) (FILE*, const char*, ...);
|
|
||||||
|
|
||||||
enum dis_insn_type {
|
enum dis_insn_type {
|
||||||
dis_noninsn, /* Not a valid instruction */
|
dis_noninsn, /* Not a valid instruction */
|
||||||
dis_nonbranch, /* Not a branch instruction */
|
dis_nonbranch, /* Not a branch instruction */
|
||||||
@ -261,7 +255,7 @@ enum dis_insn_type {
|
|||||||
by hand, or using one of the initialization macros below. */
|
by hand, or using one of the initialization macros below. */
|
||||||
|
|
||||||
typedef struct disassemble_info {
|
typedef struct disassemble_info {
|
||||||
fprintf_ftype fprintf_func;
|
fprintf_function fprintf_func;
|
||||||
FILE *stream;
|
FILE *stream;
|
||||||
PTR application_data;
|
PTR application_data;
|
||||||
|
|
||||||
|
@ -1732,7 +1732,7 @@ match_insn_m68k (bfd_vma memaddr,
|
|||||||
const char *d;
|
const char *d;
|
||||||
|
|
||||||
bfd_byte *buffer = priv->the_buffer;
|
bfd_byte *buffer = priv->the_buffer;
|
||||||
fprintf_ftype save_printer = info->fprintf_func;
|
fprintf_function save_printer = info->fprintf_func;
|
||||||
void (* save_print_address) (bfd_vma, struct disassemble_info *)
|
void (* save_print_address) (bfd_vma, struct disassemble_info *)
|
||||||
= info->print_address_func;
|
= info->print_address_func;
|
||||||
|
|
||||||
|
@ -789,7 +789,7 @@ read_insn_microblaze (bfd_vma memaddr,
|
|||||||
int
|
int
|
||||||
print_insn_microblaze (bfd_vma memaddr, struct disassemble_info * info)
|
print_insn_microblaze (bfd_vma memaddr, struct disassemble_info * info)
|
||||||
{
|
{
|
||||||
fprintf_ftype fprintf_func = info->fprintf_func;
|
fprintf_function fprintf_func = info->fprintf_func;
|
||||||
void * stream = info->stream;
|
void * stream = info->stream;
|
||||||
unsigned long inst, prev_inst;
|
unsigned long inst, prev_inst;
|
||||||
struct op_code_struct * op, *pop;
|
struct op_code_struct * op, *pop;
|
||||||
|
@ -3117,8 +3117,6 @@ struct mips_arch_choice
|
|||||||
#define bfd_mach_mipsisa64 64
|
#define bfd_mach_mipsisa64 64
|
||||||
#define bfd_mach_mipsisa64r2 65
|
#define bfd_mach_mipsisa64r2 65
|
||||||
|
|
||||||
#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
|
|
||||||
|
|
||||||
static const struct mips_arch_choice mips_arch_choices[] =
|
static const struct mips_arch_choice mips_arch_choices[] =
|
||||||
{
|
{
|
||||||
{ "numeric", 0, 0, 0, 0,
|
{ "numeric", 0, 0, 0, 0,
|
||||||
|
16
sh4-dis.c
16
sh4-dis.c
@ -1163,15 +1163,9 @@ const sh_opcode_info sh_table[] =
|
|||||||
#define INCLUDE_SHMEDIA
|
#define INCLUDE_SHMEDIA
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static void print_movxy
|
|
||||||
(const sh_opcode_info *, int, int, fprintf_ftype, void *);
|
|
||||||
static void print_insn_ddt (int, struct disassemble_info *);
|
|
||||||
static void print_dsp_reg (int, fprintf_ftype, void *);
|
|
||||||
static void print_insn_ppi (int, struct disassemble_info *);
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
print_movxy (const sh_opcode_info *op, int rn, int rm,
|
print_movxy (const sh_opcode_info *op, int rn, int rm,
|
||||||
fprintf_ftype fprintf_fn, void *stream)
|
fprintf_function fprintf_fn, void *stream)
|
||||||
{
|
{
|
||||||
int n;
|
int n;
|
||||||
|
|
||||||
@ -1247,7 +1241,7 @@ print_movxy (const sh_opcode_info *op, int rn, int rm,
|
|||||||
static void
|
static void
|
||||||
print_insn_ddt (int insn, struct disassemble_info *info)
|
print_insn_ddt (int insn, struct disassemble_info *info)
|
||||||
{
|
{
|
||||||
fprintf_ftype fprintf_fn = info->fprintf_func;
|
fprintf_function fprintf_fn = info->fprintf_func;
|
||||||
void *stream = info->stream;
|
void *stream = info->stream;
|
||||||
|
|
||||||
/* If this is just a nop, make sure to emit something. */
|
/* If this is just a nop, make sure to emit something. */
|
||||||
@ -1332,7 +1326,7 @@ print_insn_ddt (int insn, struct disassemble_info *info)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
print_dsp_reg (int rm, fprintf_ftype fprintf_fn, void *stream)
|
print_dsp_reg (int rm, fprintf_function fprintf_fn, void *stream)
|
||||||
{
|
{
|
||||||
switch (rm)
|
switch (rm)
|
||||||
{
|
{
|
||||||
@ -1377,7 +1371,7 @@ print_insn_ppi (int field_b, struct disassemble_info *info)
|
|||||||
{
|
{
|
||||||
static const char *sx_tab[] = { "x0", "x1", "a0", "a1" };
|
static const char *sx_tab[] = { "x0", "x1", "a0", "a1" };
|
||||||
static const char *sy_tab[] = { "y0", "y1", "m0", "m1" };
|
static const char *sy_tab[] = { "y0", "y1", "m0", "m1" };
|
||||||
fprintf_ftype fprintf_fn = info->fprintf_func;
|
fprintf_function fprintf_fn = info->fprintf_func;
|
||||||
void *stream = info->stream;
|
void *stream = info->stream;
|
||||||
unsigned int nib1, nib2, nib3;
|
unsigned int nib1, nib2, nib3;
|
||||||
unsigned int altnib1, nib4;
|
unsigned int altnib1, nib4;
|
||||||
@ -1520,7 +1514,7 @@ print_insn_ppi (int field_b, struct disassemble_info *info)
|
|||||||
int
|
int
|
||||||
print_insn_sh (bfd_vma memaddr, struct disassemble_info *info)
|
print_insn_sh (bfd_vma memaddr, struct disassemble_info *info)
|
||||||
{
|
{
|
||||||
fprintf_ftype fprintf_fn = info->fprintf_func;
|
fprintf_function fprintf_fn = info->fprintf_func;
|
||||||
void *stream = info->stream;
|
void *stream = info->stream;
|
||||||
unsigned char insn[4];
|
unsigned char insn[4];
|
||||||
unsigned char nibs[8];
|
unsigned char nibs[8];
|
||||||
|
Loading…
Reference in New Issue
Block a user