tinycc-devel
[Top][All Lists]
Advanced

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

Re: [Tinycc-devel] macro expansion bug


From: Vincent Lefevre
Subject: Re: [Tinycc-devel] macro expansion bug
Date: Wed, 2 Apr 2014 16:58:21 +0200
User-agent: Mutt/1.5.21-6305-vl-r59709 (2013-04-16)

On 2014-04-02 14:46:36 +0100, Jay Foad wrote:
> With tcc I get:
> 
> $ cat cat.c
> #define CAT2(a,b) a##b
> #define CAT(a,b) CAT2(a,b)
> #define AB(x) CAT(x,y)
> CAT(A,B)(x)
> $ ./tcc -E cat.c
> # 2 "cat.c"
> 
> 
> CAT(x,y)
> 
> But I think this is wrong, because gcc -E and clang -E both expand the
> last line further to give just:
> 
> xy

For future testcases, this means that this wouldn't be equivalent to:

#define CAT2(a,b) a##b(x)
#define CAT(a,b) CAT2(a,b)
#define AB(x) CAT(x,y)
CAT(A,B)

and

#define CAT2(a,b) a##b
#define CAT(a,b) CAT2(a,b)(x)
#define AB(x) CAT(x,y)
CAT(A,B)

which both give:

CAT(x,y)

for the last line.

FYI, icc (ICC) 13.1.0 20130121 behaves like gcc.

-- 
Vincent Lefèvre <address@hidden> - Web: <https://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)



reply via email to

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