qemu-devel
[Top][All Lists]
Advanced

[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: Paolo Bonzini
Subject: Re: [Qemu-devel] [PATCH 04/12] qapi: add "unix" to the set of reserved words
Date: Wed, 19 Sep 2012 18:02:51 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:15.0) Gecko/20120828 Thunderbird/15.0

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.

Paolo



reply via email to

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