tinycc-devel
[Top][All Lists]
Advanced

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

[Tinycc-devel] [bug fix]typeof should ignore some attributes


From: Tao Wu
Subject: [Tinycc-devel] [bug fix]typeof should ignore some attributes
Date: Mon, 27 Jun 2005 23:33:10 +0800

Hi,
   I think typeof should ignore some attributes like "external",
otherwise the following code will not compile.

...

#define max(x,y) ({ \
        const typeof(x) _x = (x);       \
        const typeof(y) _y = (y);       \
        (void) (&_x == &_y);            \
        _x > _y ? _x : _y; }) ? _x : _y; })

...
extern int a;

int b=max(a,4);

the problem is that compiler can not parse "const extern int _x = (a);"

the following patch should fix it, but I don't know whether I have
ignored some attributes which should not be ignored by "typeof". But I
think "exter"diff -urN tcc-0.9.23/tcc.c tcc-0.9.23-lepton/tcc.c
--- tcc-0.9.23/tcc.c    2005-06-27 23:05:42.000000000 +0800
+++ tcc-0.9.23-lepton/tcc.c     2005-06-27 01:34:12.000000000 +0800
@@ -6690,7 +6690,7 @@
         case TOK_ENUM:
             struct_decl(&type1, VT_ENUM);
         basic_type2:
-            u = type1.t;
+            u = type1.t &
(~(VT_EXTERN|VT_STATIC|VT_INLINE|VT_CONST|VT_VOLATILE));
             type->ref = type1.ref;
             goto basic_type1;
         case TOK_STRUCT:




reply via email to

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