From patchwork Mon Nov 15 18:39:43 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Weil X-Patchwork-Id: 71266 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [199.232.76.165]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 4BDD8B7104 for ; Tue, 16 Nov 2010 05:41:20 +1100 (EST) Received: from localhost ([127.0.0.1]:36210 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PI3zQ-0000xl-QR for incoming@patchwork.ozlabs.org; Mon, 15 Nov 2010 13:41:16 -0500 Received: from [140.186.70.92] (port=54679 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PI3yE-0000eh-HZ for qemu-devel@nongnu.org; Mon, 15 Nov 2010 13:40:04 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PI3yA-0003W8-I4 for qemu-devel@nongnu.org; Mon, 15 Nov 2010 13:40:02 -0500 Received: from moutng.kundenserver.de ([212.227.17.9]:55789) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PI3yA-0003U8-6b for qemu-devel@nongnu.org; Mon, 15 Nov 2010 13:39:58 -0500 Received: from flocke.fritz.box (p5086F8F5.dip.t-dialin.net [80.134.248.245]) by mrelayeu.kundenserver.de (node=mreu2) with ESMTP (Nemesis) id 0MCuUJ-1P9VFA3UeJ-009Z0A; Mon, 15 Nov 2010 19:39:49 +0100 Received: from stefan by flocke.fritz.box with local (Exim 4.72) (envelope-from ) id 1PI3xy-0004Hx-J8; Mon, 15 Nov 2010 19:39:46 +0100 From: Stefan Weil To: QEMU Developers Date: Mon, 15 Nov 2010 19:39:43 +0100 Message-Id: <1289846383-16456-1-git-send-email-weil@mail.berlios.de> X-Mailer: git-send-email 1.7.2.3 X-Provags-ID: V02:K0:O0USYvz09Hvtpgulu9uV3R/vSSt4Lj7itJX+qUqpw3G Asb9gBnx/RB68Xh/o7WE/dq8DyPhX57po/jpXjb02U4TAzq0eA zy0gwRpm953GmO/W9+VTuKu7fllsEoiYDEOKv3nXlCUpac6zZv qScqh/wdqan6uAc5ip+YGORZRR4MDBkXdAWwgbKa6pB7IDlqk2 wSg0HwrWbYfG0kHvBaaDfJGBm/vulytCMEdykFG02YADLeGvFr nevpKi8ipFL// X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. Cc: Blue Swirl Subject: [Qemu-devel] [PATCH] *-dis: Replace fprintf_ftype by fprintf_function (format checking) X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org 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 Signed-off-by: Stefan Weil --- alpha-dis.c | 3 +++ arm-dis.c | 14 +++++++------- dis-asm.h | 10 ++-------- m68k-dis.c | 2 +- microblaze-dis.c | 2 +- mips-dis.c | 2 -- sh4-dis.c | 16 +++++----------- 7 files changed, 19 insertions(+), 30 deletions(-) diff --git a/alpha-dis.c b/alpha-dis.c index 970da5b..8a2411e 100644 --- a/alpha-dis.c +++ b/alpha-dis.c @@ -22,6 +22,9 @@ along with this file; see the file COPYING. If not, see #include #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. */ struct alpha_opcode diff --git a/arm-dis.c b/arm-dis.c index fe7ac99..af21739 100644 --- a/arm-dis.c +++ b/arm-dis.c @@ -1587,7 +1587,7 @@ arm_decode_bitfield (const char *ptr, unsigned long insn, } 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) { 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; void *stream = info->stream; - fprintf_ftype func = info->fprintf_func; + fprintf_function func = info->fprintf_func; unsigned long mask; unsigned long value; int cond; @@ -2127,7 +2127,7 @@ static void print_arm_address (bfd_vma pc, struct disassemble_info *info, long given) { void *stream = info->stream; - fprintf_ftype func = info->fprintf_func; + fprintf_function func = info->fprintf_func; if (((given & 0x000f0000) == 0x000f0000) && ((given & 0x02000000) == 0)) @@ -2222,7 +2222,7 @@ print_insn_neon (struct disassemble_info *info, long given, bfd_boolean thumb) { const struct opcode32 *insn; void *stream = info->stream; - fprintf_ftype func = info->fprintf_func; + fprintf_function func = info->fprintf_func; if (thumb) { @@ -2676,7 +2676,7 @@ print_insn_arm_internal (bfd_vma pc, struct disassemble_info *info, long given) { const struct opcode32 *insn; void *stream = info->stream; - fprintf_ftype func = info->fprintf_func; + fprintf_function func = info->fprintf_func; if (print_insn_coprocessor (pc, info, given, false)) return; @@ -3036,7 +3036,7 @@ print_insn_thumb16 (bfd_vma pc, struct disassemble_info *info, long given) { const struct opcode16 *insn; void *stream = info->stream; - fprintf_ftype func = info->fprintf_func; + fprintf_function func = info->fprintf_func; for (insn = thumb_opcodes; insn->assembler; insn++) 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; void *stream = info->stream; - fprintf_ftype func = info->fprintf_func; + fprintf_function func = info->fprintf_func; if (print_insn_coprocessor (pc, info, given, true)) return; diff --git a/dis-asm.h b/dis-asm.h index 9b9657e..3fb4838 100644 --- a/dis-asm.h +++ b/dis-asm.h @@ -9,11 +9,7 @@ #ifndef DIS_ASM_H #define DIS_ASM_H -#include -#include -#include -#include -#include +#include "qemu-common.h" typedef void *PTR; typedef uint64_t bfd_vma; @@ -237,8 +233,6 @@ typedef struct symbol_cache_entry } udata; } asymbol; -typedef int (*fprintf_ftype) (FILE*, const char*, ...); - enum dis_insn_type { dis_noninsn, /* Not a valid 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. */ typedef struct disassemble_info { - fprintf_ftype fprintf_func; + fprintf_function fprintf_func; FILE *stream; PTR application_data; diff --git a/m68k-dis.c b/m68k-dis.c index d93943e..04f837a 100644 --- a/m68k-dis.c +++ b/m68k-dis.c @@ -1732,7 +1732,7 @@ match_insn_m68k (bfd_vma memaddr, const char *d; 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 *) = info->print_address_func; diff --git a/microblaze-dis.c b/microblaze-dis.c index 7694a43..16c312f 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_func = info->fprintf_func; + fprintf_function fprintf_func = info->fprintf_func; void * stream = info->stream; unsigned long inst, prev_inst; struct op_code_struct * op, *pop; diff --git a/mips-dis.c b/mips-dis.c index 279b591..4d8e85b 100644 --- a/mips-dis.c +++ b/mips-dis.c @@ -3117,8 +3117,6 @@ struct mips_arch_choice #define bfd_mach_mipsisa64 64 #define bfd_mach_mipsisa64r2 65 -#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0])) - static const struct mips_arch_choice mips_arch_choices[] = { { "numeric", 0, 0, 0, 0, diff --git a/sh4-dis.c b/sh4-dis.c index 078a6b2..673bc78 100644 --- a/sh4-dis.c +++ b/sh4-dis.c @@ -1163,15 +1163,9 @@ const sh_opcode_info sh_table[] = #define INCLUDE_SHMEDIA #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 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; @@ -1247,7 +1241,7 @@ print_movxy (const sh_opcode_info *op, int rn, int rm, static void 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; /* 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 -print_dsp_reg (int rm, fprintf_ftype fprintf_fn, void *stream) +print_dsp_reg (int rm, fprintf_function fprintf_fn, void *stream) { 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 *sy_tab[] = { "y0", "y1", "m0", "m1" }; - fprintf_ftype fprintf_fn = info->fprintf_func; + fprintf_function fprintf_fn = info->fprintf_func; void *stream = info->stream; unsigned int nib1, nib2, nib3; unsigned int altnib1, nib4; @@ -1520,7 +1514,7 @@ print_insn_ppi (int field_b, struct disassemble_info *info) int 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; unsigned char insn[4]; unsigned char nibs[8];