[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 04/12] qapi: add "unix" to the set of reserved w
From: |
Blue Swirl |
Subject: |
Re: [Qemu-devel] [PATCH 04/12] qapi: add "unix" to the set of reserved words |
Date: |
Wed, 19 Sep 2012 19:29:55 +0000 |
On Wed, Sep 19, 2012 at 4:02 PM, Paolo Bonzini <address@hidden> wrote:
> Il 19/09/2012 17:58, Paolo Bonzini ha scritto:
>> Il 19/09/2012 17:46, Peter Maydell ha scritto:
>>> On 19 September 2012 15:31, Paolo Bonzini <address@hidden> wrote:
>>>> It is #defined to 1.
>>>>
>>>> Signed-off-by: Paolo Bonzini <address@hidden>
>>>> ---
>>>> scripts/qapi.py | 4 +++-
>>>> 1 file modificato, 3 inserzioni(+). 1 rimozione(-)
>>>>
>>>> diff --git a/scripts/qapi.py b/scripts/qapi.py
>>>> index 057332e..afc5f32 100644
>>>> --- a/scripts/qapi.py
>>>> +++ b/scripts/qapi.py
>>>> @@ -156,7 +156,9 @@ def c_var(name, protect=True):
>>>> # GCC http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/C-Extensions.html
>>>> # excluding _.*
>>>> gcc_words = set(['asm', 'typeof'])
>>>> - if protect and (name in c89_words | c99_words | c11_words |
>>>> gcc_words):
>>>> + # namespace pollution:
>>>> + polluted_words = set(['unix'])
>>>> + if protect and (name in c89_words | c99_words | c11_words | gcc_words
>>>> | polluted_words):
>>>> return "q_" + name
>>>> return name.replace('-', '_').lstrip("*")
>>>>
>>>
>>> I can't help thinking this is fighting a losing battle, and we should just
>>> always prefix everything to avoid clashes.
>>
>> That would be so ugly that it would be almost useless. Plus there would
>> be a huge amount of code to convert.
>
> Also, not really that bad:
>
> $ gcc -dM -x c /dev/null -E|grep define\ [^_]
> #define unix 1
> #define linux 1
>
> I don't expect other OSes to be significantly worse. Remember this
> breakage is not limited to QAPI-generated code, it would happen in
> normal code as well. I learnt today that a variable named "unix" is not
> kosher.
I got only this from OpenBSD:
#define sparc 1
Mingw has these:
#define WIN32 1
#define WINNT 1
#define i386 1
I'd suppose the full list from GCC is this:
$ grep -hr 'builtin_define_std' gcc/config |sed -n
's/.*"\([^"]*\)".*/\1/p'|sort -u
AVR
BFIN
CRIS
GNU_CRIS
GO32
LANGUAGE_ASSEMBLY
LANGUAGE_C
LANGUAGE_C_PLUS_PLUS
LANGUAGE_OBJECTIVE_C
MACH
MIPSEB
MIPSEL
MOXIE
MSDOS
PPC
R3000
R4000
REVARGV
SYSTYPE_BSD
SYSTYPE_SVR4
VMS
WIN32
WIN64
WINNT
bfin
cris
fr30
h8300
host_mips
hp800
hp9000
hp9k8
hpux
i386
linux
mc68000
mc68010
mc68020
mc68030
mc68040
mc68060
mc68332
mcpu32
mep
moxie
pdp11
powerpc
sgi
sparc
spectrum
sun
tpf
unix
vms
xstormy16
>
> Paolo
>
[Qemu-devel] [PATCH 06/12] qapi: add socket address types, Paolo Bonzini, 2012/09/19
[Qemu-devel] [PATCH 07/12] qemu-sockets: add error propagation to inet_parse, Paolo Bonzini, 2012/09/19
[Qemu-devel] [PATCH 08/12] qemu-sockets: add error propagation to Unix socket functions, Paolo Bonzini, 2012/09/19
[Qemu-devel] [PATCH 12/12] qemu-sockets: add socket_listen, socket_connect, socket_parse, Paolo Bonzini, 2012/09/19
[Qemu-devel] [PATCH 13/12] block: add close notifiers, Paolo Bonzini, 2012/09/19
[Qemu-devel] [PATCH 14/12] qmp: add NBD server commands, Paolo Bonzini, 2012/09/19