Commit 6e2d864e authored by Stefan Weil's avatar Stefan Weil Committed by Blue Swirl
Browse files

*-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: default avatarStefan Weil <weil@mail.berlios.de>
Signed-off-by: default avatarBlue Swirl <blauwirbel@gmail.com>
parent e6e055c9
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -22,6 +22,9 @@ along with this file; see the file COPYING. If not, see
#include <stdio.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.  */

struct alpha_opcode
+7 −7
Original line number Diff line number Diff line
@@ -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;
+2 −8
Original line number Diff line number Diff line
@@ -9,11 +9,7 @@
#ifndef DIS_ASM_H
#define DIS_ASM_H

#include <stdlib.h>
#include <stdbool.h>
#include <stdio.h>
#include <string.h>
#include <inttypes.h>
#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;

+1 −1
Original line number Diff line number Diff line
@@ -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;

+1 −1
Original line number Diff line number Diff line
@@ -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;
Loading