[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH V2 2/6] libqblock type and structure defines
From: |
Eric Blake |
Subject: |
Re: [Qemu-devel] [PATCH V2 2/6] libqblock type and structure defines |
Date: |
Wed, 12 Sep 2012 21:33:26 -0600 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:15.0) Gecko/20120828 Thunderbird/15.0 |
On 09/12/2012 09:24 PM, Wenchao Xia wrote:
> δΊ 2012-9-12 20:59, Eric Blake ει:
>> On 09/11/2012 09:05 PM, Wenchao Xia wrote:
>>>> Seriously? We require a C99-compliant compiler, which is required to
>>>> treat the more compact version identically (all undefined names
>>>> evaluate
>>>> to 0 in the preprocessor), and HACKING doesn't mandate that we spell
>>>> out
>>>> a defined-ness check first. Okay, so configure adds -Wundef to the set
>>>> of CFLAGS, but I fail to see why we want -Wundef (that's an
>>>> anachronistic warning, only there to help you if you are writing code
>>>> portable to K&R).
>>>>
>>> So if the preprocessor replaced __GNUC__ to 0, is there difference
>>> between these two kinds of macoros?
>>> #if __GNUC__ >= 4
>>> #if defined(__GNUC__) && __GNUC__ >=4
>>
>> The only difference is whether -Wundef will warn, and I'm trying to
>> argue that qemu's current use of -Wundef is pointless, as that warning
>> exists solely for K&R compatibility, not for modern standard-compliant
>> code correctness.
>>
> OK ,then I think
> #if __GNUC__ >= 4
> ....
> #else
> [warn name space pollution may happen]
> #endif
> would be better.
It may be shorter, but it is definitely not better, at least not in the
current context of qemu. Using the short form will fail a -Werror
build, unless you also write a patch to qemu's configure to quit
supplying -Wundef during builds. But as touching configure has a bigger
impact to the overall qemu project, you're going to need a lot more
buy-in from other developers that -Wundef is not helping qemu gain any
portability, and that it is safe to ditch it (or get enough
counter-arguments from other developers why qemu insists on the
anachronistic style enforced by -Wundef, at which point you must comply
and use the longer form).
--
Eric Blake address@hidden +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
- Re: [Qemu-devel] [PATCH V2 1/6] libqblock API design, (continued)
- [Qemu-devel] [PATCH V2 2/6] libqblock type and structure defines, Wenchao Xia, 2012/09/10
- Re: [Qemu-devel] [PATCH V2 2/6] libqblock type and structure defines, Blue Swirl, 2012/09/11
- Re: [Qemu-devel] [PATCH V2 2/6] libqblock type and structure defines, Eric Blake, 2012/09/11
- Re: [Qemu-devel] [PATCH V2 2/6] libqblock type and structure defines, Wenchao Xia, 2012/09/11
- Re: [Qemu-devel] [PATCH V2 2/6] libqblock type and structure defines, Eric Blake, 2012/09/12
- Re: [Qemu-devel] [PATCH V2 2/6] libqblock type and structure defines, Wenchao Xia, 2012/09/12
- Re: [Qemu-devel] [PATCH V2 2/6] libqblock type and structure defines,
Eric Blake <=
- Re: [Qemu-devel] [PATCH V2 2/6] libqblock type and structure defines, Eric Blake, 2012/09/12
- Re: [Qemu-devel] [PATCH V2 2/6] libqblock type and structure defines, Blue Swirl, 2012/09/14
- Re: [Qemu-devel] [PATCH V2 2/6] libqblock type and structure defines, Wenchao Xia, 2012/09/16
- Re: [Qemu-devel] [PATCH V2 2/6] libqblock type and structure defines, Blue Swirl, 2012/09/17
- Re: [Qemu-devel] [PATCH V2 2/6] libqblock type and structure defines, Blue Swirl, 2012/09/14