compiler/libec: Only using gcc_struct attribute for MinGW
[sdk] / compiler / bootstrap / libec / bootstrap / expression.c
index d1c6a2e..0a36b6b 100644 (file)
@@ -35,6 +35,18 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define ecere_stdcall __attribute__((__stdcall__))
+#      define ecere_gcc_struct __attribute__((gcc_struct))
+#   else
+#      define ecere_stdcall __stdcall
+#      define ecere_gcc_struct
+#   endif
+#else
+#   define ecere_stdcall
+#   define ecere_gcc_struct
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 enum yytokentype
@@ -56,7 +68,7 @@ typedef unsigned short int yytype_uint16;
 
 typedef short int yytype_int16;
 
-void * malloc(size_t size);
+void * malloc(size_t);
 
 void free(void *);
 
@@ -77,7 +89,7 @@ static const yytype_int16 yyrhs[] =
 
 static const yytype_uint16 yyrline[] =
 {
-(unsigned short)0, (unsigned short)214, (unsigned short)214, (unsigned short)219, (unsigned short)220, (unsigned short)225, (unsigned short)227, (unsigned short)229, (unsigned short)231, (unsigned short)232, (unsigned short)234, (unsigned short)235, (unsigned short)236, (unsigned short)239, (unsigned short)240, (unsigned short)241, (unsigned short)242, (unsigned short)243, (unsigned short)244, (unsigned short)245, (unsigned short)246, (unsigned short)247, (unsigned short)251, (unsigned short)255, (unsigned short)256, (unsigned short)257, (unsigned short)258, (unsigned short)259, (unsigned short)260, (unsigned short)273, (unsigned short)274, (unsigned short)275, (unsigned short)305, (unsigned short)306, (unsigned short)307, (unsigned short)308, (unsigned short)312, (unsigned short)313, (unsigned short)314, (unsigned short)317, (unsigned short)318, (unsigned short)321, (unsigned short)322, (unsigned short)326, (unsigned short)327, (unsigned short)336, (unsigned short)337, (unsigned short)338, (unsigned short)339, (unsigned short)340, (unsigned short)341, (unsigned short)342, (unsigned short)346, (unsigned short)347, (unsigned short)351, (unsigned short)352, (unsigned short)353, (unsigned short)354, (unsigned short)358, (unsigned short)359, (unsigned short)360, (unsigned short)364, (unsigned short)365, (unsigned short)366, (unsigned short)370, (unsigned short)371, (unsigned short)372, (unsigned short)373, (unsigned short)374, (unsigned short)378, (unsigned short)379, (unsigned short)380, (unsigned short)384, (unsigned short)385, (unsigned short)389, (unsigned short)390, (unsigned short)394, (unsigned short)395, (unsigned short)399, (unsigned short)400, (unsigned short)404, (unsigned short)405, (unsigned short)409, (unsigned short)410, (unsigned short)414, (unsigned short)415, (unsigned short)416, (unsigned short)418, (unsigned short)419, (unsigned short)423, (unsigned short)424, (unsigned short)425, (unsigned short)426, (unsigned short)427, (unsigned short)428, (unsigned short)429, (unsigned short)430, (unsigned short)431, (unsigned short)432, (unsigned short)433, (unsigned short)437, (unsigned short)438, (unsigned short)442, (unsigned short)446, (unsigned short)447, (unsigned short)448, (unsigned short)449, (unsigned short)453, (unsigned short)454, (unsigned short)455, (unsigned short)456, (unsigned short)457, (unsigned short)458, (unsigned short)459, (unsigned short)460, (unsigned short)464, (unsigned short)465, (unsigned short)466, (unsigned short)467, (unsigned short)468, (unsigned short)469, (unsigned short)470, (unsigned short)471, (unsigned short)472, (unsigned short)473, (unsigned short)478, (unsigned short)479, (unsigned short)480, (unsigned short)481, (unsigned short)482, (unsigned short)483, (unsigned short)484, (unsigned short)485, (unsigned short)489, (unsigned short)490, (unsigned short)491, (unsigned short)492, (unsigned short)493, (unsigned short)494, (unsigned short)495, (unsigned short)496, (unsigned short)497, (unsigned short)498, (unsigned short)502, (unsigned short)503, (unsigned short)507, (unsigned short)508, (unsigned short)512, (unsigned short)513, (unsigned short)514, (unsigned short)515, (unsigned short)516, (unsigned short)517, (unsigned short)521, (unsigned short)522, (unsigned short)526, (unsigned short)527, (unsigned short)528, (unsigned short)533, (unsigned short)534, (unsigned short)535, (unsigned short)536, (unsigned short)537, (unsigned short)541, (unsigned short)542, (unsigned short)546, (unsigned short)547, (unsigned short)548, (unsigned short)552, (unsigned short)553, (unsigned short)557, (unsigned short)558, (unsigned short)559, (unsigned short)563, (unsigned short)588, (unsigned short)592, (unsigned short)593, (unsigned short)594, (unsigned short)595, (unsigned short)596, (unsigned short)597, (unsigned short)598, (unsigned short)599, (unsigned short)600, (unsigned short)601, (unsigned short)602, (unsigned short)603, (unsigned short)604, (unsigned short)605, (unsigned short)606, (unsigned short)607, (unsigned short)608, (unsigned short)609, (unsigned short)610, (unsigned short)611, (unsigned short)615, (unsigned short)616, (unsigned short)617, (unsigned short)618, (unsigned short)619, (unsigned short)620, (unsigned short)621, (unsigned short)622, (unsigned short)623, (unsigned short)624, (unsigned short)625, (unsigned short)626, (unsigned short)627, (unsigned short)628, (unsigned short)629, (unsigned short)630, (unsigned short)631, (unsigned short)632, (unsigned short)633, (unsigned short)638, (unsigned short)639, (unsigned short)640, (unsigned short)641, (unsigned short)642, (unsigned short)645, (unsigned short)646, (unsigned short)647, (unsigned short)648, (unsigned short)649, (unsigned short)654, (unsigned short)655, (unsigned short)658, (unsigned short)660, (unsigned short)665, (unsigned short)666, (unsigned short)670, (unsigned short)671, (unsigned short)675, (unsigned short)679, (unsigned short)680, (unsigned short)684, (unsigned short)686, (unsigned short)688, (unsigned short)690, (unsigned short)692, (unsigned short)695, (unsigned short)697, (unsigned short)699, (unsigned short)701, (unsigned short)703, (unsigned short)706, (unsigned short)708, (unsigned short)710, (unsigned short)712, (unsigned short)714, (unsigned short)717, (unsigned short)719, (unsigned short)721, (unsigned short)723, (unsigned short)725, (unsigned short)730, (unsigned short)731, (unsigned short)732, (unsigned short)733, (unsigned short)734, (unsigned short)735, (unsigned short)736, (unsigned short)737, (unsigned short)741, (unsigned short)743, (unsigned short)748, (unsigned short)750, (unsigned short)752, (unsigned short)754, (unsigned short)756, (unsigned short)761, (unsigned short)762, (unsigned short)766, (unsigned short)768, (unsigned short)769, (unsigned short)770, (unsigned short)771, (unsigned short)775, (unsigned short)777, (unsigned short)782, (unsigned short)784, (unsigned short)790, (unsigned short)792, (unsigned short)794, (unsigned short)796, (unsigned short)798, (unsigned short)800, (unsigned short)802, (unsigned short)804, (unsigned short)806, (unsigned short)808, (unsigned short)810, (unsigned short)815, (unsigned short)817, (unsigned short)819, (unsigned short)821, (unsigned short)823, (unsigned short)828, (unsigned short)829, (unsigned short)830, (unsigned short)831, (unsigned short)832, (unsigned short)833, (unsigned short)837, (unsigned short)838, (unsigned short)839, (unsigned short)840, (unsigned short)841, (unsigned short)842, (unsigned short)888, (unsigned short)889, (unsigned short)891, (unsigned short)897, (unsigned short)899, (unsigned short)901, (unsigned short)903, (unsigned short)905, (unsigned short)910, (unsigned short)911, (unsigned short)914, (unsigned short)916, (unsigned short)918, (unsigned short)924, (unsigned short)925, (unsigned short)926, (unsigned short)928, (unsigned short)933, (unsigned short)937, (unsigned short)939, (unsigned short)941, (unsigned short)946, (unsigned short)947, (unsigned short)951, (unsigned short)952, (unsigned short)953, (unsigned short)954, (unsigned short)958, (unsigned short)959, (unsigned short)963, (unsigned short)964, (unsigned short)968, (unsigned short)969, (unsigned short)970, (unsigned short)974, (unsigned short)975, (unsigned short)979, (unsigned short)980, (unsigned short)989, (unsigned short)991, (unsigned short)993, (unsigned short)1009, (unsigned short)1010, (unsigned short)1031, (unsigned short)1033, (unsigned short)1038, (unsigned short)1039, (unsigned short)1040, (unsigned short)1041, (unsigned short)1042, (unsigned short)1043, (unsigned short)1047, (unsigned short)1049, (unsigned short)1051, (unsigned short)1056, (unsigned short)1057, (unsigned short)1061, (unsigned short)1062, (unsigned short)1065, (unsigned short)1069, (unsigned short)1070, (unsigned short)1071, (unsigned short)1075, (unsigned short)1079, (unsigned short)1087, (unsigned short)1092, (unsigned short)1093, (unsigned short)1097, (unsigned short)1098, (unsigned short)1099, (unsigned short)1103, (unsigned short)1104, (unsigned short)1105, (unsigned short)1106, (unsigned short)1108, (unsigned short)1109, (unsigned short)1110, (unsigned short)1114, (unsigned short)1115, (unsigned short)1116, (unsigned short)1117, (unsigned short)1118, (unsigned short)1122, (unsigned short)1126, (unsigned short)1128, (unsigned short)1133, (unsigned short)1135, (unsigned short)1137, (unsigned short)1139, (unsigned short)1144, (unsigned short)1146, (unsigned short)1151, (unsigned short)1153, (unsigned short)1158, (unsigned short)1163, (unsigned short)1168, (unsigned short)1170, (unsigned short)1175, (unsigned short)1177, (unsigned short)1179, (unsigned short)1181, (unsigned short)1183, (unsigned short)1189, (unsigned short)1194, (unsigned short)1199, (unsigned short)1200, (unsigned short)1204, (unsigned short)1206, (unsigned short)1211, (unsigned short)1216, (unsigned short)1217, (unsigned short)1218, (unsigned short)1219, (unsigned short)1220, (unsigned short)1221, (unsigned short)1225, (unsigned short)1226, (unsigned short)1227, (unsigned short)1231
+(unsigned short)0, (unsigned short)215, (unsigned short)215, (unsigned short)220, (unsigned short)221, (unsigned short)226, (unsigned short)228, (unsigned short)230, (unsigned short)232, (unsigned short)233, (unsigned short)235, (unsigned short)236, (unsigned short)237, (unsigned short)240, (unsigned short)241, (unsigned short)242, (unsigned short)243, (unsigned short)244, (unsigned short)245, (unsigned short)246, (unsigned short)247, (unsigned short)248, (unsigned short)252, (unsigned short)256, (unsigned short)257, (unsigned short)258, (unsigned short)259, (unsigned short)260, (unsigned short)261, (unsigned short)274, (unsigned short)275, (unsigned short)276, (unsigned short)306, (unsigned short)307, (unsigned short)308, (unsigned short)309, (unsigned short)313, (unsigned short)314, (unsigned short)315, (unsigned short)318, (unsigned short)319, (unsigned short)322, (unsigned short)323, (unsigned short)327, (unsigned short)328, (unsigned short)337, (unsigned short)338, (unsigned short)339, (unsigned short)340, (unsigned short)341, (unsigned short)342, (unsigned short)343, (unsigned short)347, (unsigned short)348, (unsigned short)352, (unsigned short)353, (unsigned short)354, (unsigned short)355, (unsigned short)359, (unsigned short)360, (unsigned short)361, (unsigned short)365, (unsigned short)366, (unsigned short)367, (unsigned short)371, (unsigned short)372, (unsigned short)373, (unsigned short)374, (unsigned short)375, (unsigned short)379, (unsigned short)380, (unsigned short)381, (unsigned short)385, (unsigned short)386, (unsigned short)390, (unsigned short)391, (unsigned short)395, (unsigned short)396, (unsigned short)400, (unsigned short)401, (unsigned short)405, (unsigned short)406, (unsigned short)410, (unsigned short)411, (unsigned short)415, (unsigned short)416, (unsigned short)417, (unsigned short)419, (unsigned short)420, (unsigned short)424, (unsigned short)425, (unsigned short)426, (unsigned short)427, (unsigned short)428, (unsigned short)429, (unsigned short)430, (unsigned short)431, (unsigned short)432, (unsigned short)433, (unsigned short)434, (unsigned short)438, (unsigned short)439, (unsigned short)443, (unsigned short)447, (unsigned short)448, (unsigned short)449, (unsigned short)450, (unsigned short)454, (unsigned short)455, (unsigned short)456, (unsigned short)457, (unsigned short)458, (unsigned short)459, (unsigned short)460, (unsigned short)461, (unsigned short)465, (unsigned short)466, (unsigned short)467, (unsigned short)468, (unsigned short)469, (unsigned short)470, (unsigned short)471, (unsigned short)472, (unsigned short)473, (unsigned short)474, (unsigned short)479, (unsigned short)480, (unsigned short)481, (unsigned short)482, (unsigned short)483, (unsigned short)484, (unsigned short)485, (unsigned short)486, (unsigned short)490, (unsigned short)491, (unsigned short)492, (unsigned short)493, (unsigned short)494, (unsigned short)495, (unsigned short)496, (unsigned short)497, (unsigned short)498, (unsigned short)499, (unsigned short)503, (unsigned short)504, (unsigned short)508, (unsigned short)509, (unsigned short)513, (unsigned short)514, (unsigned short)515, (unsigned short)516, (unsigned short)517, (unsigned short)518, (unsigned short)522, (unsigned short)523, (unsigned short)527, (unsigned short)528, (unsigned short)529, (unsigned short)534, (unsigned short)535, (unsigned short)536, (unsigned short)537, (unsigned short)538, (unsigned short)542, (unsigned short)543, (unsigned short)547, (unsigned short)548, (unsigned short)549, (unsigned short)553, (unsigned short)554, (unsigned short)558, (unsigned short)559, (unsigned short)560, (unsigned short)564, (unsigned short)589, (unsigned short)593, (unsigned short)594, (unsigned short)595, (unsigned short)596, (unsigned short)597, (unsigned short)598, (unsigned short)599, (unsigned short)600, (unsigned short)601, (unsigned short)602, (unsigned short)603, (unsigned short)604, (unsigned short)605, (unsigned short)606, (unsigned short)607, (unsigned short)608, (unsigned short)609, (unsigned short)610, (unsigned short)611, (unsigned short)612, (unsigned short)616, (unsigned short)617, (unsigned short)618, (unsigned short)619, (unsigned short)620, (unsigned short)621, (unsigned short)622, (unsigned short)623, (unsigned short)624, (unsigned short)625, (unsigned short)626, (unsigned short)627, (unsigned short)628, (unsigned short)629, (unsigned short)630, (unsigned short)631, (unsigned short)632, (unsigned short)633, (unsigned short)634, (unsigned short)639, (unsigned short)640, (unsigned short)641, (unsigned short)642, (unsigned short)643, (unsigned short)646, (unsigned short)647, (unsigned short)648, (unsigned short)649, (unsigned short)650, (unsigned short)655, (unsigned short)656, (unsigned short)659, (unsigned short)661, (unsigned short)666, (unsigned short)667, (unsigned short)671, (unsigned short)672, (unsigned short)676, (unsigned short)680, (unsigned short)681, (unsigned short)685, (unsigned short)687, (unsigned short)689, (unsigned short)691, (unsigned short)693, (unsigned short)696, (unsigned short)698, (unsigned short)700, (unsigned short)702, (unsigned short)704, (unsigned short)707, (unsigned short)709, (unsigned short)711, (unsigned short)713, (unsigned short)715, (unsigned short)718, (unsigned short)720, (unsigned short)722, (unsigned short)724, (unsigned short)726, (unsigned short)731, (unsigned short)732, (unsigned short)733, (unsigned short)734, (unsigned short)735, (unsigned short)736, (unsigned short)737, (unsigned short)738, (unsigned short)742, (unsigned short)744, (unsigned short)749, (unsigned short)751, (unsigned short)753, (unsigned short)755, (unsigned short)757, (unsigned short)762, (unsigned short)763, (unsigned short)767, (unsigned short)769, (unsigned short)770, (unsigned short)771, (unsigned short)772, (unsigned short)776, (unsigned short)778, (unsigned short)783, (unsigned short)785, (unsigned short)791, (unsigned short)793, (unsigned short)795, (unsigned short)797, (unsigned short)799, (unsigned short)801, (unsigned short)803, (unsigned short)805, (unsigned short)807, (unsigned short)809, (unsigned short)811, (unsigned short)816, (unsigned short)818, (unsigned short)820, (unsigned short)822, (unsigned short)824, (unsigned short)829, (unsigned short)830, (unsigned short)831, (unsigned short)832, (unsigned short)833, (unsigned short)834, (unsigned short)838, (unsigned short)839, (unsigned short)840, (unsigned short)841, (unsigned short)842, (unsigned short)843, (unsigned short)889, (unsigned short)890, (unsigned short)892, (unsigned short)898, (unsigned short)900, (unsigned short)902, (unsigned short)904, (unsigned short)906, (unsigned short)911, (unsigned short)912, (unsigned short)915, (unsigned short)917, (unsigned short)919, (unsigned short)925, (unsigned short)926, (unsigned short)927, (unsigned short)929, (unsigned short)934, (unsigned short)938, (unsigned short)940, (unsigned short)942, (unsigned short)947, (unsigned short)948, (unsigned short)952, (unsigned short)953, (unsigned short)954, (unsigned short)955, (unsigned short)959, (unsigned short)960, (unsigned short)964, (unsigned short)965, (unsigned short)969, (unsigned short)970, (unsigned short)971, (unsigned short)975, (unsigned short)976, (unsigned short)980, (unsigned short)981, (unsigned short)990, (unsigned short)992, (unsigned short)994, (unsigned short)1010, (unsigned short)1011, (unsigned short)1032, (unsigned short)1034, (unsigned short)1039, (unsigned short)1040, (unsigned short)1041, (unsigned short)1042, (unsigned short)1043, (unsigned short)1044, (unsigned short)1048, (unsigned short)1050, (unsigned short)1052, (unsigned short)1057, (unsigned short)1058, (unsigned short)1062, (unsigned short)1063, (unsigned short)1066, (unsigned short)1070, (unsigned short)1071, (unsigned short)1072, (unsigned short)1076, (unsigned short)1080, (unsigned short)1088, (unsigned short)1093, (unsigned short)1094, (unsigned short)1098, (unsigned short)1099, (unsigned short)1100, (unsigned short)1104, (unsigned short)1105, (unsigned short)1106, (unsigned short)1107, (unsigned short)1109, (unsigned short)1110, (unsigned short)1111, (unsigned short)1115, (unsigned short)1116, (unsigned short)1117, (unsigned short)1118, (unsigned short)1119, (unsigned short)1123, (unsigned short)1127, (unsigned short)1129, (unsigned short)1134, (unsigned short)1136, (unsigned short)1138, (unsigned short)1140, (unsigned short)1145, (unsigned short)1147, (unsigned short)1152, (unsigned short)1154, (unsigned short)1159, (unsigned short)1164, (unsigned short)1169, (unsigned short)1171, (unsigned short)1176, (unsigned short)1178, (unsigned short)1180, (unsigned short)1182, (unsigned short)1184, (unsigned short)1190, (unsigned short)1195, (unsigned short)1200, (unsigned short)1201, (unsigned short)1205, (unsigned short)1207, (unsigned short)1212, (unsigned short)1217, (unsigned short)1218, (unsigned short)1219, (unsigned short)1220, (unsigned short)1221, (unsigned short)1222, (unsigned short)1226, (unsigned short)1227, (unsigned short)1228, (unsigned short)1232
 };
 
 static const char * const yytname[] =
@@ -136,6 +148,8 @@ void * calloc(size_t nmemb, size_t size);
 
 void free(void * ptr);
 
+void * malloc(size_t size);
+
 void * realloc(void * ptr, size_t size);
 
 long int strtol(const char * nptr, char ** endptr, int base);
@@ -203,7 +217,7 @@ void *  last;
 int count;
 unsigned int offset;
 unsigned int circ;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct;
 
 struct __ecereNameSpace__ecere__sys__BTNode;
 
@@ -224,8 +238,8 @@ float f;
 double d;
 long long i64;
 uint64 ui64;
-} __attribute__ ((gcc_struct)) __anon1;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct __anon1;
+} ecere_gcc_struct;
 
 struct __ecereNameSpace__ecere__com__SerialBuffer
 {
@@ -233,7 +247,7 @@ unsigned char *  _buffer;
 unsigned int count;
 unsigned int _size;
 unsigned int pos;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct;
 
 extern void *  __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
 
@@ -285,7 +299,7 @@ int line;
 int charPos;
 int pos;
 int included;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct;
 
 extern size_t strlen(const char * );
 
@@ -329,13 +343,11 @@ extern void FreeExtDecl(struct ExtDecl * extDecl);
 
 extern struct ExtDecl * MkExtDeclString(char * s);
 
-extern struct Symbol * DeclClass(int symbolID, const char *  name);
-
 struct Location
 {
 struct CodePosition start;
 struct CodePosition end;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct;
 
 extern struct Location yylloc;
 
@@ -346,7 +358,7 @@ struct Attrib
 struct Location loc;
 int type;
 struct __ecereNameSpace__ecere__sys__OldList *  attribs;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct;
 
 extern void FreeAttrib(struct Attrib * attr);
 
@@ -401,7 +413,7 @@ struct __ecereNameSpace__ecere__com__Instance
 void * *  _vTbl;
 struct __ecereNameSpace__ecere__com__Class * _class;
 int _refCount;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct;
 
 extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char *  name);
 
@@ -439,7 +451,7 @@ const char *  category;
 unsigned int compiled;
 unsigned int selfWatchable;
 unsigned int isWatchable;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct;
 
 extern void __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
 
@@ -484,7 +496,7 @@ struct Symbol * classSym;
 struct Specifier * _class;
 char *  string;
 struct Identifier * badID;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct;
 
 extern struct Specifier * MkSpecifier(int specifier);
 
@@ -496,6 +508,8 @@ extern struct Specifier * MkSpecifierSubClass(struct Specifier * _class);
 
 extern struct Specifier * MkStructOrUnion(int type, struct Identifier * id, struct __ecereNameSpace__ecere__sys__OldList * definitions);
 
+extern struct Symbol * DeclClass(struct Specifier * _class, const char *  name);
+
 struct Specifier
 {
 struct Specifier * prev;
@@ -511,7 +525,8 @@ struct ExtDecl * extDecl;
 char *  name;
 struct Symbol * symbol;
 struct __ecereNameSpace__ecere__sys__OldList *  templateArgs;
-} __attribute__ ((gcc_struct)) __anon1;
+struct Specifier * nsSpec;
+} ecere_gcc_struct __anon1;
 struct
 {
 struct Identifier * id;
@@ -521,12 +536,12 @@ struct __ecereNameSpace__ecere__sys__OldList *  definitions;
 unsigned int addNameSpace;
 struct Context * ctx;
 struct ExtDecl * extDeclStruct;
-} __attribute__ ((gcc_struct)) __anon2;
+} ecere_gcc_struct __anon2;
 struct Expression * expression;
 struct Specifier * _class;
 struct TemplateParameter * templateParameter;
-} __attribute__ ((gcc_struct)) __anon1;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct __anon1;
+} ecere_gcc_struct;
 
 extern struct Declaration * MkStructDeclaration(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct __ecereNameSpace__ecere__sys__OldList * declarators, struct Specifier * extStorage);
 
@@ -549,7 +564,7 @@ struct Attribute * next;
 struct Location loc;
 char * attr;
 struct Expression * exp;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct;
 
 struct ClassDef;
 
@@ -593,26 +608,26 @@ struct
 struct Expression * exp;
 struct Expression * posExp;
 struct Attrib * attrib;
-} __attribute__ ((gcc_struct)) structDecl;
+} ecere_gcc_struct structDecl;
 struct
 {
 struct Expression * exp;
 struct Specifier * enumClass;
-} __attribute__ ((gcc_struct)) array;
+} ecere_gcc_struct array;
 struct
 {
 struct __ecereNameSpace__ecere__sys__OldList * parameters;
-} __attribute__ ((gcc_struct)) function;
+} ecere_gcc_struct function;
 struct
 {
 struct Pointer * pointer;
-} __attribute__ ((gcc_struct)) pointer;
+} ecere_gcc_struct pointer;
 struct
 {
 struct ExtDecl * extended;
-} __attribute__ ((gcc_struct)) extended;
-} __attribute__ ((gcc_struct)) __anon1;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct extended;
+} ecere_gcc_struct __anon1;
+} ecere_gcc_struct;
 
 extern struct Declarator * MkDeclaratorBrackets(struct Declarator * declarator);
 
@@ -641,7 +656,7 @@ struct InitDeclarator * next;
 struct Location loc;
 struct Declarator * declarator;
 struct Initializer * initializer;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct;
 
 struct Initializer
 {
@@ -653,10 +668,10 @@ union
 {
 struct Expression * exp;
 struct __ecereNameSpace__ecere__sys__OldList *  list;
-} __attribute__ ((gcc_struct)) __anon1;
+} ecere_gcc_struct __anon1;
 unsigned int isConstant;
 struct Identifier * id;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct;
 
 extern struct MemberInit * MkMemberInitExp(struct Expression * idExp, struct Initializer * initializer);
 
@@ -671,7 +686,7 @@ struct Initializer * initializer;
 unsigned int used;
 unsigned int variable;
 unsigned int takeOutExp;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct;
 
 extern struct Initializer * MkInitializerAssignment(struct Expression * exp);
 
@@ -703,8 +718,8 @@ struct
 unsigned int conversion : 1;
 unsigned int isWatchable : 1;
 unsigned int isDBProp : 1;
-} __attribute__ ((gcc_struct)) __anon1;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct __anon1;
+} ecere_gcc_struct;
 
 extern struct Statement * MkLabeledStmt(struct Identifier * id, struct Statement * statement);
 
@@ -721,51 +736,51 @@ struct
 {
 struct Identifier * id;
 struct Statement * stmt;
-} __attribute__ ((gcc_struct)) labeled;
+} ecere_gcc_struct labeled;
 struct
 {
 struct Expression * exp;
 struct Statement * stmt;
-} __attribute__ ((gcc_struct)) caseStmt;
+} ecere_gcc_struct caseStmt;
 struct
 {
 struct __ecereNameSpace__ecere__sys__OldList * declarations;
 struct __ecereNameSpace__ecere__sys__OldList * statements;
 struct Context * context;
 unsigned int isSwitch;
-} __attribute__ ((gcc_struct)) compound;
+} ecere_gcc_struct compound;
 struct
 {
 struct __ecereNameSpace__ecere__sys__OldList * exp;
 struct Statement * stmt;
 struct Statement * elseStmt;
-} __attribute__ ((gcc_struct)) ifStmt;
+} ecere_gcc_struct ifStmt;
 struct
 {
 struct __ecereNameSpace__ecere__sys__OldList * exp;
 struct Statement * stmt;
-} __attribute__ ((gcc_struct)) switchStmt;
+} ecere_gcc_struct switchStmt;
 struct
 {
 struct __ecereNameSpace__ecere__sys__OldList * exp;
 struct Statement * stmt;
-} __attribute__ ((gcc_struct)) whileStmt;
+} ecere_gcc_struct whileStmt;
 struct
 {
 struct __ecereNameSpace__ecere__sys__OldList * exp;
 struct Statement * stmt;
-} __attribute__ ((gcc_struct)) doWhile;
+} ecere_gcc_struct doWhile;
 struct
 {
 struct Statement * init;
 struct Statement * check;
 struct __ecereNameSpace__ecere__sys__OldList * increment;
 struct Statement * stmt;
-} __attribute__ ((gcc_struct)) forStmt;
+} ecere_gcc_struct forStmt;
 struct
 {
 struct Identifier * id;
-} __attribute__ ((gcc_struct)) gotoStmt;
+} ecere_gcc_struct gotoStmt;
 struct
 {
 struct Specifier * spec;
@@ -773,23 +788,23 @@ char * statements;
 struct __ecereNameSpace__ecere__sys__OldList * inputFields;
 struct __ecereNameSpace__ecere__sys__OldList * outputFields;
 struct __ecereNameSpace__ecere__sys__OldList * clobberedFields;
-} __attribute__ ((gcc_struct)) asmStmt;
+} ecere_gcc_struct asmStmt;
 struct
 {
 struct Expression * watcher;
 struct Expression * object;
 struct __ecereNameSpace__ecere__sys__OldList * watches;
-} __attribute__ ((gcc_struct)) _watch;
+} ecere_gcc_struct _watch;
 struct
 {
 struct Identifier * id;
 struct __ecereNameSpace__ecere__sys__OldList * exp;
 struct __ecereNameSpace__ecere__sys__OldList * filter;
 struct Statement * stmt;
-} __attribute__ ((gcc_struct)) forEachStmt;
+} ecere_gcc_struct forEachStmt;
 struct Declaration * decl;
-} __attribute__ ((gcc_struct)) __anon1;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct __anon1;
+} ecere_gcc_struct;
 
 extern struct Statement * MkCaseStmt(struct Expression * exp, struct Statement * statement);
 
@@ -833,7 +848,7 @@ struct
 {
 char *  constant;
 struct Identifier * identifier;
-} __attribute__ ((gcc_struct)) __anon1;
+} ecere_gcc_struct __anon1;
 struct Statement * compound;
 struct Instantiation * instance;
 struct
@@ -841,86 +856,86 @@ struct
 char *  string;
 unsigned int intlString;
 unsigned int wideString;
-} __attribute__ ((gcc_struct)) __anon2;
+} ecere_gcc_struct __anon2;
 struct __ecereNameSpace__ecere__sys__OldList *  list;
 struct
 {
 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
 struct Declarator * decl;
-} __attribute__ ((gcc_struct)) _classExp;
+} ecere_gcc_struct _classExp;
 struct
 {
 struct Identifier * id;
-} __attribute__ ((gcc_struct)) classData;
+} ecere_gcc_struct classData;
 struct
 {
 struct Expression * exp;
 struct __ecereNameSpace__ecere__sys__OldList * arguments;
 struct Location argLoc;
-} __attribute__ ((gcc_struct)) call;
+} ecere_gcc_struct call;
 struct
 {
 struct Expression * exp;
 struct __ecereNameSpace__ecere__sys__OldList * index;
-} __attribute__ ((gcc_struct)) index;
+} ecere_gcc_struct index;
 struct
 {
 struct Expression * exp;
 struct Identifier * member;
 int memberType;
 unsigned int thisPtr;
-} __attribute__ ((gcc_struct)) member;
+} ecere_gcc_struct member;
 struct
 {
 int op;
 struct Expression * exp1;
 struct Expression * exp2;
-} __attribute__ ((gcc_struct)) op;
+} ecere_gcc_struct op;
 struct TypeName * typeName;
 struct Specifier * _class;
 struct
 {
 struct TypeName * typeName;
 struct Expression * exp;
-} __attribute__ ((gcc_struct)) cast;
+} ecere_gcc_struct cast;
 struct
 {
 struct Expression * cond;
 struct __ecereNameSpace__ecere__sys__OldList * exp;
 struct Expression * elseExp;
-} __attribute__ ((gcc_struct)) cond;
+} ecere_gcc_struct cond;
 struct
 {
 struct TypeName * typeName;
 struct Expression * size;
-} __attribute__ ((gcc_struct)) _new;
+} ecere_gcc_struct _new;
 struct
 {
 struct TypeName * typeName;
 struct Expression * size;
 struct Expression * exp;
-} __attribute__ ((gcc_struct)) _renew;
+} ecere_gcc_struct _renew;
 struct
 {
 char * table;
 struct Identifier * id;
-} __attribute__ ((gcc_struct)) db;
+} ecere_gcc_struct db;
 struct
 {
 struct Expression * ds;
 struct Expression * name;
-} __attribute__ ((gcc_struct)) dbopen;
+} ecere_gcc_struct dbopen;
 struct
 {
 struct TypeName * typeName;
 struct Initializer * initializer;
-} __attribute__ ((gcc_struct)) initializer;
+} ecere_gcc_struct initializer;
 struct
 {
 struct Expression * exp;
 struct TypeName * typeName;
-} __attribute__ ((gcc_struct)) vaArg;
-} __attribute__ ((gcc_struct)) __anon1;
+} ecere_gcc_struct vaArg;
+} ecere_gcc_struct __anon1;
 unsigned int debugValue;
 struct __ecereNameSpace__ecere__com__DataValue val;
 uint64 address;
@@ -936,7 +951,7 @@ unsigned int needCast;
 unsigned int thisPtr;
 unsigned int opDestType;
 unsigned int needTemplateCast;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct;
 
 extern struct Expression * MkExpInstance(struct Instantiation * inst);
 
@@ -952,18 +967,18 @@ struct
 {
 struct __ecereNameSpace__ecere__sys__OldList *  specifiers;
 struct __ecereNameSpace__ecere__sys__OldList *  declarators;
-} __attribute__ ((gcc_struct)) __anon1;
+} ecere_gcc_struct __anon1;
 struct Instantiation * inst;
 struct
 {
 struct Identifier * id;
 struct Expression * exp;
-} __attribute__ ((gcc_struct)) __anon2;
-} __attribute__ ((gcc_struct)) __anon1;
+} ecere_gcc_struct __anon2;
+} ecere_gcc_struct __anon1;
 struct Specifier * extStorage;
 struct Symbol * symbol;
 int declMode;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct;
 
 extern struct Declaration * MkDeclarationInst(struct Instantiation * inst);
 
@@ -986,7 +1001,7 @@ unsigned char *  data;
 struct Location nameLoc;
 struct Location insideLoc;
 unsigned int built;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct;
 
 extern struct Instantiation * MkInstantiation(struct Specifier * _class, struct Expression * exp, struct __ecereNameSpace__ecere__sys__OldList * members);
 
@@ -1013,11 +1028,11 @@ struct
 {
 struct Identifier * id;
 struct Initializer * initializer;
-} __attribute__ ((gcc_struct)) __anon1;
-} __attribute__ ((gcc_struct)) __anon1;
+} ecere_gcc_struct __anon1;
+} ecere_gcc_struct __anon1;
 int memberAccess;
 void *  object;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct;
 
 extern struct ClassDef * MkClassDefFunction(struct ClassFunction * function);
 
@@ -1043,7 +1058,7 @@ unsigned int isDestructor;
 unsigned int dontMangle;
 int id;
 int idCode;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct;
 
 extern void ProcessClassFunctionBody(struct ClassFunction * func, struct Statement * body);
 
@@ -1089,7 +1104,7 @@ struct TemplateDatatype * templateDatatype;
 struct DBTableEntry * dbtableEntry;
 struct DBIndexItem * dbindexItem;
 struct DBTableDef * dbtableDef;
-} __attribute__ ((gcc_struct)) YYSTYPE;
+} ecere_gcc_struct YYSTYPE;
 
 extern YYSTYPE yylval;
 
@@ -1098,7 +1113,7 @@ union yyalloc
 yytype_int16 yyss_alloc;
 YYSTYPE yyvs_alloc;
 struct Location yyls_alloc;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct;
 
 static void yy_symbol_value_print(FILE * yyoutput, int yytype, YYSTYPE const * const yyvaluep, struct Location const * const yylocationp)
 {
@@ -1129,8 +1144,8 @@ union
 {
 struct __ecereNameSpace__ecere__sys__OldList *  dataMembers;
 struct ClassFunction * function;
-} __attribute__ ((gcc_struct)) __anon1;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct __anon1;
+} ecere_gcc_struct;
 
 extern struct MembersInit * MkMembersInitMethod(struct ClassFunction * function);
 
@@ -1169,7 +1184,7 @@ struct __ecereNameSpace__ecere__sys__BTNode * root;
 int count;
 int (*  CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
 void (*  FreeKey)(void *  key);
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct;
 
 struct __ecereNameSpace__ecere__com__Method;
 
@@ -1188,7 +1203,7 @@ void *  symbol;
 const char *  dataTypeString;
 struct Type * dataType;
 int memberAccess;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct;
 
 static void yydestruct(const char *  yymsg, int yytype, YYSTYPE *  yyvaluep, struct Location *  yylocationp);
 
@@ -1206,7 +1221,7 @@ struct Location yylsa[200];
 struct Location * yyls;
 struct Location * yylsp;
 struct Location yyerror_range[2];
-unsigned int yystacksize;
+size_t yystacksize;
 int yyn;
 int yyresult;
 int yytoken;
@@ -1238,7 +1253,7 @@ yysetstate:
 *yyssp = yystate;
 if(yyss + yystacksize - 1 <= yyssp)
 {
-unsigned int yysize = yyssp - yyss + 1;
+size_t yysize = yyssp - yyss + 1;
 
 if(10000 <= yystacksize)
 goto yyexhaustedlab;
@@ -1253,7 +1268,7 @@ if(!yyptr)
 goto yyexhaustedlab;
 do
 {
-unsigned int yynewbytes;
+size_t yynewbytes;
 
 __builtin_memcpy(&(*yyptr).yyss_alloc, yyss, (yysize) * sizeof (*(yyss)));
 yyss = &(*yyptr).yyss_alloc;
@@ -1262,7 +1277,7 @@ yyptr += yynewbytes / sizeof (*yyptr);
 }while((0));
 do
 {
-unsigned int yynewbytes;
+size_t yynewbytes;
 
 __builtin_memcpy(&(*yyptr).yyvs_alloc, yyvs, (yysize) * sizeof (*(yyvs)));
 yyvs = &(*yyptr).yyvs_alloc;
@@ -1271,7 +1286,7 @@ yyptr += yynewbytes / sizeof (*yyptr);
 }while((0));
 do
 {
-unsigned int yynewbytes;
+size_t yynewbytes;
 
 __builtin_memcpy(&(*yyptr).yyls_alloc, yyls, (yysize) * sizeof (*(yyls)));
 yyls = &(*yyptr).yyls_alloc;
@@ -1287,7 +1302,7 @@ yylsp = yyls + yysize - 1;
 do
 {
 if(expression_yydebug)
-fprintf((bsl_stderr()), "Stack size increased to %lu\n", yystacksize);
+fprintf((bsl_stderr()), "Stack size increased to %lu\n", (unsigned long int)yystacksize);
 }while((0));
 if(yyss + yystacksize - 1 <= yyssp)
 goto yyabortlab;
@@ -2642,7 +2657,7 @@ case 214:
 {
 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (5)].specifierType, yyvsp[(2) - (5)].id, yyvsp[(4) - (5)].list);
 if(declMode)
-DeclClass(0, yyvsp[(2) - (5)].id->string);
+DeclClass(yyvsp[(2) - (5)].id->_class, yyvsp[(2) - (5)].id->string);
 ;
 }
 break;
@@ -2656,7 +2671,7 @@ case 216:
 {
 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (4)].specifierType, yyvsp[(2) - (4)].id, (((void *)0)));
 if(declMode)
-DeclClass(0, yyvsp[(2) - (4)].id->string);
+DeclClass(yyvsp[(2) - (4)].id->_class, yyvsp[(2) - (4)].id->string);
 ;
 }
 break;
@@ -2670,7 +2685,7 @@ case 218:
 {
 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (5)].specifierType, MkIdentifier(yyvsp[(2) - (5)].specifier->__anon1.__anon1.name), yyvsp[(4) - (5)].list);
 if(declMode)
-DeclClass(0, yyvsp[(2) - (5)].specifier->__anon1.__anon1.name);
+DeclClass(yyvsp[(2) - (5)].specifier->__anon1.__anon1.nsSpec, yyvsp[(2) - (5)].specifier->__anon1.__anon1.name);
 FreeSpecifier(yyvsp[(2) - (5)].specifier);
 ;
 }
@@ -2680,7 +2695,7 @@ case 219:
 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (6)].specifierType, yyvsp[(3) - (6)].id, yyvsp[(5) - (6)].list);
 yyval.specifier->__anon1.__anon2.extDeclStruct = yyvsp[(2) - (6)].extDecl;
 if(declMode)
-DeclClass(0, yyvsp[(3) - (6)].id->string);
+DeclClass(yyvsp[(3) - (6)].id->_class, yyvsp[(3) - (6)].id->string);
 ;
 }
 break;
@@ -2696,7 +2711,7 @@ case 221:
 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (5)].specifierType, yyvsp[(3) - (5)].id, (((void *)0)));
 yyval.specifier->__anon1.__anon2.extDeclStruct = yyvsp[(2) - (5)].extDecl;
 if(declMode)
-DeclClass(0, yyvsp[(3) - (5)].id->string);
+DeclClass(yyvsp[(3) - (5)].id->_class, yyvsp[(3) - (5)].id->string);
 ;
 }
 break;
@@ -2712,7 +2727,7 @@ case 223:
 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (6)].specifierType, MkIdentifier(yyvsp[(3) - (6)].specifier->__anon1.__anon1.name), yyvsp[(5) - (6)].list);
 yyval.specifier->__anon1.__anon2.extDeclStruct = yyvsp[(2) - (6)].extDecl;
 if(declMode)
-DeclClass(0, yyvsp[(3) - (6)].specifier->__anon1.__anon1.name);
+DeclClass(yyvsp[(3) - (6)].specifier->__anon1.__anon1.nsSpec, yyvsp[(3) - (6)].specifier->__anon1.__anon1.name);
 FreeSpecifier(yyvsp[(3) - (6)].specifier);
 ;
 }
@@ -2721,7 +2736,7 @@ case 224:
 {
 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (2)].specifierType, yyvsp[(2) - (2)].id, (((void *)0)));
 if(declMode)
-DeclClass(0, yyvsp[(2) - (2)].id->string);
+DeclClass(yyvsp[(2) - (2)].id->_class, yyvsp[(2) - (2)].id->string);
 ;
 }
 break;
@@ -2729,7 +2744,7 @@ case 225:
 {
 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (2)].specifierType, MkIdentifier(yyvsp[(2) - (2)].specifier->__anon1.__anon1.name), (((void *)0)));
 if(declMode)
-DeclClass(0, yyvsp[(2) - (2)].specifier->__anon1.__anon1.name);
+DeclClass(yyvsp[(2) - (2)].specifier->__anon1.__anon1.nsSpec, yyvsp[(2) - (2)].specifier->__anon1.__anon1.name);
 FreeSpecifier(yyvsp[(2) - (2)].specifier);
 ;
 }
@@ -2739,7 +2754,7 @@ case 226:
 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifierType, yyvsp[(3) - (3)].id, (((void *)0)));
 yyval.specifier->__anon1.__anon2.extDeclStruct = yyvsp[(2) - (3)].extDecl;
 if(declMode)
-DeclClass(0, yyvsp[(3) - (3)].id->string);
+DeclClass(yyvsp[(3) - (3)].id->_class, yyvsp[(3) - (3)].id->string);
 ;
 }
 break;
@@ -2748,7 +2763,7 @@ case 227:
 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifierType, MkIdentifier(yyvsp[(3) - (3)].specifier->__anon1.__anon1.name), (((void *)0)));
 yyval.specifier->__anon1.__anon2.extDeclStruct = yyvsp[(2) - (3)].extDecl;
 if(declMode)
-DeclClass(0, yyvsp[(3) - (3)].specifier->__anon1.__anon1.name);
+DeclClass(yyvsp[(3) - (3)].specifier->__anon1.__anon1.nsSpec, yyvsp[(3) - (3)].specifier->__anon1.__anon1.name);
 FreeSpecifier(yyvsp[(3) - (3)].specifier);
 ;
 }
@@ -3060,7 +3075,7 @@ case 270:
 {
 yyval.specifier = MkEnum(yyvsp[(2) - (2)].id, (((void *)0)));
 if(declMode)
-DeclClass(0, yyvsp[(2) - (2)].id->string);
+DeclClass(yyvsp[(2) - (2)].id->_class, yyvsp[(2) - (2)].id->string);
 ;
 }
 break;
@@ -3068,7 +3083,7 @@ case 271:
 {
 yyval.specifier = MkEnum(MkIdentifier(yyvsp[(2) - (2)].specifier->__anon1.__anon1.name), (((void *)0)));
 if(declMode)
-DeclClass(0, yyvsp[(2) - (2)].specifier->__anon1.__anon1.name);
+DeclClass(yyvsp[(2) - (2)].specifier->__anon1.__anon1.nsSpec, yyvsp[(2) - (2)].specifier->__anon1.__anon1.name);
 FreeSpecifier(yyvsp[(2) - (2)].specifier);
 ;
 }
@@ -3083,7 +3098,7 @@ case 273:
 {
 yyval.specifier = MkEnum(yyvsp[(2) - (5)].id, yyvsp[(4) - (5)].list);
 if(declMode)
-DeclClass(0, yyvsp[(2) - (5)].id->string);
+DeclClass(yyvsp[(2) - (5)].id->_class, yyvsp[(2) - (5)].id->string);
 ;
 }
 break;
@@ -3092,7 +3107,7 @@ case 274:
 yyval.specifier = MkEnum(yyvsp[(2) - (7)].id, yyvsp[(4) - (7)].list);
 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(6) - (7)].list;
 if(declMode)
-DeclClass(0, yyvsp[(2) - (7)].id->string);
+DeclClass(yyvsp[(2) - (7)].id->_class, yyvsp[(2) - (7)].id->string);
 ;
 }
 break;
@@ -3101,7 +3116,7 @@ case 275:
 yyval.specifier = MkEnum(MkIdentifier(yyvsp[(2) - (7)].specifier->__anon1.__anon1.name), yyvsp[(4) - (7)].list);
 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(6) - (7)].list;
 if(declMode)
-DeclClass(0, yyvsp[(2) - (7)].specifier->__anon1.__anon1.name);
+DeclClass(yyvsp[(2) - (7)].specifier->__anon1.__anon1.nsSpec, yyvsp[(2) - (7)].specifier->__anon1.__anon1.name);
 FreeSpecifier(yyvsp[(2) - (7)].specifier);
 ;
 }
@@ -3110,7 +3125,7 @@ case 276:
 {
 yyval.specifier = MkEnum(MkIdentifier(yyvsp[(2) - (5)].specifier->__anon1.__anon1.name), yyvsp[(4) - (5)].list);
 if(declMode)
-DeclClass(0, yyvsp[(2) - (5)].specifier->__anon1.__anon1.name);
+DeclClass(yyvsp[(2) - (5)].specifier->__anon1.__anon1.nsSpec, yyvsp[(2) - (5)].specifier->__anon1.__anon1.name);
 FreeSpecifier(yyvsp[(2) - (5)].specifier);
 ;
 }
@@ -4229,7 +4244,7 @@ struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct;
 
 struct __ecereNameSpace__ecere__com__Application
 {
@@ -4240,7 +4255,7 @@ unsigned int isGUIApp;
 struct __ecereNameSpace__ecere__sys__OldList allModules;
 char *  parsedCommand;
 struct __ecereNameSpace__ecere__com__NameSpace systemNameSpace;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct;
 
 struct __ecereNameSpace__ecere__com__DataMember;
 
@@ -4252,7 +4267,7 @@ struct
 {
 const char *  dataTypeString;
 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
-} __attribute__ ((gcc_struct)) __anon1;
+} ecere_gcc_struct __anon1;
 struct __ecereNameSpace__ecere__com__DataValue expression;
 struct
 {
@@ -4262,10 +4277,10 @@ union
 struct __ecereNameSpace__ecere__com__DataMember * member;
 struct __ecereNameSpace__ecere__com__Property * prop;
 struct __ecereNameSpace__ecere__com__Method * method;
-} __attribute__ ((gcc_struct)) __anon1;
-} __attribute__ ((gcc_struct)) __anon2;
-} __attribute__ ((gcc_struct)) __anon1;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct __anon1;
+} ecere_gcc_struct __anon2;
+} ecere_gcc_struct __anon1;
+} ecere_gcc_struct;
 
 struct __ecereNameSpace__ecere__com__DataMember
 {
@@ -4287,7 +4302,7 @@ struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
 int memberOffset;
 short structAlignment;
 short pointerAlignment;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct;
 
 struct __ecereNameSpace__ecere__com__Module;
 
@@ -4307,7 +4322,7 @@ int importType;
 int origImportType;
 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct;
 
 struct __ecereNameSpace__ecere__com__Class
 {
@@ -4366,7 +4381,7 @@ struct __ecereNameSpace__ecere__sys__OldList templatized;
 int numParams;
 unsigned int isInstanceClass;
 unsigned int byValueSystemClass;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct;
 
 void __ecereRegisterModule_expression(struct __ecereNameSpace__ecere__com__Instance * module)
 {