qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC 10/19] target-alpha: Refactor debug output macros


From: Peter Maydell
Subject: Re: [Qemu-devel] [RFC 10/19] target-alpha: Refactor debug output macros
Date: Mon, 28 Jan 2013 18:59:15 +0000

On 28 January 2013 18:54, Andreas Färber <address@hidden> wrote:
> Am 28.01.2013 19:22, schrieb Richard Henderson:
>> On 01/27/2013 05:32 AM, Andreas Färber wrote:
>>> +#define LOG_DISAS(...) G_STMT_START \
>>> +    if (ALPHA_DEBUG_DISAS) { \
>>> +        qemu_log_mask(CPU_LOG_TB_IN_ASM, ## __VA_ARGS__); \
>>> +    } \
>>> +    G_STMT_END
>>
>> I see zero advantage to using G_STMT_START/END over the
>> shorter and significantly more obvious direct use of do/while.
>
> Well, I see close to zero advantage in using a loop at all.

Er, what? "do ... while (0)" is completely standard practice
for writing robust macros in C. Patches which don't do that
should fail code review.

> An inline function by comparison would relieve us from
> all that \ ugliness, too.

This is a completely separate argument.
 C macro with do..while(0): OK
 inline function: also OK
 C macro missing do..while(0) protection: not OK
 C macro using glib obfuscated macros: also not OK

-- PMM



reply via email to

[Prev in Thread] Current Thread [Next in Thread]