All of lore.kernel.org
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: Stefan Weil <weil@mail.berlios.de>
Cc: Alexandre Raymond <cerbere@gmail.com>,
	qemu-trivial@nongnu.org, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 5/6] Remove warning in printf due to type mismatch
Date: Fri, 27 May 2011 21:11:42 +0200	[thread overview]
Message-ID: <m38vtst0up.fsf@blackfin.pond.sub.org> (raw)
In-Reply-To: <4DDFE0C9.5040907@mail.berlios.de> (Stefan Weil's message of "Fri, 27 May 2011 19:35:05 +0200")

Stefan Weil <weil@mail.berlios.de> writes:

> Am 27.05.2011 19:22, schrieb Alexandre Raymond:
>> ----8<----
>> qemu/target-lm32/translate.c: In function
>> ‘gen_intermediate_code_internal’:
>> qemu/target-lm32/translate.c:1135: warning: format ‘%zd’ expects
>> type ‘signed size_t’, but argument 4 has type ‘int’
>> ----8<----
>>
>> Both gen_opc_ptr and gen_opc_buf are "uint16_t *", so a simple '%d' should
>> be able to describe their relative difference.
>>
>> Signed-off-by: Alexandre Raymond <cerbere@gmail.com>
>> ---
>> target-lm32/translate.c | 2 +-
>> 1 files changed, 1 insertions(+), 1 deletions(-)
>>
>> diff --git a/target-lm32/translate.c b/target-lm32/translate.c
>> index eb21158..0f69f27 100644
>> --- a/target-lm32/translate.c
>> +++ b/target-lm32/translate.c
>> @@ -1132,7 +1132,7 @@ static void
>> gen_intermediate_code_internal(CPUState *env,
>> if (qemu_loglevel_mask(CPU_LOG_TB_IN_ASM)) {
>> qemu_log("\n");
>> log_target_disas(pc_start, dc->pc - pc_start, 0);
>> - qemu_log("\nisize=%d osize=%zd\n",
>> + qemu_log("\nisize=%d osize=%d\n",
>> dc->pc - pc_start, gen_opc_ptr - gen_opc_buf);
>> }
>> #endif
>
> Nack.
>
> The original code is correct, because the difference of two pointers
> is always of type ssize_t (well, obviously not with your compiler,
> but then I assume that your compiler is broken).

ISO/IEC 9899:1999 §6.5.6 on pointer subtraction:

    The size of the result is implementation-defined, and its type (a
    signed integer type) is ptrdiff_t defined in the <stddef.h> header.

The pedantically correct way to print a pointer difference is the 't'
type modifier.  Ibid. §7.19.6.1 on fprintf():

    t   Specifies  that a following d, i, o, u, x, or X conversion
        specifier applies to a ptrdiff_t or the corresponding unsigned
        integer type argument; or that a following n conversion
        specifier applies to a pointer to a ptrdiff_t argument.

ssize_t is POSIX, not ISO C.  It can differ from ptrdiff_t only if
ptrdiff_t has a different size than size_t, which would be kind of sick.
ISO C permits all kinds of sickness.  Whether tolerating a particular
sickness is worth our while is another question.

[...]

  reply	other threads:[~2011-05-27 19:11 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-27 17:22 [Qemu-devel] [PATCH 0/6] Fix compilation issues under darwin Alexandre Raymond
2011-05-27 17:22 ` [Qemu-devel] [PATCH 1/6] Fix incorrect check for fdatasync() in configure Alexandre Raymond
2011-05-29 14:50   ` Andreas Färber
2011-05-29 15:46     ` Alexandre Raymond
2011-05-29 17:05       ` Andreas Färber
2011-05-27 17:22 ` [Qemu-devel] [PATCH 2/6] Cocoa: avoid displaying window when command-line contains '-h' Alexandre Raymond
2011-05-28 15:05   ` Andreas Färber
2011-05-27 17:22 ` [Qemu-devel] [PATCH 3/6] Fix compilation warning due to incorrectly specified type Alexandre Raymond
2011-05-27 17:42   ` Stefan Weil
2011-05-29 15:02     ` Andreas Färber
2011-05-27 17:22 ` [Qemu-devel] [PATCH 4/6] Fix missing prototype under cocoa for qemu_main Alexandre Raymond
2011-05-29 15:11   ` Andreas Färber
2011-05-29 19:58     ` [Qemu-devel] [PATCH] cocoa: Provide central qemu_main() prototype Andreas Färber
2011-05-29 23:53       ` Alexandre Raymond
2011-06-02 11:33         ` Andreas Färber
2011-06-09 18:30       ` Andreas Färber
2011-05-27 17:22 ` [Qemu-devel] [PATCH 5/6] Remove warning in printf due to type mismatch Alexandre Raymond
2011-05-27 17:35   ` Stefan Weil
2011-05-27 19:11     ` Markus Armbruster [this message]
2011-05-27 20:44       ` Stefan Weil
2011-05-27 22:10         ` Alexandre Raymond
2011-05-28  6:55           ` Paolo Bonzini
2011-05-28  8:19             ` Stefan Weil
2011-05-27 17:22 ` [Qemu-devel] [PATCH 6/6] Avoid compilation warning regarding kvm under darwin Alexandre Raymond
2011-05-27 17:39   ` Stefan Weil
2011-05-28 14:55 ` [Qemu-devel] [PATCH 0/6] Fix compilation issues " Andreas Färber
2011-05-28 19:41   ` [Qemu-devel] [Qemu-trivial] " Stefan Hajnoczi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m38vtst0up.fsf@blackfin.pond.sub.org \
    --to=armbru@redhat.com \
    --cc=cerbere@gmail.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-trivial@nongnu.org \
    --cc=weil@mail.berlios.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.