From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:50982) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TEMjy-00081O-6d for qemu-devel@nongnu.org; Wed, 19 Sep 2012 12:03:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TEMjs-0007b3-1U for qemu-devel@nongnu.org; Wed, 19 Sep 2012 12:03:06 -0400 Received: from mail-pb0-f45.google.com ([209.85.160.45]:48008) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TEMjr-0007ar-Rm for qemu-devel@nongnu.org; Wed, 19 Sep 2012 12:02:59 -0400 Received: by pbbrp12 with SMTP id rp12so2783640pbb.4 for ; Wed, 19 Sep 2012 09:02:59 -0700 (PDT) Sender: Paolo Bonzini Message-ID: <5059ECAB.2070409@redhat.com> Date: Wed, 19 Sep 2012 18:02:51 +0200 From: Paolo Bonzini MIME-Version: 1.0 References: <1348065078-5139-1-git-send-email-pbonzini@redhat.com> <1348065078-5139-5-git-send-email-pbonzini@redhat.com> <5059EB94.9060409@redhat.com> In-Reply-To: <5059EB94.9060409@redhat.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 04/12] qapi: add "unix" to the set of reserved words List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , qemu-devel@nongnu.org, lcapitulino@redhat.com 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 wrote: >>> It is #defined to 1. >>> >>> Signed-off-by: Paolo Bonzini >>> --- >>> 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