From: Jerome St-Louis Date: Wed, 4 Jun 2014 04:13:56 +0000 (-0400) Subject: sdk: Fixed many warnings and related problems X-Git-Tag: 0.44.10PR1~182 X-Git-Url: http://ecere.com/cgi-bin/gitweb.cgi?p=sdk;a=commitdiff_plain;h=e3c057abf6827f3533525b400ef7ac080719b7b5 sdk: Fixed many warnings and related problems --- diff --git a/compiler/bootstrap/ecere/bootstrap/AVLTree.c b/compiler/bootstrap/ecere/bootstrap/AVLTree.c index 1327cc1..7ac3f45 100644 --- a/compiler/bootstrap/ecere/bootstrap/AVLTree.c +++ b/compiler/bootstrap/ecere/bootstrap/AVLTree.c @@ -41,6 +41,8 @@ typedef unsigned __int64 uint64; #define structSize_Instance (_64BIT ? 24 : 12) #define structSize_AVLNode (_64BIT ? 40 : 24) +struct __ecereNameSpace__ecere__com__Instance; + extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size); extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size); @@ -441,7 +443,7 @@ extern void __ecereNameSpace__ecere__com__eClass_DoneAddingTemplateParameters(st void __ecereRegisterModule_AVLTree(struct __ecereNameSpace__ecere__com__Instance * module) { -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "ecere::com::AVLTree", "ecere::com::CustomAVLTree, KT = AT, T = AT, D = AT>", 0, 0, 0, 0, module, 4, 1); if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class) diff --git a/compiler/bootstrap/ecere/bootstrap/Array.c b/compiler/bootstrap/ecere/bootstrap/Array.c index ec3fa81..9bcdbf5 100644 --- a/compiler/bootstrap/ecere/bootstrap/Array.c +++ b/compiler/bootstrap/ecere/bootstrap/Array.c @@ -40,6 +40,8 @@ typedef unsigned __int64 uint64; #define arch_PointerSize sizeof(void *) #define structSize_Instance (_64BIT ? 24 : 12) +struct __ecereNameSpace__ecere__com__Instance; + extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size); extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size); @@ -623,7 +625,7 @@ extern struct __ecereNameSpace__ecere__com__Property * __ecereNameSpace__ecere__ void __ecereRegisterModule_Array(struct __ecereNameSpace__ecere__com__Instance * module) { -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "ecere::com::Array", "ecere::com::Container", sizeof(struct __ecereNameSpace__ecere__com__Array), 0, 0, __ecereDestructor___ecereNameSpace__ecere__com__Array, module, 4, 1); if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class) diff --git a/compiler/bootstrap/ecere/bootstrap/BTNode.c b/compiler/bootstrap/ecere/bootstrap/BTNode.c index b00f6c1..dd22cf9 100644 --- a/compiler/bootstrap/ecere/bootstrap/BTNode.c +++ b/compiler/bootstrap/ecere/bootstrap/BTNode.c @@ -40,6 +40,8 @@ typedef unsigned __int64 uint64; #define arch_PointerSize sizeof(void *) #define structSize_Instance (_64BIT ? 24 : 12) +struct __ecereNameSpace__ecere__com__Instance; + extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size); extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size); @@ -1140,7 +1142,7 @@ extern struct __ecereNameSpace__ecere__com__Property * __ecereNameSpace__ecere__ void __ecereRegisterModule_BTNode(struct __ecereNameSpace__ecere__com__Instance * module) { -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::sys::TreePrintStyle", 0, 0, 0, 0, 0, module, 4, 1); if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class) diff --git a/compiler/bootstrap/ecere/bootstrap/BinaryTree.c b/compiler/bootstrap/ecere/bootstrap/BinaryTree.c index a08900e..95731a8 100644 --- a/compiler/bootstrap/ecere/bootstrap/BinaryTree.c +++ b/compiler/bootstrap/ecere/bootstrap/BinaryTree.c @@ -40,6 +40,8 @@ typedef unsigned __int64 uint64; #define arch_PointerSize sizeof(void *) #define structSize_Instance (_64BIT ? 24 : 12) +struct __ecereNameSpace__ecere__com__Instance; + extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size); extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size); @@ -523,7 +525,7 @@ extern struct __ecereNameSpace__ecere__com__Property * __ecereNameSpace__ecere__ void __ecereRegisterModule_BinaryTree(struct __ecereNameSpace__ecere__com__Instance * module) { -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::sys::BinaryTree", 0, sizeof(struct __ecereNameSpace__ecere__sys__BinaryTree), 0, 0, 0, module, 4, 1); if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class) diff --git a/compiler/bootstrap/ecere/bootstrap/BufferedFile.c b/compiler/bootstrap/ecere/bootstrap/BufferedFile.c index 276f757..f295f2a 100644 --- a/compiler/bootstrap/ecere/bootstrap/BufferedFile.c +++ b/compiler/bootstrap/ecere/bootstrap/BufferedFile.c @@ -41,6 +41,8 @@ typedef unsigned __int64 uint64; #define structSize_Instance (_64BIT ? 24 : 12) #define structSize_File (_64BIT ? 40 : 20) +struct __ecereNameSpace__ecere__com__Instance; + extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size); extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size); @@ -865,7 +867,7 @@ extern struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__e void __ecereRegisterModule_BufferedFile(struct __ecereNameSpace__ecere__com__Instance * module) { -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "ecere::sys::BufferedFile", "ecere::sys::File", sizeof(struct __ecereNameSpace__ecere__sys__BufferedFile), 0, __ecereConstructor___ecereNameSpace__ecere__sys__BufferedFile, __ecereDestructor___ecereNameSpace__ecere__sys__BufferedFile, module, 1, 1); if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class) diff --git a/compiler/bootstrap/ecere/bootstrap/BuiltInContainer.c b/compiler/bootstrap/ecere/bootstrap/BuiltInContainer.c index 33334b1..da2cb6c 100644 --- a/compiler/bootstrap/ecere/bootstrap/BuiltInContainer.c +++ b/compiler/bootstrap/ecere/bootstrap/BuiltInContainer.c @@ -40,6 +40,8 @@ typedef unsigned __int64 uint64; #define arch_PointerSize sizeof(void *) #define structSize_Instance (_64BIT ? 24 : 12) +struct __ecereNameSpace__ecere__com__Instance; + extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size); extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size); @@ -529,7 +531,7 @@ extern struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere void __ecereRegisterModule_BuiltInContainer(struct __ecereNameSpace__ecere__com__Instance * module) { -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::IteratorPointer", 0, 0, 0, 0, 0, module, 4, 1); if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class) diff --git a/compiler/bootstrap/ecere/bootstrap/Container.c b/compiler/bootstrap/ecere/bootstrap/Container.c index 562663c..d72a2a5 100644 --- a/compiler/bootstrap/ecere/bootstrap/Container.c +++ b/compiler/bootstrap/ecere/bootstrap/Container.c @@ -40,6 +40,8 @@ typedef unsigned __int64 uint64; #define arch_PointerSize sizeof(void *) #define structSize_Instance (_64BIT ? 24 : 12) +struct __ecereNameSpace__ecere__com__Instance; + extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size); extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size); @@ -983,7 +985,7 @@ struct __ecereNameSpace__ecere__com__ClassTemplateArgument __simpleStruct0 = } } }; -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::com::Iterator", 0, sizeof(struct __ecereNameSpace__ecere__com__Iterator), 0, 0, 0, module, 4, 1); if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class) diff --git a/compiler/bootstrap/ecere/bootstrap/CustomAVLTree.c b/compiler/bootstrap/ecere/bootstrap/CustomAVLTree.c index 7cc1389..c44dd25 100644 --- a/compiler/bootstrap/ecere/bootstrap/CustomAVLTree.c +++ b/compiler/bootstrap/ecere/bootstrap/CustomAVLTree.c @@ -43,6 +43,8 @@ typedef unsigned __int64 uint64; #define _STR(x) #x #define _XSTR(x) _STR(x) +struct __ecereNameSpace__ecere__com__Instance; + extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size); extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size); @@ -397,8 +399,22 @@ if(!Tclass) Tclass = __ecereClass_uint64; while(0x1) { -int result = ((int (*)(void *, void *, void *))(void *)Tclass->_vTbl[__ecereVMethodID_class_OnCompare])(Tclass, ((Tclass->type == 1000 && !Tclass->byValueSystemClass) || Tclass->type == 2 || Tclass->type == 4 || Tclass->type == 3 || Tclass->type == 1) ? (((unsigned char *)&node->key) + __ENDIAN_PAD((Tclass->type == 1) ? sizeof(void *) : Tclass->typeSize)) : (void *)*(uint64 *)(&node->key), ((Tclass->type == 1000 && !Tclass->byValueSystemClass) || Tclass->type == 2 || Tclass->type == 4 || Tclass->type == 3 || Tclass->type == 1) ? (((unsigned char *)&this->key) + __ENDIAN_PAD((Tclass->type == 1) ? sizeof(void *) : Tclass->typeSize)) : (void *)*(uint64 *)(&this->key)); +int result; +unsigned char * a, * b; +if((Tclass->type == 1000 && !Tclass->byValueSystemClass) || Tclass->type == 2 || Tclass->type == 4 || Tclass->type == 3 || Tclass->type == 1) +{ +a = (unsigned char *)&node->key; +b = (unsigned char *)&this->key; +a += __ENDIAN_PAD((Tclass->type == 1) ? sizeof(void *) : Tclass->typeSize); +b += __ENDIAN_PAD((Tclass->type == 1) ? sizeof(void *) : Tclass->typeSize); +} +else +{ +a = (unsigned char *)*(uint64 *)(&node->key); +b = (unsigned char *)*(uint64 *)(&this->key); +} +result = ((int (*)(void *, void *, void *))(void *)Tclass->_vTbl[__ecereVMethodID_class_OnCompare])(Tclass, a, b); if(!result) { return 0x0; @@ -460,8 +476,24 @@ struct __ecereNameSpace__ecere__com__AVLNode * __ecereMethod___ecereNameSpace__e { while(this) { -int result = ((int (*)(void *, void *, void *))(void *)Tclass->_vTbl[__ecereVMethodID_class_OnCompare])(Tclass, ((Tclass->type == 1000 && !Tclass->byValueSystemClass) || Tclass->type == 2 || Tclass->type == 4 || Tclass->type == 3) ? (((unsigned char *)&key) + __ENDIAN_PAD(Tclass->typeSize)) : (void *)key, ((Tclass->type == 1000 && !Tclass->byValueSystemClass) || Tclass->type == 2 || Tclass->type == 4 || Tclass->type == 3 || Tclass->type == 1) ? (((unsigned char *)&this->key) + __ENDIAN_PAD((Tclass->type == 1) ? sizeof(void *) : Tclass->typeSize)) : (void *)*(uint64 *)(&this->key)); +int result; +unsigned char * a, * b; +if((Tclass->type == 1000 && !Tclass->byValueSystemClass) || Tclass->type == 2 || Tclass->type == 4 || Tclass->type == 3) +{ +a = (unsigned char *)&key; +a += __ENDIAN_PAD(Tclass->typeSize); +} +else +a = (unsigned char *)key; +if((Tclass->type == 1000 && !Tclass->byValueSystemClass) || Tclass->type == 2 || Tclass->type == 4 || Tclass->type == 3 || Tclass->type == 1) +{ +b = (unsigned char *)&this->key; +b += __ENDIAN_PAD((Tclass->type == 1) ? sizeof(void *) : Tclass->typeSize); +} +else +b = (unsigned char *)*(uint64 *)(&this->key); +result = ((int (*)(void *, void *, void *))(void *)Tclass->_vTbl[__ecereVMethodID_class_OnCompare])(Tclass, a, b); if(result < 0) this = this->left; else if(result > 0) @@ -937,7 +969,7 @@ struct __ecereNameSpace__ecere__com__ClassTemplateArgument __simpleStruct0 = } } }; -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::AVLNode", "ecere::com::IteratorPointer", sizeof(struct __ecereNameSpace__ecere__com__AVLNode), 0, 0, 0, module, 4, 1); if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class) diff --git a/compiler/bootstrap/ecere/bootstrap/DualPipe.c b/compiler/bootstrap/ecere/bootstrap/DualPipe.c index c8c12e1..1c71fa7 100644 --- a/compiler/bootstrap/ecere/bootstrap/DualPipe.c +++ b/compiler/bootstrap/ecere/bootstrap/DualPipe.c @@ -40,6 +40,8 @@ typedef unsigned __int64 uint64; #define arch_PointerSize sizeof(void *) #define structSize_Instance (_64BIT ? 24 : 12) +struct __ecereNameSpace__ecere__com__Instance; + extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size); extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size); @@ -603,7 +605,7 @@ extern struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__e void __ecereRegisterModule_DualPipe(struct __ecereNameSpace__ecere__com__Instance * module) { -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(2, "ecere::sys::PipeOpenMode", 0, 0, 0, 0, 0, module, 1, 1); if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class) diff --git a/compiler/bootstrap/ecere/bootstrap/File.c b/compiler/bootstrap/ecere/bootstrap/File.c index 071e3d1..269a130 100644 --- a/compiler/bootstrap/ecere/bootstrap/File.c +++ b/compiler/bootstrap/ecere/bootstrap/File.c @@ -40,6 +40,8 @@ typedef unsigned __int64 uint64; #define arch_PointerSize sizeof(void *) #define structSize_Instance (_64BIT ? 24 : 12) +struct __ecereNameSpace__ecere__com__Instance; + extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size); extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size); @@ -329,7 +331,7 @@ size_t fread(void * ptr, size_t size, size_t nmemb, FILE * stream); size_t fwrite(const void * ptr, size_t size, size_t nmemb, FILE * stream); -int vsnprintf(char *, size_t, const char *, ...); +int vsnprintf(char *, size_t, const char *, va_list args); int snprintf(char * str, size_t, const char * format, ...); @@ -1395,7 +1397,7 @@ extern struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__e void __ecereRegisterModule_File(struct __ecereNameSpace__ecere__com__Instance * module) { -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(3, "ecere::sys::FileSize", "uint", 0, 0, 0, 0, module, 1, 1); if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class) diff --git a/compiler/bootstrap/ecere/bootstrap/LinkList.c b/compiler/bootstrap/ecere/bootstrap/LinkList.c index 8b41c60..edecdff 100644 --- a/compiler/bootstrap/ecere/bootstrap/LinkList.c +++ b/compiler/bootstrap/ecere/bootstrap/LinkList.c @@ -41,6 +41,8 @@ typedef unsigned __int64 uint64; #define structSize_Instance (_64BIT ? 24 : 12) #define structSize_LinkElement (_64BIT ? 16 : 8) +struct __ecereNameSpace__ecere__com__Instance; + extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size); extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size); @@ -631,7 +633,7 @@ struct __ecereNameSpace__ecere__com__ClassTemplateArgument __simpleStruct0 = } } }; -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::com::LinkElement", 0, sizeof(struct __ecereNameSpace__ecere__com__LinkElement), 0, 0, 0, module, 4, 1); if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class) diff --git a/compiler/bootstrap/ecere/bootstrap/List.c b/compiler/bootstrap/ecere/bootstrap/List.c index 3139032..985f1cb 100644 --- a/compiler/bootstrap/ecere/bootstrap/List.c +++ b/compiler/bootstrap/ecere/bootstrap/List.c @@ -41,6 +41,8 @@ typedef unsigned __int64 uint64; #define structSize_Instance (_64BIT ? 24 : 12) #define structSize_Link (_64BIT ? 24 : 16) +struct __ecereNameSpace__ecere__com__Instance; + extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size); extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size); @@ -324,7 +326,7 @@ unsigned int __ecereMethod___ecereNameSpace__ecere__com__List_SetData(struct __e if(((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[6].__anon1.__anon1.dataTypeClass->type == 1) memcpy((void *)&link->data, (void *)value, ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[6].__anon1.__anon1.dataTypeClass->structSize); else -link->data = value; +link->data = ((uint64)(value)); return 0x1; } @@ -360,9 +362,9 @@ else link = __extension__ ({ struct __ecereNameSpace__ecere__com__Link * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_Link); -__ecereInstance1->data = value, __ecereInstance1; +__ecereInstance1->data = ((uint64)(value)), __ecereInstance1; }); -((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * after, uint64 value))__ecereClass___ecereNameSpace__ecere__com__LinkList->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Insert])(this, after, (void *)link); +((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * after, uint64 value))__ecereClass___ecereNameSpace__ecere__com__LinkList->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Insert])(this, after, (uint64)link); return link; } @@ -404,7 +406,7 @@ struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this; __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__List->_vTbl; })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetData])(this, link); -(((void (* )(void * _class, void * data))((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[2].__anon1.__anon1.dataTypeClass->_vTbl[__ecereVMethodID_class_OnFree])(((struct __ecereNameSpace__ecere__com__Instance * )(char * )this)->_class->templateArgs[2].__anon1.__anon1.dataTypeClass, data), data = 0); +(((void (* )(void * _class, void * data))((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[2].__anon1.__anon1.dataTypeClass->_vTbl[__ecereVMethodID_class_OnFree])(((struct __ecereNameSpace__ecere__com__Instance * )(char * )this)->_class->templateArgs[2].__anon1.__anon1.dataTypeClass, ((void * )(data))), data = 0); ((void (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * it))__extension__ ({ struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this; @@ -416,20 +418,20 @@ void __ecereMethod___ecereNameSpace__ecere__com__List_Free(struct __ecereNameSpa { void * item; -while((item = ((struct __ecereNameSpace__ecere__com__LinkList *)(((char *)this + structSize_Instance)))->first)) +while((item = ((struct __ecereNameSpace__ecere__com__Link *)(((struct __ecereNameSpace__ecere__com__LinkList *)(((char *)this + structSize_Instance)))->first)))) { uint64 data = ((uint64 (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({ struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this; __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__List->_vTbl; -})[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetData])(this, item); +})[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetData])(this, ((void *)(item))); -(((void (* )(void * _class, void * data))((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[2].__anon1.__anon1.dataTypeClass->_vTbl[__ecereVMethodID_class_OnFree])(((struct __ecereNameSpace__ecere__com__Instance * )(char * )this)->_class->templateArgs[2].__anon1.__anon1.dataTypeClass, data), data = 0); +(((void (* )(void * _class, void * data))((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[2].__anon1.__anon1.dataTypeClass->_vTbl[__ecereVMethodID_class_OnFree])(((struct __ecereNameSpace__ecere__com__Instance * )(char * )this)->_class->templateArgs[2].__anon1.__anon1.dataTypeClass, ((void * )(data))), data = 0); ((void (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * it))__extension__ ({ struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this; __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__List->_vTbl; -})[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Remove])(this, item); +})[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Remove])(this, ((void *)(item))); } } @@ -496,7 +498,7 @@ extern void __ecereNameSpace__ecere__com__eClass_DoneAddingTemplateParameters(st void __ecereRegisterModule_List(struct __ecereNameSpace__ecere__com__Instance * module) { -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::Link", "ecere::com::ListItem", sizeof(struct __ecereNameSpace__ecere__com__Link), 0, 0, 0, module, 4, 1); if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class) diff --git a/compiler/bootstrap/ecere/bootstrap/Map.c b/compiler/bootstrap/ecere/bootstrap/Map.c index a38b89f..6a69405 100644 --- a/compiler/bootstrap/ecere/bootstrap/Map.c +++ b/compiler/bootstrap/ecere/bootstrap/Map.c @@ -41,6 +41,8 @@ typedef unsigned __int64 uint64; #define structSize_Instance (_64BIT ? 24 : 12) #define structSize_MapNode (_64BIT ? 48 : 32) +struct __ecereNameSpace__ecere__com__Instance; + extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size); extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size); @@ -882,7 +884,7 @@ extern struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__co void __ecereRegisterModule_Map(struct __ecereNameSpace__ecere__com__Instance * module) { -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::MapNode", "ecere::com::AVLNode", sizeof(struct __ecereNameSpace__ecere__com__MapNode), 0, 0, 0, module, 4, 2); if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class) diff --git a/compiler/bootstrap/ecere/bootstrap/OldList.c b/compiler/bootstrap/ecere/bootstrap/OldList.c index 0de9323..e5a284f 100644 --- a/compiler/bootstrap/ecere/bootstrap/OldList.c +++ b/compiler/bootstrap/ecere/bootstrap/OldList.c @@ -40,6 +40,8 @@ typedef unsigned __int64 uint64; #define arch_PointerSize sizeof(void *) #define structSize_Instance (_64BIT ? 24 : 12) +struct __ecereNameSpace__ecere__com__Instance; + extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size); extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size); @@ -760,7 +762,7 @@ extern struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere void __ecereRegisterModule_OldList(struct __ecereNameSpace__ecere__com__Instance * module) { -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::sys::Item", 0, sizeof(struct __ecereNameSpace__ecere__sys__Item), 0, 0, 0, module, 4, 1); if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class) diff --git a/compiler/bootstrap/ecere/bootstrap/String.c b/compiler/bootstrap/ecere/bootstrap/String.c index 6ada104..fb85de0 100644 --- a/compiler/bootstrap/ecere/bootstrap/String.c +++ b/compiler/bootstrap/ecere/bootstrap/String.c @@ -40,6 +40,8 @@ typedef unsigned __int64 uint64; #define arch_PointerSize sizeof(void *) #define structSize_Instance (_64BIT ? 24 : 12) +struct __ecereNameSpace__ecere__com__Instance; + extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size); extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size); @@ -1494,7 +1496,7 @@ extern void __ecereNameSpace__ecere__com__eEnum_AddFixedValue(struct __ecereName void __ecereRegisterModule_String(struct __ecereNameSpace__ecere__com__Instance * module) { -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::sys::DIR_SEP", "(GetRuntimePlatform() == win32) ? '\\\\' : '/'", module, 4); __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::sys::DIR_SEPS", "(GetRuntimePlatform() == win32) ? \"\\\\\" : \"/\"", module, 4); diff --git a/compiler/bootstrap/ecere/bootstrap/System.c b/compiler/bootstrap/ecere/bootstrap/System.c index 0a7ef6f..56af146 100644 --- a/compiler/bootstrap/ecere/bootstrap/System.c +++ b/compiler/bootstrap/ecere/bootstrap/System.c @@ -41,6 +41,8 @@ typedef unsigned __int64 uint64; #define structSize_Instance (_64BIT ? 24 : 12) #define structSize_OldList (_64BIT ? 32 : 20) +struct __ecereNameSpace__ecere__com__Instance; + extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size); extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size); @@ -330,7 +332,7 @@ size_t fread(void * ptr, size_t size, size_t nmemb, FILE * stream); size_t fwrite(const void * ptr, size_t size, size_t nmemb, FILE * stream); -int vsnprintf(char *, size_t, const char *, ...); +int vsnprintf(char *, size_t, const char *, va_list args); int snprintf(char * str, size_t, const char * format, ...); @@ -747,7 +749,7 @@ extern struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere void __ecereRegisterModule_System(struct __ecereNameSpace__ecere__com__Instance * module) { -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::sys::LoggingMode", 0, 0, 0, 0, 0, module, 1, 1); if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class) diff --git a/compiler/bootstrap/ecere/bootstrap/TempFile.c b/compiler/bootstrap/ecere/bootstrap/TempFile.c index 277561d..da6190e 100644 --- a/compiler/bootstrap/ecere/bootstrap/TempFile.c +++ b/compiler/bootstrap/ecere/bootstrap/TempFile.c @@ -40,6 +40,8 @@ typedef unsigned __int64 uint64; #define arch_PointerSize sizeof(void *) #define structSize_Instance (_64BIT ? 24 : 12) +struct __ecereNameSpace__ecere__com__Instance; + extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size); extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size); @@ -592,7 +594,7 @@ extern struct __ecereNameSpace__ecere__com__Property * __ecereNameSpace__ecere__ void __ecereRegisterModule_TempFile(struct __ecereNameSpace__ecere__com__Instance * module) { -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "ecere::sys::TempFile", "ecere::sys::File", sizeof(struct __ecereNameSpace__ecere__sys__TempFile), 0, __ecereConstructor___ecereNameSpace__ecere__sys__TempFile, __ecereDestructor___ecereNameSpace__ecere__sys__TempFile, module, 1, 1); if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class) diff --git a/compiler/bootstrap/ecere/bootstrap/dataTypes.c b/compiler/bootstrap/ecere/bootstrap/dataTypes.c index af5546b..ce1c3da 100644 --- a/compiler/bootstrap/ecere/bootstrap/dataTypes.c +++ b/compiler/bootstrap/ecere/bootstrap/dataTypes.c @@ -40,6 +40,8 @@ typedef unsigned __int64 uint64; #define arch_PointerSize sizeof(void *) #define structSize_Instance (_64BIT ? 24 : 12) +struct __ecereNameSpace__ecere__com__Instance; + extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size); extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size); @@ -375,7 +377,7 @@ size_t fread(void * ptr, size_t size, size_t nmemb, FILE * stream); size_t fwrite(const void * ptr, size_t size, size_t nmemb, FILE * stream); -int vsnprintf(char *, size_t, const char *, ...); +int vsnprintf(char *, size_t, const char *, va_list args); int snprintf(char * str, size_t, const char * format, ...); @@ -3137,7 +3139,7 @@ extern struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__e void __ecereRegisterModule_dataTypes(struct __ecereNameSpace__ecere__com__Instance * module) { -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::MAXBYTE", "0xff", module, 4); __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::MAXWORD", "0xffff", module, 4); diff --git a/compiler/bootstrap/ecere/bootstrap/ecere.main.c b/compiler/bootstrap/ecere/bootstrap/ecere.main.c index 562ad57..36f8400 100644 --- a/compiler/bootstrap/ecere/bootstrap/ecere.main.c +++ b/compiler/bootstrap/ecere/bootstrap/ecere.main.c @@ -30,6 +30,8 @@ typedef unsigned __int64 uint64; #endif #include #include +struct __ecereNameSpace__ecere__com__Instance; + extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size); extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size); @@ -1167,7 +1169,7 @@ return 0x1; void __ecereRegisterModule_ecere_main(struct __ecereNameSpace__ecere__com__Instance * module) { -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; } diff --git a/compiler/bootstrap/ecere/bootstrap/i18n.c b/compiler/bootstrap/ecere/bootstrap/i18n.c index 392a32e..abfce55 100644 --- a/compiler/bootstrap/ecere/bootstrap/i18n.c +++ b/compiler/bootstrap/ecere/bootstrap/i18n.c @@ -40,6 +40,8 @@ typedef unsigned __int64 uint64; #define arch_PointerSize sizeof(void *) #define structSize_Instance (_64BIT ? 24 : 12) +struct __ecereNameSpace__ecere__com__Instance; + extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size); extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size); @@ -680,7 +682,7 @@ extern struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__e void __ecereRegisterModule_i18n(struct __ecereNameSpace__ecere__com__Instance * module) { -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::LoadTranslatedStrings", "void ecere::LoadTranslatedStrings(const String moduleName, const char * name)", __ecereNameSpace__ecere__LoadTranslatedStrings, module, 4); __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::UnloadTranslatedStrings", "void ecere::UnloadTranslatedStrings(const String name)", __ecereNameSpace__ecere__UnloadTranslatedStrings, module, 4); diff --git a/compiler/bootstrap/ecere/bootstrap/instance.c b/compiler/bootstrap/ecere/bootstrap/instance.c index 238ff17..506d7d3 100644 --- a/compiler/bootstrap/ecere/bootstrap/instance.c +++ b/compiler/bootstrap/ecere/bootstrap/instance.c @@ -65,6 +65,8 @@ typedef unsigned __int64 uint64; #define structSize_Property (_64BIT ? 152 : 88) #define structSize_Class (_64BIT ? 624 : 376) +struct __ecereNameSpace__ecere__com__Instance; + extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BTNode; struct __ecereNameSpace__ecere__sys__BTNode; @@ -319,7 +321,7 @@ size_t fread(void * ptr, size_t size, size_t nmemb, FILE * stream); size_t fwrite(const void * ptr, size_t size, size_t nmemb, FILE * stream); -int vsnprintf(char *, size_t, const char *, ...); +int vsnprintf(char *, size_t, const char *, va_list args); int snprintf(char * str, size_t, const char * format, ...); @@ -6200,7 +6202,7 @@ int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_CreateNew; void __ecereRegisterModule_instance(struct __ecereNameSpace__ecere__com__Instance * module) { -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::null", "((void *)0)", module, 4); class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(3, "ecere::com::Angle", "double", 0, 0, 0, 0, module, 4, 1); diff --git a/compiler/bootstrap/ecere/bootstrap/memory.c b/compiler/bootstrap/ecere/bootstrap/memory.c index 180167a..6a32d8e 100644 --- a/compiler/bootstrap/ecere/bootstrap/memory.c +++ b/compiler/bootstrap/ecere/bootstrap/memory.c @@ -30,6 +30,8 @@ typedef unsigned __int64 uint64; #endif #include #include +struct __ecereNameSpace__ecere__com__Instance; + extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size); extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size); @@ -332,7 +334,7 @@ extern struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__e void __ecereRegisterModule_memory(struct __ecereNameSpace__ecere__com__Instance * module) { -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::MoveBytes", "void ecere::sys::MoveBytes(void * dest, const void * source, uint count)", __ecereNameSpace__ecere__sys__MoveBytes, module, 1); __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::CopyBytes", "void ecere::sys::CopyBytes(void * dest, const void * source, uint count)", __ecereNameSpace__ecere__sys__CopyBytes, module, 1); diff --git a/compiler/bootstrap/ecs/bootstrap/ecs.c b/compiler/bootstrap/ecs/bootstrap/ecs.c index c77ca6c..091ab59 100644 --- a/compiler/bootstrap/ecs/bootstrap/ecs.c +++ b/compiler/bootstrap/ecs/bootstrap/ecs.c @@ -41,6 +41,8 @@ typedef unsigned __int64 uint64; #define structSize_Instance (_64BIT ? 24 : 12) #define structSize_Module (_64BIT ? 560 : 300) +struct __ecereNameSpace__ecere__com__Instance; + extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size); extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size); @@ -570,7 +572,7 @@ struct __ecereNameSpace__ecere__sys__OldList _imports = struct __ecereNameSpace__ecere__sys__OldList _excludedSymbols = { -0, 0, 0, (unsigned int)&((struct Symbol *)(void * )0)->left, 0 +0, 0, 0, (unsigned int)(uintptr_t)&((struct Symbol *)(void * )0)->left, 0 }; extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__NameSpace; @@ -910,8 +912,6 @@ extern struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com extern void FullClassNameCat(char * output, const char * className, unsigned int includeTemplateParams); -extern void MangleClassName(char * className); - extern struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_FindMethod(struct __ecereNameSpace__ecere__com__Class * _class, const char * name, struct __ecereNameSpace__ecere__com__Instance * module); extern struct Context * SetupTemplatesContext(struct __ecereNameSpace__ecere__com__Class * _class); @@ -963,7 +963,7 @@ if(f) { struct ModuleImport * module; struct ModuleInfo * defModule; -unsigned int nonInst = 0x0, anyMethod = 0x0, anyProp = 0x0, anyFunction = 0x0; +unsigned int anyMethod = 0x0, anyProp = 0x0, anyFunction = 0x0; struct ImportedModule * importedModule; __ecereNameSpace__ecere__sys__GetLastDirectory(fileName, mainModuleName); @@ -1037,11 +1037,8 @@ char className[1024] = ""; struct __ecereNameSpace__ecere__com__Class * regClass = __ecereNameSpace__ecere__com__eSystem_FindClass(privateModule, _class->name); FullClassNameCat(className, _class->name, 0x1); -MangleClassName(className); if(_class->itself) __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "Class __ecereClass_%s;\n", className); -else -nonInst = 0x1; { { for(method = _class->methods.first; method; method = method->next) @@ -1070,7 +1067,6 @@ char propName[1024]; propName[0] = (char)0; FullClassNameCat(propName, prop->name, 0x1); -MangleClassName(propName); if((!strcmp(_class->name, "float") || !strcmp(_class->name, "double") || module->name) && module->importType != 1) { if(prop->hasSet) @@ -1337,7 +1333,6 @@ char classID[1024]; char className[1024] = ""; FullClassNameCat(className, _class->name, 0x1); -MangleClassName(className); if(_class->itself) sprintf(classID, "__ecereClass_%s", className); else @@ -1368,7 +1363,6 @@ char propName[1024]; propName[0] = (char)0; FullClassNameCat(propName, prop->name, 0x1); -MangleClassName(propName); __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereProp_%s_%s = _property = eClass_FindProperty(%s, \"%s\", module);\n", className, propName, classID, prop->name); if((!strcmp(_class->name, "float") || !strcmp(_class->name, "double") || module->name) && module->importType != 1) { @@ -1814,7 +1808,6 @@ type[0] = (char)0; } strcpy(className, "__ecereClass_"); FullClassNameCat(className, classSym->string, 0x1); -MangleClassName(className); DeclareClass(classSym, className); PrintType(method->dataType->__anon1.__anon2.returnType, type, 0x1, 0x1); decl = SpecDeclFromString(type, specs, MkDeclaratorIdentifier(MkIdentifier("__ecereResult"))); @@ -1850,7 +1843,6 @@ type[0] = (char)0; } strcpy(className, "__ecereClass_"); FullClassNameCat(className, classSym->string, 0x1); -MangleClassName(className); DeclareClass(classSym, className); PrintType(param, type, 0x1, 0x1); decl = SpecDeclFromString(type, specs, MkDeclaratorIdentifier(MkIdentifier(param->name))); @@ -1986,7 +1978,6 @@ type[0] = (char)0; } strcpy(className, "__ecereClass_"); FullClassNameCat(className, classSym->string, 0x1); -MangleClassName(className); DeclareClass(classSym, className); PrintType(method->dataType->__anon1.__anon2.returnType, type, 0x1, 0x1); decl = SpecDeclFromString(type, specs, MkDeclaratorIdentifier(MkIdentifier("__ecereResult"))); @@ -2018,7 +2009,6 @@ type[0] = (char)0; } strcpy(className, "__ecereClass_"); FullClassNameCat(className, classSym->string, 0x1); -MangleClassName(className); DeclareClass(classSym, className); if(param->kind == 8 && !strcmp(param->__anon1._class->string, "String")) { @@ -2152,7 +2142,6 @@ type[0] = (char)0; } strcpy(className, "__ecereClass_"); FullClassNameCat(className, classSym->string, 0x1); -MangleClassName(className); DeclareClass(classSym, className); PrintType(method->dataType->__anon1.__anon2.returnType, type, 0x1, 0x1); decl = SpecDeclFromString(type, specs, MkDeclaratorIdentifier(MkIdentifier("__ecereResult"))); @@ -2188,7 +2177,6 @@ type[0] = (char)0; } strcpy(className, "__ecereClass_"); FullClassNameCat(className, classSym->string, 0x1); -MangleClassName(className); DeclareClass(classSym, className); PrintType(param, type, 0x1, 0x1); decl = SpecDeclFromString(type, specs, MkDeclaratorIdentifier(MkIdentifier(param->name))); @@ -2307,7 +2295,6 @@ type[0] = (char)0; } strcpy(className, "__ecereClass_"); FullClassNameCat(className, classSym->string, 0x1); -MangleClassName(className); DeclareClass(classSym, className); PrintType(method->dataType->__anon1.__anon2.returnType, type, 0x1, 0x1); decl = SpecDeclFromString(type, specs, MkDeclaratorIdentifier(MkIdentifier("__ecereResult"))); @@ -2340,7 +2327,6 @@ type[0] = (char)0; } strcpy(className, "__ecereClass_"); FullClassNameCat(className, classSym->string, 0x1); -MangleClassName(className); DeclareClass(classSym, className); if(param->kind == 8 && !strcmp(param->__anon1._class->string, "String")) { @@ -2457,8 +2443,6 @@ extern struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__ extern void SetPrivateModule(struct __ecereNameSpace__ecere__com__Instance * module); -extern const char * GetSymbolsDir(void); - extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__IteratorPointer; struct __ecereNameSpace__ecere__com__IteratorPointer; @@ -2694,7 +2678,6 @@ mainModule = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_ModuleImpo SetMainModule(mainModule); __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_imports, mainModule); { -const char * symbolsDir = GetSymbolsDir(); struct __ecereNameSpace__ecere__com__Instance * intlStrings = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__com__Map_TPL_ContextStringPair__ecere__com__List_TPL_String___); struct __ecereNameSpace__ecere__com__MapIterator it = (it.container = (void *)0, it.pointer = (void *)0, __ecereProp___ecereNameSpace__ecere__com__MapIterator_Set_map(&it, intlStrings), it); @@ -3124,7 +3107,7 @@ extern struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__co void __ecereRegisterModule_ecs(struct __ecereNameSpace__ecere__com__Instance * module) { -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ModuleInfo", 0, sizeof(struct ModuleInfo), 0, 0, 0, module, 2, 1); if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class) diff --git a/compiler/bootstrap/ecs/bootstrap/ecs.main.c b/compiler/bootstrap/ecs/bootstrap/ecs.main.c index 6d84c80..240d3ce 100644 --- a/compiler/bootstrap/ecs/bootstrap/ecs.main.c +++ b/compiler/bootstrap/ecs/bootstrap/ecs.main.c @@ -41,6 +41,8 @@ typedef unsigned __int64 uint64; #define structSize_Instance (_64BIT ? 24 : 12) #define structSize_Module (_64BIT ? 560 : 300) +struct __ecereNameSpace__ecere__com__Instance; + extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size); extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size); @@ -748,7 +750,7 @@ return exitCode; void __ecereRegisterModule_ecs_main(struct __ecereNameSpace__ecere__com__Instance * module) { -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; } diff --git a/compiler/bootstrap/include/stdio.h b/compiler/bootstrap/include/stdio.h index 86706aa..2654293 100644 --- a/compiler/bootstrap/include/stdio.h +++ b/compiler/bootstrap/include/stdio.h @@ -30,7 +30,7 @@ int fputc(int c, FILE *stream); size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream); size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream); -int vsnprintf (char*, size_t, const char*, ...); +int vsnprintf(char*, size_t, const char*, va_list args); int snprintf(char *str, size_t, const char *format, ...); int fseek(FILE *stream, long offset, int whence); diff --git a/compiler/bootstrap/libec/bootstrap/ast.c b/compiler/bootstrap/libec/bootstrap/ast.c index 9905c6f..624ff9b 100644 --- a/compiler/bootstrap/libec/bootstrap/ast.c +++ b/compiler/bootstrap/libec/bootstrap/ast.c @@ -42,6 +42,8 @@ typedef unsigned __int64 uint64; #define structSize_OldLink (_64BIT ? 24 : 12) #define structSize_NamedLink (_64BIT ? 32 : 16) +struct __ecereNameSpace__ecere__com__Instance; + extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size); extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size); @@ -2973,7 +2975,6 @@ return external; struct External * MkExternalDeclaration(struct Declaration * declaration) { struct External * external = (external = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_External), external->type = 1, external->__anon1.declaration = declaration, external->symbol = declaration ? declaration->symbol : (((void *)0)), external); -struct InitDeclarator * d = (declaration && declaration->__anon1.__anon1.declarators) ? (*declaration->__anon1.__anon1.declarators).last : (((void *)0)); if(declaration && declaration->type == 1 && declaration->__anon1.__anon1.specifiers) { @@ -4050,8 +4051,6 @@ struct ExtDecl * extDecl = spec->__anon1.__anon1.extDecl; if(extDecl->type == 0) { -char * s = spec->__anon1.__anon1.extDecl->__anon1.s; - if(!strcmp(spec->__anon1.__anon1.extDecl->__anon1.s, "__declspec(dllexport)") || !strcmp(spec->__anon1.__anon1.extDecl->__anon1.s, "dllexport")) specType->dllExport = 0x1; else if(!strcmp(spec->__anon1.__anon1.extDecl->__anon1.s, "__declspec(stdcall)") || !strcmp(spec->__anon1.__anon1.extDecl->__anon1.s, "stdcall")) @@ -4205,7 +4204,6 @@ specType->__anon1.__anon1.enumName = spec->__anon1.__anon2.id ? __ecereNameSpace if(spec->__anon1.__anon2.list) { struct Enumerator * e; -int nextValue = 0; for(e = (*spec->__anon1.__anon2.list).first; e; e = e->next) { @@ -4797,8 +4795,6 @@ extern struct External * curExternal; extern void FullClassNameCat(char * output, const char * className, unsigned int includeTemplateParams); -extern void MangleClassName(char * className); - extern void DeclareClass(struct Symbol * classSym, const char * className); struct Expression * GetTemplateArgExpByName(const char * paramName, struct __ecereNameSpace__ecere__com__Class * curClass, int tplType) @@ -4834,12 +4830,10 @@ if(curParam) { char idString[32]; char className[1024]; -struct Expression * classExp; sprintf(idString, "%d", id); strcpy(className, "__ecereClass_"); FullClassNameCat(className, _class->fullName, 0x1); -MangleClassName(className); DeclareClass(FindClass(_class->fullName), className); argExp = MkExpIndex((MkExpMember)(MkExpMember(MkExpIdentifier(MkIdentifier("this")), MkIdentifier("_class")), MkIdentifier("templateArgs")), MkListOne(MkExpConstant(idString))); } @@ -4996,7 +4990,7 @@ extern struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere void __ecereRegisterModule_ast(struct __ecereNameSpace__ecere__com__Instance * module) { -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetDefaultNameSpace", "void SetDefaultNameSpace(const char * s)", SetDefaultNameSpace, module, 1); __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetStrictNameSpaces", "void SetStrictNameSpaces(bool b)", SetStrictNameSpaces, module, 1); diff --git a/compiler/bootstrap/libec/bootstrap/copy.c b/compiler/bootstrap/libec/bootstrap/copy.c index 6696076..c36c541 100644 --- a/compiler/bootstrap/libec/bootstrap/copy.c +++ b/compiler/bootstrap/libec/bootstrap/copy.c @@ -30,6 +30,8 @@ typedef unsigned __int64 uint64; #endif #include #include +struct __ecereNameSpace__ecere__com__Instance; + extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size); extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size); @@ -1586,7 +1588,7 @@ extern struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__e void __ecereRegisterModule_copy(struct __ecereNameSpace__ecere__com__Instance * module) { -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; __ecereNameSpace__ecere__com__eSystem_RegisterFunction("CopyIdentifier", "Identifier CopyIdentifier(Identifier id)", CopyIdentifier, module, 2); __ecereNameSpace__ecere__com__eSystem_RegisterFunction("CopyExpContents", "Expression CopyExpContents(Expression exp)", CopyExpContents, module, 2); diff --git a/compiler/bootstrap/libec/bootstrap/dbpass.c b/compiler/bootstrap/libec/bootstrap/dbpass.c index aa60537..78c2f68 100644 --- a/compiler/bootstrap/libec/bootstrap/dbpass.c +++ b/compiler/bootstrap/libec/bootstrap/dbpass.c @@ -30,6 +30,8 @@ typedef unsigned __int64 uint64; #endif #include #include +struct __ecereNameSpace__ecere__com__Instance; + extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size); extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size); @@ -2316,7 +2318,7 @@ extern struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__e void __ecereRegisterModule_dbpass(struct __ecereNameSpace__ecere__com__Instance * module) { -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ProcessDBTableDefinitions", "void ProcessDBTableDefinitions(void)", ProcessDBTableDefinitions, module, 1); } diff --git a/compiler/bootstrap/libec/bootstrap/ec.main.c b/compiler/bootstrap/libec/bootstrap/ec.main.c index 3404017..210fd5c 100644 --- a/compiler/bootstrap/libec/bootstrap/ec.main.c +++ b/compiler/bootstrap/libec/bootstrap/ec.main.c @@ -30,6 +30,8 @@ typedef unsigned __int64 uint64; #endif #include #include +struct __ecereNameSpace__ecere__com__Instance; + extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size); extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size); @@ -996,7 +998,7 @@ return 0x1; void __ecereRegisterModule_ec_main(struct __ecereNameSpace__ecere__com__Instance * module) { -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; } diff --git a/compiler/bootstrap/libec/bootstrap/ecdefs.c b/compiler/bootstrap/libec/bootstrap/ecdefs.c index 8cab045..2887094 100644 --- a/compiler/bootstrap/libec/bootstrap/ecdefs.c +++ b/compiler/bootstrap/libec/bootstrap/ecdefs.c @@ -47,6 +47,8 @@ typedef unsigned __int64 uint64; #define structSize_ExpMember (_64BIT ? 24 : 16) #define structSize_OpTable (_64BIT ? 280 : 140) +struct __ecereNameSpace__ecere__com__Instance; + extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size); extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size); @@ -1007,7 +1009,7 @@ size_t fread(void * ptr, size_t size, size_t nmemb, FILE * stream); size_t fwrite(const void * ptr, size_t size, size_t nmemb, FILE * stream); -int vsnprintf(char *, size_t, const char *, ...); +int vsnprintf(char *, size_t, const char *, va_list args); int snprintf(char * str, size_t, const char * format, ...); @@ -2036,7 +2038,7 @@ extern struct __ecereNameSpace__ecere__com__DefinedExpression * __ecereNameSpace void __ecereRegisterModule_ecdefs(struct __ecereNameSpace__ecere__com__Instance * module) { -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "TokenType", 0, 0, 0, 0, 0, module, 1, 1); if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class) diff --git a/compiler/bootstrap/libec/bootstrap/expression.c b/compiler/bootstrap/libec/bootstrap/expression.c index f33954e..3222b0a 100644 --- a/compiler/bootstrap/libec/bootstrap/expression.c +++ b/compiler/bootstrap/libec/bootstrap/expression.c @@ -30,6 +30,8 @@ typedef unsigned __int64 uint64; #endif #include #include +struct __ecereNameSpace__ecere__com__Instance; + extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size); extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size); @@ -1065,7 +1067,7 @@ size_t fread(void * ptr, size_t size, size_t nmemb, FILE * stream); size_t fwrite(const void * ptr, size_t size, size_t nmemb, FILE * stream); -int vsnprintf(char *, size_t, const char *, ...); +int vsnprintf(char *, size_t, const char *, va_list args); int snprintf(char * str, size_t, const char * format, ...); @@ -4981,7 +4983,7 @@ return (yyresult); void __ecereRegisterModule_expression(struct __ecereNameSpace__ecere__com__Instance * module) { -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; } diff --git a/compiler/bootstrap/libec/bootstrap/firstPass.c b/compiler/bootstrap/libec/bootstrap/firstPass.c index 4bb5279..18a377c 100644 --- a/compiler/bootstrap/libec/bootstrap/firstPass.c +++ b/compiler/bootstrap/libec/bootstrap/firstPass.c @@ -30,6 +30,8 @@ typedef unsigned __int64 uint64; #endif #include #include +struct __ecereNameSpace__ecere__com__Instance; + extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size); extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size); @@ -1041,8 +1043,6 @@ extern char * __ecereNameSpace__ecere__sys__CopyString(const char * string); extern void __ecereNameSpace__ecere__com__eProperty_Watchable(struct __ecereNameSpace__ecere__com__Property * _property); -extern int printf(const char * , ...); - extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassProperty; struct __ecereNameSpace__ecere__com__ClassProperty; @@ -1265,8 +1265,6 @@ propertyDef->category = (((void *)0)); if(propertyDef->__anon1.isWatchable) __ecereNameSpace__ecere__com__eProperty_Watchable(prop); } -else -printf(""); propertyDef->symbol->__anon1._property = prop; if(propertyDef->symbol->type) propertyDef->symbol->type->refCount++; @@ -1274,10 +1272,9 @@ propertyDef->symbol->type->refCount++; else if(def->type == 10 && def->__anon1.propertyDef) { struct PropertyDef * propertyDef = def->__anon1.propertyDef; -struct __ecereNameSpace__ecere__com__ClassProperty * prop; char * dataTypeString = StringFromSpecDecl(propertyDef->specifiers, propertyDef->declarator); -prop = __ecereNameSpace__ecere__com__eClass_AddClassProperty(regClass, propertyDef->id->string, dataTypeString, inCompiler ? propertyDef->setStmt : (((void *)0)), inCompiler ? propertyDef->getStmt : (((void *)0))); +__ecereNameSpace__ecere__com__eClass_AddClassProperty(regClass, propertyDef->id->string, dataTypeString, inCompiler ? propertyDef->setStmt : (((void *)0)), inCompiler ? propertyDef->getStmt : (((void *)0))); (__ecereNameSpace__ecere__com__eSystem_Delete(dataTypeString), dataTypeString = 0); } } @@ -1637,7 +1634,7 @@ break; } if(param->type == 1) { -__ecereNameSpace__ecere__com__eClass_AddTemplateParameter(regClass, param->identifier->string, 1, (void *)param->__anon1.memberType, &defaultArg); +__ecereNameSpace__ecere__com__eClass_AddTemplateParameter(regClass, param->identifier->string, 1, (void *)(uintptr_t)param->__anon1.memberType, &defaultArg); } else { @@ -1810,7 +1807,7 @@ extern struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__e void __ecereRegisterModule_firstPass(struct __ecereNameSpace__ecere__com__Instance * module) { -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; __ecereNameSpace__ecere__com__eSystem_RegisterFunction("PrePreProcessClassDefinitions", "void PrePreProcessClassDefinitions(void)", PrePreProcessClassDefinitions, module, 1); } diff --git a/compiler/bootstrap/libec/bootstrap/freeAst.c b/compiler/bootstrap/libec/bootstrap/freeAst.c index e94f860..6db0369 100644 --- a/compiler/bootstrap/libec/bootstrap/freeAst.c +++ b/compiler/bootstrap/libec/bootstrap/freeAst.c @@ -41,6 +41,8 @@ typedef unsigned __int64 uint64; #define structSize_Instance (_64BIT ? 24 : 12) #define structSize_Module (_64BIT ? 560 : 300) +struct __ecereNameSpace__ecere__com__Instance; + extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size); extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size); @@ -1956,7 +1958,7 @@ FreeExpression(stmt->__anon1._watch.watcher); if(stmt->__anon1._watch.object) FreeExpression(stmt->__anon1._watch.object); if(stmt->__anon1._watch.watches) -FreeList(stmt->__anon1._watch.watches, (stmt->type == 17) ? FreePropertyWatch : FreeIdentifier); +FreeList(stmt->__anon1._watch.watches, (stmt->type == 17) ? (void *)FreePropertyWatch : (void *)FreeIdentifier); break; } } @@ -2741,7 +2743,7 @@ extern struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__e void __ecereRegisterModule_freeAst(struct __ecereNameSpace__ecere__com__Instance * module) { -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeList", "void FreeList(ecere::sys::OldList list, void (* FreeFunction)(void *))", FreeList, module, 2); __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeType", "void FreeType(Type type)", FreeType, module, 1); diff --git a/compiler/bootstrap/libec/bootstrap/grammar.c b/compiler/bootstrap/libec/bootstrap/grammar.c index 881072c..b3e7f13 100644 --- a/compiler/bootstrap/libec/bootstrap/grammar.c +++ b/compiler/bootstrap/libec/bootstrap/grammar.c @@ -30,6 +30,8 @@ typedef unsigned __int64 uint64; #endif #include #include +struct __ecereNameSpace__ecere__com__Instance; + extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size); extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size); @@ -1209,7 +1211,7 @@ size_t fread(void * ptr, size_t size, size_t nmemb, FILE * stream); size_t fwrite(const void * ptr, size_t size, size_t nmemb, FILE * stream); -int vsnprintf(char *, size_t, const char *, ...); +int vsnprintf(char *, size_t, const char *, va_list args); int snprintf(char * str, size_t, const char * format, ...); @@ -5066,7 +5068,7 @@ yyval.context = PushContext(); break; case 236: { -yyvsp[(1) - (2)].context; +(void)yyvsp[(1) - (2)].context; yyval.symbol = DeclClassAddNameSpace(globalContext->nextID++, yyvsp[(2) - (2)].id->string); FreeIdentifier(yyvsp[(2) - (2)].id); yyval.symbol->nameLoc = (yylsp[(2) - (2)]); @@ -5076,7 +5078,7 @@ memberAccessStack[++defaultMemberAccess] = 2; break; case 237: { -yyvsp[(1) - (2)].context; +(void)yyvsp[(1) - (2)].context; yyval.symbol = DeclClass(globalContext->nextID++, yyvsp[(2) - (2)].specifier->__anon1.__anon1.name); yyval.symbol->nameLoc = (yylsp[(2) - (2)]); FreeSpecifier(yyvsp[(2) - (2)].specifier); @@ -5087,7 +5089,7 @@ memberAccessStack[defaultMemberAccess] = 2; break; case 238: { -yyvsp[(2) - (3)].context; +(void)yyvsp[(2) - (3)].context; yyval.symbol = DeclClassAddNameSpace(globalContext->nextID++, yyvsp[(3) - (3)].id->string); FreeIdentifier(yyvsp[(1) - (3)].id); FreeIdentifier(yyvsp[(3) - (3)].id); @@ -5099,7 +5101,7 @@ memberAccessStack[++defaultMemberAccess] = 2; break; case 239: { -yyvsp[(2) - (3)].context; +(void)yyvsp[(2) - (3)].context; yyval.symbol = DeclClass(globalContext->nextID++, yyvsp[(3) - (3)].specifier->__anon1.__anon1.name); FreeIdentifier(yyvsp[(1) - (3)].id); yyval.symbol->nameLoc = (yylsp[(3) - (3)]); @@ -5111,7 +5113,7 @@ memberAccessStack[++defaultMemberAccess] = 2; break; case 240: { -yyvsp[(1) - (5)].context; +(void)yyvsp[(1) - (5)].context; yyval.symbol = DeclClassAddNameSpace(globalContext->nextID++, yyvsp[(2) - (5)].id->string); yyval.symbol->templateParams = yyvsp[(4) - (5)].list; FreeIdentifier(yyvsp[(2) - (5)].id); @@ -5122,7 +5124,7 @@ memberAccessStack[++defaultMemberAccess] = 2; break; case 241: { -yyvsp[(1) - (5)].context; +(void)yyvsp[(1) - (5)].context; yyval.symbol = DeclClass(globalContext->nextID++, yyvsp[(2) - (5)].specifier->__anon1.__anon1.name); yyval.symbol->templateParams = yyvsp[(4) - (5)].list; yyval.symbol->nameLoc = (yylsp[(2) - (5)]); @@ -5134,7 +5136,7 @@ memberAccessStack[defaultMemberAccess] = 2; break; case 242: { -yyvsp[(2) - (6)].context; +(void)yyvsp[(2) - (6)].context; yyval.symbol = DeclClassAddNameSpace(globalContext->nextID++, yyvsp[(3) - (6)].id->string); yyval.symbol->templateParams = yyvsp[(5) - (6)].list; FreeIdentifier(yyvsp[(1) - (6)].id); @@ -5147,7 +5149,7 @@ memberAccessStack[++defaultMemberAccess] = 2; break; case 243: { -yyvsp[(2) - (6)].context; +(void)yyvsp[(2) - (6)].context; yyval.symbol = DeclClass(globalContext->nextID++, yyvsp[(3) - (6)].specifier->__anon1.__anon1.name); yyval.symbol->templateParams = yyvsp[(5) - (6)].list; FreeIdentifier(yyvsp[(1) - (6)].id); @@ -5205,7 +5207,7 @@ PopContext(curContext); break; case 248: { -yyvsp[(1) - (3)].context; +(void)yyvsp[(1) - (3)].context; yyval._class = MkClass(DeclClassAddNameSpace(0, yyvsp[(2) - (3)].id->string), (((void *)0)), (((void *)0))); FreeIdentifier(yyvsp[(2) - (3)].id); if(defaultMemberAccess > -1) @@ -5216,7 +5218,7 @@ PopContext(curContext); break; case 249: { -yyvsp[(1) - (3)].context; +(void)yyvsp[(1) - (3)].context; yyval._class = MkClass(DeclClass(0, yyvsp[(2) - (3)].specifier->__anon1.__anon1.name), (((void *)0)), (((void *)0))); FreeSpecifier(yyvsp[(2) - (3)].specifier); if(defaultMemberAccess > -1) @@ -12730,7 +12732,7 @@ return (yyresult); void __ecereRegisterModule_grammar(struct __ecereNameSpace__ecere__com__Instance * module) { -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; } diff --git a/compiler/bootstrap/libec/bootstrap/lexer.c b/compiler/bootstrap/libec/bootstrap/lexer.c index 086f925..ce0288b 100644 --- a/compiler/bootstrap/libec/bootstrap/lexer.c +++ b/compiler/bootstrap/libec/bootstrap/lexer.c @@ -40,6 +40,8 @@ typedef unsigned __int64 uint64; #define arch_PointerSize sizeof(void *) #define structSize_Instance (_64BIT ? 24 : 12) +struct __ecereNameSpace__ecere__com__Instance; + extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size); extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size); @@ -443,7 +445,7 @@ size_t fread(void * ptr, size_t size, size_t nmemb, FILE * stream); size_t fwrite(const void * ptr, size_t size, size_t nmemb, FILE * stream); -int vsnprintf(char *, size_t, const char *, ...); +int vsnprintf(char *, size_t, const char *, va_list args); int snprintf(char * str, size_t, const char * format, ...); @@ -727,8 +729,6 @@ int include_stack_ptr = 0; extern int yywrap(void); -static void yyunput(int c, char * buf_ptr); - static int input(void); int commentCPP(); @@ -2127,31 +2127,6 @@ yy_is_jam = (yy_current_state == 719); return yy_is_jam ? 0 : yy_current_state; } -static void yyunput(int c, register char * yy_bp) -{ -register char * yy_cp = yy_c_buf_p; - -*yy_cp = yy_hold_char; -if(yy_cp < (*yy_current_buffer).yy_ch_buf + 2) -{ -register int number_to_move = yy_n_chars + 2; -register char * dest = &(*yy_current_buffer).yy_ch_buf[(*yy_current_buffer).yy_buf_size + 2]; -register char * source = &(*yy_current_buffer).yy_ch_buf[number_to_move]; - -while(source > (*yy_current_buffer).yy_ch_buf) -*--dest = *--source; -yy_cp += (int)(dest - source); -yy_bp += (int)(dest - source); -(*yy_current_buffer).yy_n_chars = yy_n_chars = (*yy_current_buffer).yy_buf_size; -if(yy_cp < (*yy_current_buffer).yy_ch_buf + 2) -yy_fatal_error("flex scanner push-back overflow"); -} -*--yy_cp = (char)c; -yytext = yy_bp; -yy_hold_char = *yy_cp; -yy_c_buf_p = yy_cp; -} - static int input() { int c; @@ -2343,7 +2318,7 @@ static void yy_flex_free(void * ptr) free(ptr); } -yywrap() +int yywrap() { return (1); } @@ -2383,7 +2358,7 @@ return 0; int commentCPP() { -int c, last = 0; +int c; for(; ; ) { @@ -2407,7 +2382,6 @@ else yylloc.end.charPos++; yylloc.end.pos++; } -last = c; } yylloc.start = yylloc.end; return 0; @@ -2576,8 +2550,6 @@ fileInput = file; yy_switch_to_buffer(yy_create_buffer(fileInput, 16384)); yy_start = 1 + 2 * (0); } -else -printf(""); } } return 0; @@ -2761,7 +2733,7 @@ extern struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__e void __ecereRegisterModule_lexer(struct __ecereNameSpace__ecere__com__Instance * module) { -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "yy_buffer_state", 0, sizeof(struct yy_buffer_state), 0, 0, 0, module, 2, 1); if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class) diff --git a/compiler/bootstrap/libec/bootstrap/loadSymbols.c b/compiler/bootstrap/libec/bootstrap/loadSymbols.c index 38a7881..25f64b3 100644 --- a/compiler/bootstrap/libec/bootstrap/loadSymbols.c +++ b/compiler/bootstrap/libec/bootstrap/loadSymbols.c @@ -40,6 +40,8 @@ typedef unsigned __int64 uint64; #define arch_PointerSize sizeof(void *) #define structSize_Instance (_64BIT ? 24 : 12) +struct __ecereNameSpace__ecere__com__Instance; + extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size); extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size); @@ -1255,7 +1257,7 @@ __ecereMethod___ecereNameSpace__ecere__sys__File_GetLine(f, line, sizeof (line)) __ecereNameSpace__ecere__sys__TrimLSpaces(line, line); if(regClass) { -struct __ecereNameSpace__ecere__com__Property * prop = __ecereNameSpace__ecere__com__eClass_AddProperty(regClass, conversion ? (((void *)0)) : name, line[0] ? line : 0, (void *)setStmt, (void *)getStmt, memberAccess); +struct __ecereNameSpace__ecere__com__Property * prop = __ecereNameSpace__ecere__com__eClass_AddProperty(regClass, conversion ? (((void *)0)) : name, line[0] ? line : 0, (void *)(uintptr_t)setStmt, (void *)(uintptr_t)getStmt, memberAccess); if(prop) { @@ -1312,7 +1314,7 @@ __ecereMethod___ecereNameSpace__ecere__sys__File_GetLine(f, line, sizeof (line)) __ecereNameSpace__ecere__sys__TrimLSpaces(line, line); if(regClass) { -__ecereNameSpace__ecere__com__eClass_AddClassProperty(regClass, name, line, (void *)setStmt, (void *)getStmt); +__ecereNameSpace__ecere__com__eClass_AddClassProperty(regClass, name, line, (void *)(uintptr_t)setStmt, (void *)(uintptr_t)getStmt); } } else if(!strcmp(line, "[Set]")) @@ -2042,7 +2044,7 @@ __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(&dataRedefinitions, ((( void __ecereRegisterModule_loadSymbols(struct __ecereNameSpace__ecere__com__Instance * module) { -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetGlobalData", "void SetGlobalData(ecere::com::NameSpace * nameSpace)", SetGlobalData, module, 1); __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetInIDE", "void SetInIDE(bool b)", SetInIDE, module, 1); diff --git a/compiler/bootstrap/libec/bootstrap/output.c b/compiler/bootstrap/libec/bootstrap/output.c index 9b557d6..0fcf3a9 100644 --- a/compiler/bootstrap/libec/bootstrap/output.c +++ b/compiler/bootstrap/libec/bootstrap/output.c @@ -30,6 +30,8 @@ typedef unsigned __int64 uint64; #endif #include #include +struct __ecereNameSpace__ecere__com__Instance; + extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size); extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size); @@ -3914,7 +3916,7 @@ extern struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__e void __ecereRegisterModule_output(struct __ecereNameSpace__ecere__com__Instance * module) { -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetMemoryGuard", "void SetMemoryGuard(bool b)", SetMemoryGuard, module, 1); __ecereNameSpace__ecere__com__eSystem_RegisterFunction("GetMemoryGuard", "bool GetMemoryGuard(void)", GetMemoryGuard, module, 1); diff --git a/compiler/bootstrap/libec/bootstrap/pass0.c b/compiler/bootstrap/libec/bootstrap/pass0.c index a2ab238..1c17013 100644 --- a/compiler/bootstrap/libec/bootstrap/pass0.c +++ b/compiler/bootstrap/libec/bootstrap/pass0.c @@ -41,6 +41,8 @@ typedef unsigned __int64 uint64; #define structSize_Instance (_64BIT ? 24 : 12) #define structSize_Module (_64BIT ? 560 : 300) +struct __ecereNameSpace__ecere__com__Instance; + extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size); extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size); @@ -1097,67 +1099,12 @@ extern struct Location yylloc; extern struct External * curExternal; -extern int strncmp(const char * , const char * , size_t n); - -void MangleClassName(char * className) -{ -char output[1024]; -int c, d = 0; -char ch; - -c = 0; -if(!strncmp(className, "const ", 6)) -c += 6; -for(; (ch = className[c]); c++) -{ -if(ch == ' ') -output[d++] = '_'; -else if(ch == '*') -{ -output[d++] = '_'; -output[d++] = 'P'; -output[d++] = 'T'; -output[d++] = 'R'; -output[d++] = '_'; -} -else if(ch == '<') -{ -if(!strncmp(className + c + 1, "const ", 6)) -c += 6; -output[d++] = '_'; -output[d++] = 'T'; -output[d++] = 'P'; -output[d++] = 'L'; -output[d++] = '_'; -} -else if(ch == '=') -{ -output[d++] = '_'; -output[d++] = 'E'; -output[d++] = 'Q'; -output[d++] = 'U'; -output[d++] = '_'; -} -else if(ch == '>') -{ -output[d++] = '_'; -} -else if(ch == ',') -{ -if(!strncmp(className + c + 1, "const ", 6)) -c += 6; -output[d++] = '_'; -} -else -output[d++] = ch; -} -output[d] = (char)0; -} - extern char * strcat(char * , const char * ); extern size_t strlen(const char * ); +extern int strncmp(const char * , const char * , size_t n); + void FullClassNameCat(char * output, const char * className, unsigned int includeTemplateParams) { int c; @@ -1424,8 +1371,6 @@ CheckPublicTypeName(exp->__anon1.typeName, access); break; case 11: { -struct Type * type = exp->expType; - CheckPublicTypeName(exp->__anon1.cast.typeName, access); if(exp->__anon1.cast.exp) CheckPublicExpression(exp->__anon1.cast.exp, access); @@ -1773,7 +1718,6 @@ char constructorName[1024]; char destructorName[1024]; struct __ecereNameSpace__ecere__com__Class * regClass; struct ClassFunction * destructor = (((void *)0)), * constructor = (((void *)0)); -unsigned int redefinition = 0x0; unsigned int isUnion = classType == 6; struct External * external = (((void *)0)); struct ClassDef * def; @@ -1857,10 +1801,12 @@ CheckMembersDefinitions(regClass, (((void *)0)), definitions, 2); } for(def = definitions->first; def; def = def->next) { +yylloc = def->loc; if(def->type == 2) { struct Declaration * decl = def->__anon1.decl; +yylloc = decl->loc; if(decl->type == 0) { if(inCompiler && classType != 2) @@ -2030,7 +1976,6 @@ struct __ecereNameSpace__ecere__sys__OldList * specs = MkList(), * declarators = strcpy(className, "__ecereClass_"); FullClassNameCat(className, symbol->string, 0x1); -MangleClassName(className); symbol->className = __ecereNameSpace__ecere__sys__CopyString(className); if(!strstr(sourceFile, ".main.ec")) ListAdd(specs, MkSpecifier(STATIC)); @@ -2245,7 +2190,6 @@ strcpy(name, "__ecereProp_"); FullClassNameCat(name, symbol->string, 0x0); strcat(name, "_Get_"); FullClassNameCat(name, propertyDef->id->string, 0x1); -MangleClassName(name); params = MkList(); if(propertyDef->symbol->type && propertyDef->symbol->type->kind == 8 && propertyDef->symbol->type->__anon1._class && propertyDef->symbol->type->__anon1._class->__anon1.registered && propertyDef->symbol->type->__anon1._class->__anon1.registered->type == 1) { @@ -2278,7 +2222,6 @@ strcpy(name, "__ecereProp_"); FullClassNameCat(name, symbol->string, 0x0); strcat(name, "_Set_"); FullClassNameCat(name, propertyDef->id->string, 0x1); -MangleClassName(name); params = MkList(); ListAdd(params, MkTypeName(CopyList(propertyDef->specifiers, CopySpecifier), PlugDeclarator(propertyDef->declarator, MkDeclaratorIdentifier(MkIdentifier("value"))))); if(propertyDef->__anon1.isDBProp) @@ -2337,7 +2280,6 @@ strcpy(name, "__ecereProp_"); FullClassNameCat(name, symbol->string, 0x0); strcat(name, "_IsSet_"); FullClassNameCat(name, propertyDef->id->string, 0x1); -MangleClassName(name); params = MkList(); decl = MkDeclaratorFunction(MkDeclaratorIdentifier(MkIdentifier(name)), params); ListAdd(specifiers, MkSpecifierName("bool")); @@ -2367,7 +2309,6 @@ strcpy(name, "__ecereProp_"); FullClassNameCat(name, symbol->string, 0x0); strcat(name, "_"); FullClassNameCat(name, propertyDef->id->string, 0x1); -MangleClassName(name); { struct __ecereNameSpace__ecere__sys__OldList * list = MkList(); @@ -2376,7 +2317,6 @@ strcpy(name, "__ecerePropM_"); FullClassNameCat(name, symbol->string, 0x0); strcat(name, "_"); FullClassNameCat(name, propertyDef->id->string, 0x1); -MangleClassName(name); ListAdd(list, MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier(name)), (((void *)0)))); decl = MkDeclaration(specifiers, list); } @@ -2419,7 +2359,6 @@ sprintf(name, "class::__ecereClassProp_"); FullClassNameCat(name, symbol->string, 0x0); strcat(name, "_Get_"); strcat(name, propertyDef->id->string); -MangleClassName(name); params = MkList(); declId = MkDeclaratorIdentifier(MkIdentifier(name)); { @@ -2455,7 +2394,6 @@ strcpy(name, "class::__ecereClassProp_"); FullClassNameCat(name, symbol->string, 0x0); strcat(name, "_Set_"); strcat(name, propertyDef->id->string); -MangleClassName(name); params = MkList(); prevCurContext = curContext; curContext = body->__anon1.compound.context; @@ -2632,9 +2570,8 @@ extern struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__e void __ecereRegisterModule_pass0(struct __ecereNameSpace__ecere__com__Instance * module) { -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; -__ecereNameSpace__ecere__com__eSystem_RegisterFunction("MangleClassName", "void MangleClassName(char * className)", MangleClassName, module, 1); __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FullClassNameCat", "void FullClassNameCat(char * output, const char * className, bool includeTemplateParams)", FullClassNameCat, module, 1); __ecereNameSpace__ecere__com__eSystem_RegisterFunction("PreProcessClassDefinitions", "void PreProcessClassDefinitions(void)", PreProcessClassDefinitions, module, 1); } diff --git a/compiler/bootstrap/libec/bootstrap/pass1.c b/compiler/bootstrap/libec/bootstrap/pass1.c index dddc017..09c9533 100644 --- a/compiler/bootstrap/libec/bootstrap/pass1.c +++ b/compiler/bootstrap/libec/bootstrap/pass1.c @@ -40,6 +40,8 @@ typedef unsigned __int64 uint64; #define arch_PointerSize sizeof(void *) #define structSize_Instance (_64BIT ? 24 : 12) +struct __ecereNameSpace__ecere__com__Instance; + extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size); extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size); @@ -1382,6 +1384,16 @@ extern struct Declarator * MkDeclaratorIdentifier(struct Identifier * id); extern struct Identifier * MkIdentifier(const char * string); +extern struct Specifier * MkSpecifierExtended(struct ExtDecl * extDecl); + +extern struct ExtDecl * MkExtDeclAttrib(struct Attrib * attr); + +extern struct Attrib * MkAttrib(int type, struct __ecereNameSpace__ecere__sys__OldList * attribs); + +extern struct Attribute * MkAttribute(char * attr, struct Expression * exp); + +extern char * __ecereNameSpace__ecere__sys__CopyString(const char * string); + extern struct TypeName * MkTypeName(struct __ecereNameSpace__ecere__sys__OldList * qualifiers, struct Declarator * declarator); extern char * __ecereNameSpace__ecere__sys__GetLastDirectory(const char * string, char * output); @@ -1415,7 +1427,8 @@ struct Context * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New( __ecereInstance1->parent = globalContext, __ecereInstance1; }); -ListAdd(registerModuleBody->__anon1.compound.declarations, MkDeclaration(MkListOne(MkSpecifierName("ecere::com::Class")), MkListOne(MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier("class")), (((void *)0)))))); +ListAdd(registerModuleBody->__anon1.compound.declarations, MkDeclaration((specifiers = MkListOne(MkSpecifierName("ecere::com::Class"))), MkListOne(MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier("class")), (((void *)0)))))); +__ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*specifiers), MkSpecifierExtended(MkExtDeclAttrib(MkAttrib(ATTRIB, MkListOne(MkAttribute(__ecereNameSpace__ecere__sys__CopyString("unused"), (((void *)0)))))))); specifiers = MkList(); ListAdd(specifiers, MkSpecifier(VOID)); moduleParam = MkTypeName(MkListOne(MkSpecifierName("Module")), MkDeclaratorIdentifier(MkIdentifier("module"))); @@ -1481,8 +1494,6 @@ extern void FullClassNameCat(char * output, const char * className, unsigned i extern char * strcat(char * , const char * ); -extern void MangleClassName(char * className); - extern struct Statement * MkExpressionStmt(struct __ecereNameSpace__ecere__sys__OldList * expressions); extern struct Expression * MkExpOp(struct Expression * exp1, int op, struct Expression * exp2); @@ -1591,7 +1602,6 @@ strcpy(name, "__ecereProp_"); FullClassNameCat(name, regClass->fullName, 0x0); strcat(name, "_Set_"); FullClassNameCat(name, prop->name, 0x1); -MangleClassName(name); ListAdd(args, MkExpIdentifier(MkIdentifier(name))); } else @@ -1602,7 +1612,6 @@ strcpy(name, "__ecereProp_"); FullClassNameCat(name, regClass->fullName, 0x0); strcat(name, "_Get_"); FullClassNameCat(name, prop->name, 0x1); -MangleClassName(name); ListAdd(args, MkExpIdentifier(MkIdentifier(name))); } else @@ -1624,7 +1633,6 @@ strcpy(name, "__ecereProp_"); FullClassNameCat(name, regClass->fullName, 0x0); strcat(name, "_"); FullClassNameCat(name, prop->name, 0x1); -MangleClassName(name); stmt = MkExpressionStmt(MkListOne(MkExpOp(MkExpIdentifier(MkIdentifier(name)), '=', MkExpCall(MkExpIdentifier(MkIdentifier("eClass_AddProperty")), args)))); ListAdd(registerModuleBody->__anon1.compound.statements, stmt); } @@ -1654,7 +1662,6 @@ strcpy(name, "__ecereProp_"); FullClassNameCat(name, regClass->fullName, 0x0); strcat(name, "_Set_"); FullClassNameCat(name, prop->name, 0x1); -MangleClassName(name); ListAdd(args, MkExpIdentifier(MkIdentifier(name))); } else @@ -1665,7 +1672,6 @@ strcpy(name, "__ecereProp_"); FullClassNameCat(name, regClass->fullName, 0x0); strcat(name, "_Get_"); FullClassNameCat(name, prop->name, 0x1); -MangleClassName(name); ListAdd(args, MkExpIdentifier(MkIdentifier(name))); } else @@ -1687,12 +1693,10 @@ strcpy(name, "__ecereProp_"); FullClassNameCat(name, regClass->fullName, 0x0); strcat(name, "_"); FullClassNameCat(name, prop->name, 0x1); -MangleClassName(name); strcpy(nameM, "__ecerePropM_"); FullClassNameCat(nameM, regClass->fullName, 0x0); strcat(nameM, "_"); FullClassNameCat(nameM, prop->name, 0x1); -MangleClassName(nameM); if(prop->dataTypeString) { stmt = MkExpressionStmt(MkListOne(MkExpOp(MkExpIdentifier(MkIdentifier(nameM)), '=', MkExpCall(MkExpIdentifier(MkIdentifier("eClass_AddProperty")), args)))); @@ -1710,7 +1714,6 @@ strcpy(name, "__ecereProp_"); FullClassNameCat(name, regClass->fullName, 0x1); strcat(name, "_IsSet_"); FullClassNameCat(name, prop->name, 0x0); -MangleClassName(name); stmt = MkExpressionStmt(MkListOne(MkExpOp(MkExpMember(MkExpIdentifier(MkIdentifier(nameM)), MkIdentifier("IsSet")), '=', MkExpCast(MkTypeName(MkListOne(MkSpecifier(VOID)), MkDeclaratorPointer(MkPointer((((void *)0)), (((void *)0))), (((void *)0)))), MkExpIdentifier(MkIdentifier(name)))))); ListAdd(registerModuleBody->__anon1.compound.statements, stmt); } @@ -1920,12 +1923,10 @@ strcpy(name, "__ecereProp_"); FullClassNameCat(name, regClass->fullName, 0x1); strcat(name, "_"); FullClassNameCat(name, prop->name, 0x0); -MangleClassName(name); strcpy(nameM, "__ecerePropM_"); FullClassNameCat(nameM, regClass->fullName, 0x1); strcat(nameM, "_"); FullClassNameCat(nameM, prop->name, 0x0); -MangleClassName(nameM); args = MkListOne(MkExpCondition(MkExpIdentifier(MkIdentifier(nameM)), MkListOne(MkExpIdentifier(MkIdentifier(nameM))), MkExpIdentifier(MkIdentifier(name)))); stmt = MkExpressionStmt(MkListOne(MkExpCall(MkExpIdentifier(MkIdentifier("eProperty_Watchable")), args))); ListAdd(registerModuleBody->__anon1.compound.statements, stmt); @@ -1952,7 +1953,6 @@ strcpy(name, "__ecereClassProp_"); FullClassNameCat(name, regClass->fullName, 0x1); strcat(name, "_Set_"); strcat(name, classProperty->name); -MangleClassName(name); ListAdd(args, MkExpIdentifier(MkIdentifier(name))); } else @@ -1963,7 +1963,6 @@ strcpy(name, "__ecereClassProp_"); FullClassNameCat(name, regClass->fullName, 0x1); strcat(name, "_Get_"); strcat(name, classProperty->name); -MangleClassName(name); ListAdd(args, MkExpIdentifier(MkIdentifier(name))); } else @@ -3183,7 +3182,7 @@ extern struct __ecereNameSpace__ecere__com__Instance * __thisModule; void __ecereRegisterModule_pass1(struct __ecereNameSpace__ecere__com__Instance * module) { -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetBuildingEcereCom", "void SetBuildingEcereCom(bool b)", SetBuildingEcereCom, module, 1); __ecereNameSpace__ecere__com__eSystem_RegisterFunction("GetBuildingEcereCom", "bool GetBuildingEcereCom(void)", GetBuildingEcereCom, module, 1); diff --git a/compiler/bootstrap/libec/bootstrap/pass15.c b/compiler/bootstrap/libec/bootstrap/pass15.c index 59dfb28..8bc51c0 100644 --- a/compiler/bootstrap/libec/bootstrap/pass15.c +++ b/compiler/bootstrap/libec/bootstrap/pass15.c @@ -42,6 +42,8 @@ typedef unsigned __int64 uint64; #define structSize_Module (_64BIT ? 560 : 300) #define structSize_NamedLink (_64BIT ? 32 : 16) +struct __ecereNameSpace__ecere__com__Instance; + extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size); extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size); @@ -3166,8 +3168,6 @@ extern struct External * MkExternalDeclaration(struct Declaration * declaration) extern struct Declaration * MkDeclaration(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct __ecereNameSpace__ecere__sys__OldList * initDeclarators); -extern void MangleClassName(char * className); - extern void DeclareClass(struct Symbol * classSym, const char * className); void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Move(struct __ecereNameSpace__ecere__sys__OldList * this, void * item, void * prevItem); @@ -3257,7 +3257,6 @@ char className[1024]; strcpy(className, "__ecereClass_"); FullClassNameCat(className, classSym->string, 0x1); -MangleClassName(className); DeclareClass(classSym, className); external->symbol = classSym; classSym->__anon2.__anon1.pointerExternal = external; @@ -3270,7 +3269,6 @@ char className[1024]; strcpy(className, "__ecereClass_"); FullClassNameCat(className, classSym->string, 0x1); -MangleClassName(className); classSym->__anon2.__anon1.structExternal = external; DeclareClass(classSym, className); external->symbol = classSym; @@ -3349,12 +3347,10 @@ strcpy(setName, "__ecereProp_"); FullClassNameCat(setName, prop->_class->fullName, 0x0); strcat(setName, "_Set_"); FullClassNameCat(setName, prop->name, 0x1); -MangleClassName(setName); strcpy(getName, "__ecereProp_"); FullClassNameCat(getName, prop->_class->fullName, 0x0); strcat(getName, "_Get_"); FullClassNameCat(getName, prop->name, 0x1); -MangleClassName(getName); if(prop->_class->type == 1) DeclareStruct(prop->_class->fullName, 0x0); if(!symbol || curExternal->symbol->idCode < symbol->id) @@ -3562,7 +3558,6 @@ strcpy(propName, "__ecereProp_"); FullClassNameCat(propName, prop->_class->fullName, 0x0); strcat(propName, "_"); FullClassNameCat(propName, prop->name, 0x1); -MangleClassName(propName); { struct __ecereNameSpace__ecere__sys__OldList * list = MkList(); @@ -3573,7 +3568,6 @@ strcpy(propName, "__ecerePropM_"); FullClassNameCat(propName, prop->_class->fullName, 0x0); strcat(propName, "_"); FullClassNameCat(propName, prop->name, 0x1); -MangleClassName(propName); ListAdd(list, MkInitDeclarator(MkDeclaratorPointer(MkPointer((((void *)0)), (((void *)0))), MkDeclaratorIdentifier(MkIdentifier(propName))), (((void *)0)))); } decl = MkDeclaration(specifiers, list); @@ -3814,7 +3808,6 @@ if(type && type->kind == 8 && type->__anon1._class && type->__anon1._class->__an { struct __ecereNameSpace__ecere__com__Class * expClass = type->__anon1._class->__anon1.registered; struct __ecereNameSpace__ecere__com__Class * cClass = (((void *)0)); -int c; int paramCount = 0; int lastParam = -1; char templateString[1024]; @@ -4392,7 +4385,6 @@ struct Symbol * symbol = method->symbol; if(!symbol || (!symbol->__anon2.__anon1.pointerExternal && method->type == 1) || symbol->id > (curExternal ? curExternal->symbol->idCode : -1)) { -unsigned int imported = 0x0; unsigned int dllImport = 0x0; if(!method->dataType) @@ -4443,7 +4435,6 @@ symbol->type->refCount++; } if(!method->dataType->dllExport) { -imported = 0x1; if((method->_class->module != privateModule || !strcmp(method->_class->name, "float") || !strcmp(method->_class->name, "double")) && ((struct __ecereNameSpace__ecere__com__Module *)(((char *)method->_class->module + structSize_Instance)))->importType != 1) dllImport = 0x1; } @@ -11332,7 +11323,6 @@ struct Identifier * ident = member->identifiers ? (*member->identifiers).first : unsigned int found = 0x0; struct __ecereNameSpace__ecere__com__Property * prop = (((void *)0)); struct __ecereNameSpace__ecere__com__DataMember * dataMember = (((void *)0)); -struct __ecereNameSpace__ecere__com__Method * method = (((void *)0)); unsigned int dataMemberOffset; if(!ident) @@ -11669,7 +11659,7 @@ case 2: { unsigned short v; -type->isSigned ? GetShort(value, &v) : GetUShort(value, &v); +type->isSigned ? GetShort(value, (short *)&v) : GetUShort(value, &v); part = (uint64)v; break; } @@ -11678,7 +11668,7 @@ case 5: { unsigned int v; -type->isSigned ? GetInt(value, &v) : GetUInt(value, &v); +type->isSigned ? GetInt(value, (int *)&v) : GetUInt(value, &v); part = (uint64)v; break; } @@ -11686,7 +11676,7 @@ case 4: { uint64 v; -type->isSigned ? GetInt64(value, &v) : GetUInt64(value, &v); +type->isSigned ? GetInt64(value, (long long *)&v) : GetUInt64(value, &v); part = v; break; } @@ -11694,7 +11684,7 @@ case 22: { uintptr_t v; -type->isSigned ? GetIntPtr(value, &v) : GetUIntPtr(value, &v); +type->isSigned ? GetIntPtr(value, (intptr_t *)&v) : GetUIntPtr(value, &v); part = (uint64)v; break; } @@ -11702,7 +11692,7 @@ case 23: { size_t v; -type->isSigned ? GetIntSize(value, &v) : GetUIntSize(value, &v); +type->isSigned ? GetIntSize(value, (ssize_t *)&v) : GetUIntSize(value, &v); part = (uint64)v; break; } @@ -11776,11 +11766,11 @@ result = isSigned ? GetOpInt(op, &op->__anon1.i) : GetOpUInt(op, &op->__anon1.ui break; case 22: if(op->kind == 1 || op->kind == 2 || op->kind == 3 || op->kind == 5 || op->kind == 15 || op->kind == 24) -result = isSigned ? GetOpIntPtr(op, &op->__anon1.i64) : GetOpUIntPtr(op, &op->__anon1.i64); +result = isSigned ? GetOpIntPtr(op, &op->__anon1.i64) : GetOpUIntPtr(op, &op->__anon1.ui64); break; case 23: if(op->kind == 1 || op->kind == 2 || op->kind == 3 || op->kind == 5 || op->kind == 15 || op->kind == 24) -result = isSigned ? GetOpIntSize(op, &op->__anon1.ui64) : GetOpUIntSize(op, &op->__anon1.ui64); +result = isSigned ? GetOpIntSize(op, &op->__anon1.i64) : GetOpUIntSize(op, &op->__anon1.ui64); break; } return result; @@ -12408,7 +12398,7 @@ break; } else if(_class->type == 1) { -char * value = (exp->__anon1.member.exp->type == 1) ? exp->__anon1.member.exp->__anon1.instance->data : (((void *)0)); +unsigned char * value = (exp->__anon1.member.exp->type == 1) ? exp->__anon1.member.exp->__anon1.instance->data : (((void *)0)); switch(type->kind) { @@ -12479,7 +12469,6 @@ char className[1024]; strcpy(className, "__ecereClass_"); FullClassNameCat(className, classSym->string, 0x1); -MangleClassName(className); DeclareClass(classSym, className); FreeExpContents(exp); exp->type = 9; @@ -12933,7 +12922,6 @@ break; else if(exp->expType && exp->expType->passAsTemplate && exp->destType && ((unsigned int)((exp->usage & 0x1) >> 0)) && exp->destType->kind != 20 && !exp->destType->passAsTemplate) { struct Expression * newExp = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Expression); -struct Statement * compound; struct Context * context; *newExp = *exp; @@ -13382,8 +13370,6 @@ static void PrePrintType(struct Type * type, char * string, unsigned int fullNam { if(type->kind == 12 || type->kind == 13 || type->kind == 11 || type->kind == 16) { -struct Type * attrType = (((void *)0)); - if((type->kind == 11 || type->kind == 16) && (!parentType || parentType->kind != 13)) PrintAttribs(type, string); if(printConst && type->constant && (type->kind == 11 || type->kind == 16)) @@ -14106,6 +14092,10 @@ extern char * __ecereNameSpace__ecere__com__PrintString(struct __ecereNameSpace extern const char * sourceFile; +unsigned int __ecereProp_Type_Get_specConst(struct Type * this); + +extern struct __ecereNameSpace__ecere__com__Property ** __ecereProp_Type_specConst; + void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Clear(struct __ecereNameSpace__ecere__sys__OldList * this); void ProcessExpressionType(struct Expression * exp) @@ -14363,8 +14353,6 @@ break; } case 1: { -struct __ecereNameSpace__ecere__com__Class * _class; - if(!exp->__anon1.instance->_class) { if(exp->destType && exp->destType->kind == 8 && exp->destType->__anon1._class) @@ -15888,12 +15876,8 @@ FreeType(functionType); if(exp->__anon1.call.arguments) { for(e = (*exp->__anon1.call.arguments).first; e; e = e->next) -{ -struct Type * destType = e->destType; - ProcessExpressionType(e); } -} break; } case 8: @@ -15958,9 +15942,6 @@ char * colon = strstr(param->defaultArg.__anon1.__anon2.memberString, "::"); if(colon) { -char className[1024]; -struct __ecereNameSpace__ecere__com__Class * sClass; - memcpy(thisClassTypeString, param->defaultArg.__anon1.__anon2.memberString, colon - param->defaultArg.__anon1.__anon2.memberString); thisClassTypeString[colon - param->defaultArg.__anon1.__anon2.memberString] = '\0'; } @@ -15973,7 +15954,6 @@ if(exp->expType->kind == 8 && exp->expType->__anon1._class && exp->expType->__an { struct __ecereNameSpace__ecere__com__Class * expClass = exp->expType->__anon1._class->__anon1.registered; struct __ecereNameSpace__ecere__com__Class * cClass = (((void *)0)); -int c; int paramCount = 0; int lastParam = -1; char templateString[1024]; @@ -16481,7 +16461,6 @@ struct __ecereNameSpace__ecere__com__Class * expClass = exp->expType->__anon1._c if(expClass) { struct __ecereNameSpace__ecere__com__Class * cClass = (((void *)0)); -int c; int p = 0; int paramCount = 0; int lastParam = -1; @@ -16499,7 +16478,6 @@ cClass = sClass; for(param = cClass->templateParams.first; param; param = param->next) { struct __ecereNameSpace__ecere__com__Class * cClassCur = (((void *)0)); -int c; int cp = 0; struct __ecereNameSpace__ecere__com__ClassTemplateParameter * paramCur = (((void *)0)); struct __ecereNameSpace__ecere__com__ClassTemplateArgument arg; @@ -16687,7 +16665,6 @@ char className[1024]; strcpy(className, "__ecereClass_"); FullClassNameCat(className, classSym->string, 0x1); -MangleClassName(className); DeclareClass(classSym, className); FreeExpContents(exp); exp->type = 9; @@ -16949,7 +16926,7 @@ if(exp->__anon1.list) struct Expression * e; type = ProcessTypeString(typeString, 0x0); -while(e = (*exp->__anon1.list).first) +while((e = (*exp->__anon1.list).first)) { __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove((&*exp->__anon1.list), e); e->destType = type; @@ -17342,7 +17319,6 @@ case 4: { if(spec->__anon1.__anon2.definitions) { -struct ClassDef * def; struct Symbol * symbol = spec->__anon1.__anon2.id ? FindClass(spec->__anon1.__anon2.id->string) : (((void *)0)); ProcessClass(spec->__anon1.__anon2.definitions, symbol); @@ -17572,12 +17548,10 @@ strcpy(propName, "__ecereProp_"); FullClassNameCat(propName, prop->_class->fullName, 0x0); strcat(propName, "_"); FullClassNameCat(propName, prop->name, 0x1); -MangleClassName(propName); strcpy(propNameM, "__ecerePropM_"); FullClassNameCat(propNameM, prop->_class->fullName, 0x0); strcat(propNameM, "_"); FullClassNameCat(propNameM, prop->name, 0x1); -MangleClassName(propNameM); if(prop->isWatchable) { args = MkList(); @@ -17926,7 +17900,7 @@ struct Expression * e; builtinCount = (*arrayExp->__anon1.list).count; type = ProcessTypeString(typeString, 0x0); -while(e = (*arrayExp->__anon1.list).first) +while((e = (*arrayExp->__anon1.list).first)) { __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove((&*arrayExp->__anon1.list), e); e->destType = type; @@ -18355,7 +18329,6 @@ strcpy(propName, "__ecereProp_"); FullClassNameCat(propName, prop->_class->fullName, 0x0); strcat(propName, "_"); FullClassNameCat(propName, prop->name, 0x1); -MangleClassName(propName); ListAdd(args, CopyExpression(object)); ListAdd(args, MkExpIdentifier(MkIdentifier(propName))); ListAdd(args, watcher ? CopyExpression(watcher) : MkExpIdentifier(MkIdentifier("this"))); @@ -18443,7 +18416,6 @@ symbol->type->extraParam = 0x0; } strcpy(className, "__ecereClass_"); FullClassNameCat(className, _class->fullName, 0x1); -MangleClassName(className); structName[0] = (char)0; FullClassNameCat(structName, _class->fullName, 0x0); funcDecl = GetFuncDecl(function->declarator); @@ -18568,7 +18540,6 @@ char className[1024]; strcpy(className, "__ecereClass_"); FullClassNameCat(className, classSym->string, 0x1); -MangleClassName(className); DeclareClass(classSym, className); } bytePtr = QBrackets(MkExpCast(QMkType("char", QMkPtrDecl((((void *)0)))), QMkExpId("this"))); @@ -18833,6 +18804,12 @@ after = external; } } } +{ +struct External * e = MkExternalDeclaration(MkDeclaration(MkListOne(MkStructOrUnion(3, MkIdentifier("__ecereNameSpace__ecere__com__Instance"), (((void *)0)))), (((void *)0)))); + +__ecereMethod___ecereNameSpace__ecere__sys__OldList_Insert((&*ast), after, e); +after = e; +} temp->symbol = __extension__ ({ struct Symbol * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Symbol); @@ -18910,7 +18887,7 @@ extern struct __ecereNameSpace__ecere__com__Instance * __thisModule; void __ecereRegisterModule_pass15(struct __ecereNameSpace__ecere__com__Instance * module) { -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetYydebug", "void SetYydebug(bool b)", SetYydebug, module, 1); __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetThisClass", "void SetThisClass(ecere::com::Class c)", SetThisClass, module, 1); diff --git a/compiler/bootstrap/libec/bootstrap/pass16.c b/compiler/bootstrap/libec/bootstrap/pass16.c index 9bccae8..d9577c4 100644 --- a/compiler/bootstrap/libec/bootstrap/pass16.c +++ b/compiler/bootstrap/libec/bootstrap/pass16.c @@ -30,6 +30,8 @@ typedef unsigned __int64 uint64; #endif #include #include +struct __ecereNameSpace__ecere__com__Instance; + extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size); extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size); @@ -1965,8 +1967,6 @@ extern struct Symbol * FindClass(const char * name); extern void FullClassNameCat(char * output, const char * className, unsigned int includeTemplateParams); -extern void MangleClassName(char * className); - static struct Declaration * curDecl; static int declTempCount; @@ -2198,7 +2198,6 @@ FullClassNameCat(className, classSym->string, 0x1); } else FullClassNameCat(className, inst->_class->__anon1.__anon1.name, 0x1); -MangleClassName(className); DeclareClass(classSym, className); newCall = MkExpCall(QMkExpId("ecere::com::eInstance_New"), MkListOne(QMkExpId(className))); newCall->usage = exp->usage; @@ -3361,7 +3360,6 @@ FullClassNameCat(className, classSym->string, 0x1); } else FullClassNameCat(className, inst->_class->__anon1.__anon1.name, 0x1); -MangleClassName(className); if(classSym) DeclareClass(classSym, className); if(classSym && classSym->__anon1.registered && classSym->__anon1.registered->type == 5 && (classSym->__anon1.registered->templateClass ? classSym->__anon1.registered->templateClass->fixed : classSym->__anon1.registered->fixed)) @@ -3728,7 +3726,7 @@ extern struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__e void __ecereRegisterModule_pass16(struct __ecereNameSpace__ecere__com__Instance * module) { -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; __ecereNameSpace__ecere__com__eSystem_RegisterFunction("DeclareClass", "void DeclareClass(Symbol classSym, const char * className)", DeclareClass, module, 1); __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ProcessExpressionInstPass", "void ProcessExpressionInstPass(Expression exp)", ProcessExpressionInstPass, module, 2); diff --git a/compiler/bootstrap/libec/bootstrap/pass2.c b/compiler/bootstrap/libec/bootstrap/pass2.c index a959450..a95d93e 100644 --- a/compiler/bootstrap/libec/bootstrap/pass2.c +++ b/compiler/bootstrap/libec/bootstrap/pass2.c @@ -30,6 +30,8 @@ typedef unsigned __int64 uint64; #endif #include #include +struct __ecereNameSpace__ecere__com__Instance; + extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size); extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size); @@ -1354,8 +1356,6 @@ extern struct __ecereNameSpace__ecere__sys__OldList * MkListOne(void * item); extern struct Specifier * MkSpecifierName(const char * name); -extern void MangleClassName(char * className); - extern struct Symbol * FindClass(const char * name); extern void DeclareClass(struct Symbol * classSym, const char * className); @@ -1625,7 +1625,6 @@ char className[1024]; strcpy(className, "__ecereClass_"); FullClassNameCat(className, _class->fullName, 0x1); -MangleClassName(className); if(!_class->symbol) _class->symbol = FindClass(_class->fullName); DeclareClass(_class->symbol, className); @@ -2289,7 +2288,6 @@ if(_class->templateClass) _class = _class->templateClass; strcpy(className, "__ecereClass_"); FullClassNameCat(className, _class->fullName, 0x0); -MangleClassName(className); if(!_class->symbol) _class->symbol = FindClass(_class->fullName); DeclareClass(_class->symbol, className); @@ -2442,7 +2440,6 @@ if(exp->__anon1.op.op == '*' && !exp->__anon1.op.exp1 && exp->__anon1.op.exp2 && struct Expression * next = exp->next, * prev = exp->prev; struct Expression * derefExp = exp->__anon1.op.exp2; struct Expression * refExp = exp->__anon1.op.exp2->__anon1.op.exp2; -struct Type * expType = exp->expType, * destType = exp->destType; derefExp->__anon1.op.exp2 = (((void *)0)); FreeExpression(derefExp); @@ -2755,7 +2752,6 @@ argClass = classSym->__anon1.registered; struct Type * type = memberExp ? memberExp->__anon1.member.exp->expType : (((void *)0)); struct __ecereNameSpace__ecere__com__Class * regClass = (type && type->kind == 8 && type->__anon1._class) ? type->__anon1._class->__anon1.registered : (((void *)0)); char className[1024]; -unsigned int useInstance = 0x0; if(!exp->__anon1.call.exp->expType->__anon1.__anon3.methodClass && !_class && type && type->classObjectType) strcpy(className, "class"); @@ -2773,7 +2769,6 @@ if(cl->templateClass && !_class && exp->__anon1.call.exp->expType->__anon1._clas cl = cl->templateClass; strcpy(className, "__ecereClass_"); FullClassNameCat(className, cl->fullName, 0x1); -MangleClassName(className); if(!cl->symbol) cl->symbol = FindClass(cl->fullName); DeclareClass(cl->symbol, className); @@ -2930,7 +2925,6 @@ else if(cl) { strcpy(className, "__ecereClass_"); FullClassNameCat(className, cl->fullName, 0x1); -MangleClassName(className); if(!cl->symbol) cl->symbol = FindClass(cl->fullName); DeclareClass(cl->symbol, className); @@ -3189,7 +3183,6 @@ else { strcpy(className, "__ecereClass_"); FullClassNameCat(className, _class->fullName, 0x1); -MangleClassName(className); if(!_class->symbol) _class->symbol = FindClass(_class->fullName); DeclareClass(_class->symbol, className); @@ -3499,7 +3492,6 @@ char className[1024]; strcpy(className, "__ecereClass_"); FullClassNameCat(className, _class->fullName, 0x1); -MangleClassName(className); if(!_class->symbol) _class->symbol = FindClass(_class->fullName); DeclareClass(_class->symbol, className); @@ -3622,14 +3614,12 @@ exp->__anon1.member.exp->__anon1.__anon1.identifier = MkIdentifier(pointerName); else { struct Expression * bytePtr, * e; -struct Expression * classExp; struct Expression * checkedExp; char structName[1024]; char className[1024]; strcpy(className, "__ecereClass_"); FullClassNameCat(className, member->_class->fullName, 0x1); -MangleClassName(className); if(!member->_class->symbol) member->_class->symbol = FindClass(member->_class->fullName); DeclareClass(member->_class->symbol, className); @@ -3816,7 +3806,6 @@ struct Symbol * classSym = FindClass(string); strcpy(className, "__ecereClass_"); FullClassNameCat(className, string, 0x1); -MangleClassName(className); DeclareClass(classSym, className); (__ecereNameSpace__ecere__com__eSystem_Delete(string), string = 0); FreeList(exp->__anon1._classExp.specifiers, FreeSpecifier); @@ -4309,7 +4298,7 @@ extern struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__e void __ecereRegisterModule_pass2(struct __ecereNameSpace__ecere__com__Instance * module) { -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; __ecereNameSpace__ecere__com__eSystem_RegisterFunction("GetNonBracketsExp", "Expression GetNonBracketsExp(Expression exp)", GetNonBracketsExp, module, 2); __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ProcessMemberAccess", "void ProcessMemberAccess(void)", ProcessMemberAccess, module, 1); diff --git a/compiler/bootstrap/libec/bootstrap/pass3.c b/compiler/bootstrap/libec/bootstrap/pass3.c index aa04903..e4f0f71 100644 --- a/compiler/bootstrap/libec/bootstrap/pass3.c +++ b/compiler/bootstrap/libec/bootstrap/pass3.c @@ -30,6 +30,8 @@ typedef unsigned __int64 uint64; #endif #include #include +struct __ecereNameSpace__ecere__com__Instance; + extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size); extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size); @@ -1929,7 +1931,7 @@ extern struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__e void __ecereRegisterModule_pass3(struct __ecereNameSpace__ecere__com__Instance * module) { -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; __ecereNameSpace__ecere__com__eSystem_RegisterFunction("InstDeclPassTypeName", "void InstDeclPassTypeName(TypeName type, bool param)", InstDeclPassTypeName, module, 2); __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ProcessInstanceDeclarations", "void ProcessInstanceDeclarations(void)", ProcessInstanceDeclarations, module, 1); diff --git a/compiler/bootstrap/libec/bootstrap/shortcuts.c b/compiler/bootstrap/libec/bootstrap/shortcuts.c index abadd6b..bcd0edd 100644 --- a/compiler/bootstrap/libec/bootstrap/shortcuts.c +++ b/compiler/bootstrap/libec/bootstrap/shortcuts.c @@ -30,6 +30,8 @@ typedef unsigned __int64 uint64; #endif #include #include +struct __ecereNameSpace__ecere__com__Instance; + extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size); extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size); @@ -454,8 +456,6 @@ void resetScannerPos(struct CodePosition * pos); extern struct Declarator * CopyDeclarator(struct Declarator * declarator); -extern int printf(const char * , ...); - extern void FreeDeclarator(struct Declarator * decl); struct Declarator * PlugDeclarator(struct Declarator * decl, struct Declarator * baseDecl) @@ -470,7 +470,6 @@ if(base->type != 1) { for(; base->declarator && base->declarator->type != 1; base = base->declarator) { -printf(""); } } if(baseDecl) @@ -746,7 +745,7 @@ extern struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__e void __ecereRegisterModule_shortcuts(struct __ecereNameSpace__ecere__com__Instance * module) { -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetParsingType", "void SetParsingType(bool b)", SetParsingType, module, 1); __ecereNameSpace__ecere__com__eSystem_RegisterFunction("PlugDeclarator", "Declarator PlugDeclarator(Declarator decl, Declarator baseDecl)", PlugDeclarator, module, 2); diff --git a/compiler/bootstrap/libec/bootstrap/type.c b/compiler/bootstrap/libec/bootstrap/type.c index def5cd3..915eef1 100644 --- a/compiler/bootstrap/libec/bootstrap/type.c +++ b/compiler/bootstrap/libec/bootstrap/type.c @@ -30,6 +30,8 @@ typedef unsigned __int64 uint64; #endif #include #include +struct __ecereNameSpace__ecere__com__Instance; + extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size); extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size); @@ -1093,7 +1095,7 @@ size_t fread(void * ptr, size_t size, size_t nmemb, FILE * stream); size_t fwrite(const void * ptr, size_t size, size_t nmemb, FILE * stream); -int vsnprintf(char *, size_t, const char *, ...); +int vsnprintf(char *, size_t, const char *, va_list args); int snprintf(char * str, size_t, const char * format, ...); @@ -5758,7 +5760,7 @@ return (yyresult); void __ecereRegisterModule_type(struct __ecereNameSpace__ecere__com__Instance * module) { -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; } diff --git a/compiler/ecp/ecp.ec b/compiler/ecp/ecp.ec index 5bf2bbc..b05c5d9 100644 --- a/compiler/ecp/ecp.ec +++ b/compiler/ecp/ecp.ec @@ -97,7 +97,7 @@ void FreeDataMemberDefine(DataMemberDefine dataMember) void FreeDataDefine(DataDefine data) { delete data.name; - delete data.type; + delete data.dataType; } void FreeDefinition(Definition definition) @@ -129,7 +129,7 @@ static bool globalInstance = false; static Context globalContext { }; static OldList defines, imports, precompDefines; static Module privateModule; -static OldList _excludedSymbols { offset = (uint)&((Symbol)0).left }; +static OldList _excludedSymbols { offset = (uint)(uintptr)&((Symbol)0).left }; static NameSpace globalData { classes.CompareKey = (void *)BinaryTree::CompareString; @@ -431,7 +431,6 @@ static void AddDefinitions(ClassDefine classDefine, DataMemberDefine parentMembe { DataMember member; Property prop; - Method method; if((prop = eClass_FindProperty(regClass, def.id.string, privateModule))) { PropertyDefine propDefine; @@ -725,7 +724,7 @@ static void ProcessClass(ClassType classType, OldList definitions, Symbol symbol } if(param.type == identifier) { - eClass_AddTemplateParameter(regClass, param.identifier.string, param.type, (void *)param.memberType, defaultArg); + eClass_AddTemplateParameter(regClass, param.identifier.string, param.type, (void *)(uintptr)param.memberType, defaultArg); } else { @@ -1283,7 +1282,6 @@ static void OutputSymbols(const char * fileName) } else if(definition.type == defineDefinition) { - DefinedExpression defExp = eSystem_FindDefine(privateModule, definition.name); Define defineDefine = (Define) definition; f.Printf(" %s\n", definition.name); f.Printf(" [Value]\n"); diff --git a/compiler/ecs/ecs.ec b/compiler/ecs/ecs.ec index bdfbad3..920aa8d 100644 --- a/compiler/ecs/ecs.ec +++ b/compiler/ecs/ecs.ec @@ -22,7 +22,7 @@ static File dcomSymbols; static OldList _defines { }; static OldList _imports { }; -static OldList _excludedSymbols { offset = (uint)&((Symbol)0).left }; +static OldList _excludedSymbols { offset = (uint)(uintptr)&((Symbol)0).left }; static NameSpace globalData { classes.CompareKey = (void *)BinaryTree::CompareString; @@ -253,7 +253,7 @@ static void WriteMain(const char * fileName) { ModuleImport module; ModuleInfo defModule; - bool nonInst = false, anyMethod = false, anyProp = false, anyFunction = false; + bool /*nonInst = false, */anyMethod = false, anyProp = false, anyFunction = false; ImportedModule importedModule; GetLastDirectory(fileName, mainModuleName); @@ -322,12 +322,12 @@ static void WriteMain(const char * fileName) Class regClass = eSystem_FindClass(privateModule, _class.name); FullClassNameCat(className, _class.name, true); - MangleClassName(className); + //MangleClassName(className); if(_class.itself) f.Printf("Class __ecereClass_%s;\n", className); - else - nonInst = true; + /*else + nonInst = true;*/ //if(!_class.isRemote) { //if(strcmp(_class.name, "SerialBuffer")) @@ -374,7 +374,7 @@ static void WriteMain(const char * fileName) propName[0] = 0; FullClassNameCat(propName, prop.name, true); // strcpy(propName, prop.name); - MangleClassName(propName); + //MangleClassName(propName); if((!strcmp(_class.name, "float") || !strcmp(_class.name, "double") || module.name) && module.importType != staticImport) { @@ -559,7 +559,7 @@ static void WriteMain(const char * fileName) char classID[1024]; char className[1024] = ""; FullClassNameCat(className, _class.name, true); - MangleClassName(className); + //MangleClassName(className); if(_class.itself) sprintf(classID, "__ecereClass_%s", className); @@ -594,7 +594,7 @@ static void WriteMain(const char * fileName) propName[0] = 0; FullClassNameCat(propName, prop.name, true); // strcpy(propName, prop.name); - MangleClassName(propName); + //MangleClassName(propName); f.Printf(" __ecereProp_%s_%s = _property = eClass_FindProperty(%s, \"%s\", module);\n", className, propName, classID, prop.name); @@ -902,7 +902,7 @@ static void BindDCOMClient() } strcpy(className, "__ecereClass_"); FullClassNameCat(className, classSym.string, true); - MangleClassName(className); + //MangleClassName(className); DeclareClass(classSym, className); PrintType(method.dataType.returnType, type, true, true); @@ -944,7 +944,7 @@ static void BindDCOMClient() strcpy(className, "__ecereClass_"); FullClassNameCat(className, classSym.string, true); - MangleClassName(className); + //MangleClassName(className); DeclareClass(classSym, className); PrintType(param, type, true, true); @@ -1096,7 +1096,7 @@ static void BindDCOMClient() strcpy(className, "__ecereClass_"); FullClassNameCat(className, classSym.string, true); - MangleClassName(className); + //MangleClassName(className); DeclareClass(classSym, className); PrintType(method.dataType.returnType, type, true, true); @@ -1132,7 +1132,7 @@ static void BindDCOMClient() strcpy(className, "__ecereClass_"); FullClassNameCat(className, classSym.string, true); - MangleClassName(className); + //MangleClassName(className); DeclareClass(classSym, className); if(param.kind == classType && !strcmp(param._class.string, "String")) @@ -1290,7 +1290,7 @@ static void BindDCOMServer() } strcpy(className, "__ecereClass_"); FullClassNameCat(className, classSym.string, true); - MangleClassName(className); + //MangleClassName(className); DeclareClass(classSym, className); PrintType(method.dataType.returnType, type, true, true); @@ -1332,7 +1332,7 @@ static void BindDCOMServer() strcpy(className, "__ecereClass_"); FullClassNameCat(className, classSym.string, true); - MangleClassName(className); + //MangleClassName(className); DeclareClass(classSym, className); PrintType(param, type, true, true); @@ -1474,7 +1474,7 @@ static void BindDCOMServer() strcpy(className, "__ecereClass_"); FullClassNameCat(className, classSym.string, true); - MangleClassName(className); + //MangleClassName(className); DeclareClass(classSym, className); PrintType(method.dataType.returnType, type, true, true); @@ -1513,7 +1513,7 @@ static void BindDCOMServer() } strcpy(className, "__ecereClass_"); FullClassNameCat(className, classSym.string, true); - MangleClassName(className); + //MangleClassName(className); DeclareClass(classSym, className); if(param.kind == classType && !strcmp(param._class.string, "String")) @@ -1757,7 +1757,7 @@ class SymbolgenApp : Application //if(!strcmp(ext, "c")) { - const String symbolsDir = GetSymbolsDir(); + //const String symbolsDir = GetSymbolsDir(); // Only generating .pot files when building from release.* directory for now //bool outputPot = symbolsDir && SearchString(symbolsDir, 0, "release.", false, false); Map > intlStrings { }; diff --git a/compiler/libec/precompiled/expression.c b/compiler/libec/precompiled/expression.c index 8142797..6c3a1cc 100644 --- a/compiler/libec/precompiled/expression.c +++ b/compiler/libec/precompiled/expression.c @@ -1065,7 +1065,7 @@ size_t fread(void * ptr, size_t size, size_t nmemb, FILE * stream); size_t fwrite(const void * ptr, size_t size, size_t nmemb, FILE * stream); -int vsnprintf(char *, size_t, const char *, ...); +int vsnprintf(char *, size_t, const char *, va_list args); int snprintf(char * str, size_t, const char * format, ...); @@ -4981,7 +4981,7 @@ return (yyresult); void __ecereRegisterModule_expression(struct __ecereNameSpace__ecere__com__Instance * module) { -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; } diff --git a/compiler/libec/precompiled/grammar.c b/compiler/libec/precompiled/grammar.c index 5bb0111..89ff013 100644 --- a/compiler/libec/precompiled/grammar.c +++ b/compiler/libec/precompiled/grammar.c @@ -1209,7 +1209,7 @@ size_t fread(void * ptr, size_t size, size_t nmemb, FILE * stream); size_t fwrite(const void * ptr, size_t size, size_t nmemb, FILE * stream); -int vsnprintf(char *, size_t, const char *, ...); +int vsnprintf(char *, size_t, const char *, va_list args); int snprintf(char * str, size_t, const char * format, ...); @@ -5066,7 +5066,7 @@ yyval.context = PushContext(); break; case 236: { -yyvsp[(1) - (2)].context; +(void)yyvsp[(1) - (2)].context; yyval.symbol = DeclClassAddNameSpace(globalContext->nextID++, yyvsp[(2) - (2)].id->string); FreeIdentifier(yyvsp[(2) - (2)].id); yyval.symbol->nameLoc = (yylsp[(2) - (2)]); @@ -5076,7 +5076,7 @@ memberAccessStack[++defaultMemberAccess] = 2; break; case 237: { -yyvsp[(1) - (2)].context; +(void)yyvsp[(1) - (2)].context; yyval.symbol = DeclClass(globalContext->nextID++, yyvsp[(2) - (2)].specifier->__anon1.__anon1.name); yyval.symbol->nameLoc = (yylsp[(2) - (2)]); FreeSpecifier(yyvsp[(2) - (2)].specifier); @@ -5087,7 +5087,7 @@ memberAccessStack[defaultMemberAccess] = 2; break; case 238: { -yyvsp[(2) - (3)].context; +(void)yyvsp[(2) - (3)].context; yyval.symbol = DeclClassAddNameSpace(globalContext->nextID++, yyvsp[(3) - (3)].id->string); FreeIdentifier(yyvsp[(1) - (3)].id); FreeIdentifier(yyvsp[(3) - (3)].id); @@ -5099,7 +5099,7 @@ memberAccessStack[++defaultMemberAccess] = 2; break; case 239: { -yyvsp[(2) - (3)].context; +(void)yyvsp[(2) - (3)].context; yyval.symbol = DeclClass(globalContext->nextID++, yyvsp[(3) - (3)].specifier->__anon1.__anon1.name); FreeIdentifier(yyvsp[(1) - (3)].id); yyval.symbol->nameLoc = (yylsp[(3) - (3)]); @@ -5111,7 +5111,7 @@ memberAccessStack[++defaultMemberAccess] = 2; break; case 240: { -yyvsp[(1) - (5)].context; +(void)yyvsp[(1) - (5)].context; yyval.symbol = DeclClassAddNameSpace(globalContext->nextID++, yyvsp[(2) - (5)].id->string); yyval.symbol->templateParams = yyvsp[(4) - (5)].list; FreeIdentifier(yyvsp[(2) - (5)].id); @@ -5122,7 +5122,7 @@ memberAccessStack[++defaultMemberAccess] = 2; break; case 241: { -yyvsp[(1) - (5)].context; +(void)yyvsp[(1) - (5)].context; yyval.symbol = DeclClass(globalContext->nextID++, yyvsp[(2) - (5)].specifier->__anon1.__anon1.name); yyval.symbol->templateParams = yyvsp[(4) - (5)].list; yyval.symbol->nameLoc = (yylsp[(2) - (5)]); @@ -5134,7 +5134,7 @@ memberAccessStack[defaultMemberAccess] = 2; break; case 242: { -yyvsp[(2) - (6)].context; +(void)yyvsp[(2) - (6)].context; yyval.symbol = DeclClassAddNameSpace(globalContext->nextID++, yyvsp[(3) - (6)].id->string); yyval.symbol->templateParams = yyvsp[(5) - (6)].list; FreeIdentifier(yyvsp[(1) - (6)].id); @@ -5147,7 +5147,7 @@ memberAccessStack[++defaultMemberAccess] = 2; break; case 243: { -yyvsp[(2) - (6)].context; +(void)yyvsp[(2) - (6)].context; yyval.symbol = DeclClass(globalContext->nextID++, yyvsp[(3) - (6)].specifier->__anon1.__anon1.name); yyval.symbol->templateParams = yyvsp[(5) - (6)].list; FreeIdentifier(yyvsp[(1) - (6)].id); @@ -5205,7 +5205,7 @@ PopContext(curContext); break; case 248: { -yyvsp[(1) - (3)].context; +(void)yyvsp[(1) - (3)].context; yyval._class = MkClass(DeclClassAddNameSpace(0, yyvsp[(2) - (3)].id->string), (((void *)0)), (((void *)0))); FreeIdentifier(yyvsp[(2) - (3)].id); if(defaultMemberAccess > -1) @@ -5216,7 +5216,7 @@ PopContext(curContext); break; case 249: { -yyvsp[(1) - (3)].context; +(void)yyvsp[(1) - (3)].context; yyval._class = MkClass(DeclClass(0, yyvsp[(2) - (3)].specifier->__anon1.__anon1.name), (((void *)0)), (((void *)0))); FreeSpecifier(yyvsp[(2) - (3)].specifier); if(defaultMemberAccess > -1) @@ -12730,7 +12730,7 @@ return (yyresult); void __ecereRegisterModule_grammar(struct __ecereNameSpace__ecere__com__Instance * module) { -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; } diff --git a/compiler/libec/precompiled/type.c b/compiler/libec/precompiled/type.c index fbf0e71..5cb43ba 100644 --- a/compiler/libec/precompiled/type.c +++ b/compiler/libec/precompiled/type.c @@ -1093,7 +1093,7 @@ size_t fread(void * ptr, size_t size, size_t nmemb, FILE * stream); size_t fwrite(const void * ptr, size_t size, size_t nmemb, FILE * stream); -int vsnprintf(char *, size_t, const char *, ...); +int vsnprintf(char *, size_t, const char *, va_list args); int snprintf(char * str, size_t, const char * format, ...); @@ -5758,7 +5758,7 @@ return (yyresult); void __ecereRegisterModule_type(struct __ecereNameSpace__ecere__com__Instance * module) { -struct __ecereNameSpace__ecere__com__Class * class; +struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class; } diff --git a/compiler/libec/src/ast.ec b/compiler/libec/src/ast.ec index 8912d64..4bc5e8e 100644 --- a/compiler/libec/src/ast.ec +++ b/compiler/libec/src/ast.ec @@ -1312,7 +1312,6 @@ External MkExternalImport(char * name, ImportType importType, AccessMode importA External MkExternalDeclaration(Declaration declaration) { External external { type = declarationExternal, declaration = declaration, symbol = declaration ? declaration.symbol : null }; - InitDeclarator d = (declaration && declaration.declarators) ? declaration.declarators->last : null; if(declaration && declaration.type == initDeclaration && declaration.specifiers) { Specifier spec; @@ -2106,7 +2105,7 @@ static char * GetFullClassName(Class c, char * name) public Symbol FindClass(const char * name) { -#ifdef _DEBUG +#ifdef _TIMINGS Time startTime = GetTime(); #endif Symbol cl = null; @@ -2281,7 +2280,6 @@ static Type ProcessTypeSpecs(OldList specs, bool assumeEllipsis, bool keepTypeNa ExtDecl extDecl = spec.extDecl; if(extDecl.type == extDeclString) { - String s = spec.extDecl.s; if(!strcmp(spec.extDecl.s, "__declspec(dllexport)") || !strcmp(spec.extDecl.s, "dllexport")) specType.dllExport = true; else if(!strcmp(spec.extDecl.s, "__declspec(stdcall)") || !strcmp(spec.extDecl.s, "stdcall")) @@ -2410,7 +2408,6 @@ static Type ProcessTypeSpecs(OldList specs, bool assumeEllipsis, bool keepTypeNa if(spec.list) { Enumerator e; - int nextValue = 0; for(e = spec.list->first; e; e = e.next) { NamedLink i { name = CopyString(e.id.string) }; @@ -2907,12 +2904,11 @@ Expression GetTemplateArgExpByName(const char * paramName, Class curClass, Templ { char idString[32]; char className[1024]; - Expression classExp; sprintf(idString, "%d", id); strcpy(className, "__ecereClass_"); FullClassNameCat(className, _class.fullName, true); - MangleClassName(className); + //MangleClassName(className); DeclareClass(FindClass(_class.fullName), className); argExp = MkExpIndex((/*pointer ? MkExpPointer : */MkExpMember) @@ -2957,6 +2953,7 @@ public void OutputIntlStrings() filePrefix = "./"; //(GetRuntimePlatform() == win32) ? ".\\" : "./"; // GetSystemPathBuffer(srcFileFixed, srcFile); GetSlashPathBuffer(srcFileFixed, srcFile); + for(s : intlStrings) { // TOFIX: (#654) ContextStringPair * pair = &s; diff --git a/compiler/libec/src/firstPass.ec b/compiler/libec/src/firstPass.ec index 4f77377..d337bfc 100644 --- a/compiler/libec/src/firstPass.ec +++ b/compiler/libec/src/firstPass.ec @@ -265,10 +265,7 @@ static void AddDefinitions(Class regClass, DataMember member, OldList definition if(propertyDef.isWatchable) eProperty_Watchable(prop); } - else - // TODO: What happens here? - printf(""); - + // TODO: else: What happens here? // Testing this... wasn't found anywhere, seems to be useful // (Determining if it's a conversion property in ProcessClassFunction) @@ -280,13 +277,13 @@ static void AddDefinitions(Class regClass, DataMember member, OldList definition else if(def.type == classPropertyClassDef && def.propertyDef) { PropertyDef propertyDef = def.propertyDef; - ClassProperty prop; + //ClassProperty prop; // Register the property in the list // MOVED THIS UP HERE BEFORE NEXT BLOCK BECAUSE WE NULL OUT SPECIFIERS/DECLARATORS... OK? char * dataTypeString = StringFromSpecDecl(propertyDef.specifiers, propertyDef.declarator); - prop = eClass_AddClassProperty(regClass, propertyDef.id.string, dataTypeString, + /*prop = */eClass_AddClassProperty(regClass, propertyDef.id.string, dataTypeString, inCompiler ? propertyDef.setStmt : null, inCompiler ? propertyDef.getStmt : null); delete dataTypeString; @@ -556,7 +553,7 @@ static void ProcessClass(ClassType classType, OldList definitions, Symbol symbol } if(param.type == identifier) { - eClass_AddTemplateParameter(regClass, param.identifier.string, identifier, (void *)param.memberType, defaultArg); + eClass_AddTemplateParameter(regClass, param.identifier.string, identifier, (void *)(uintptr)param.memberType, defaultArg); } else { diff --git a/compiler/libec/src/freeAst.ec b/compiler/libec/src/freeAst.ec index f23b946..6457c97 100644 --- a/compiler/libec/src/freeAst.ec +++ b/compiler/libec/src/freeAst.ec @@ -801,7 +801,7 @@ void FreeStatement(Statement stmt) if(stmt._watch.object) FreeExpression(stmt._watch.object); if(stmt._watch.watches) - FreeList(stmt._watch.watches, (stmt.type == watchStmt) ? FreePropertyWatch : FreeIdentifier); + FreeList(stmt._watch.watches, (stmt.type == watchStmt) ? (void *)FreePropertyWatch : (void *)FreeIdentifier); break; } } diff --git a/compiler/libec/src/grammar.ec b/compiler/libec/src/grammar.ec index 85c0c7d..5a8ae87 100644 --- a/compiler/libec/src/grammar.ec +++ b/compiler/libec/src/grammar.ec @@ -14968,7 +14968,7 @@ yyreduce: /* Line 1464 of yacc.c */ #line 1339 "grammar.y" - { (yyvsp[(1) - (2)].context); (yyval.symbol) = DeclClassAddNameSpace(globalContext.nextID++, (yyvsp[(2) - (2)].id).string); FreeIdentifier((yyvsp[(2) - (2)].id)); (yyval.symbol).nameLoc = (yylsp[(2) - (2)]); memberAccessStack[++defaultMemberAccess] = privateAccess; ;} + { (void)(yyvsp[(1) - (2)].context); (yyval.symbol) = DeclClassAddNameSpace(globalContext.nextID++, (yyvsp[(2) - (2)].id).string); FreeIdentifier((yyvsp[(2) - (2)].id)); (yyval.symbol).nameLoc = (yylsp[(2) - (2)]); memberAccessStack[++defaultMemberAccess] = privateAccess; ;} break; case 237: @@ -14976,7 +14976,7 @@ yyreduce: /* Line 1464 of yacc.c */ #line 1341 "grammar.y" { - (yyvsp[(1) - (2)].context); (yyval.symbol) = DeclClass(globalContext.nextID++, (yyvsp[(2) - (2)].specifier).name); + (void)(yyvsp[(1) - (2)].context); (yyval.symbol) = DeclClass(globalContext.nextID++, (yyvsp[(2) - (2)].specifier).name); (yyval.symbol).nameLoc = (yylsp[(2) - (2)]); FreeSpecifier((yyvsp[(2) - (2)].specifier)); ++defaultMemberAccess; @@ -14988,21 +14988,21 @@ yyreduce: /* Line 1464 of yacc.c */ #line 1348 "grammar.y" - { (yyvsp[(2) - (3)].context); (yyval.symbol) = DeclClassAddNameSpace(globalContext.nextID++, (yyvsp[(3) - (3)].id).string); FreeIdentifier((yyvsp[(1) - (3)].id)); FreeIdentifier((yyvsp[(3) - (3)].id)); (yyval.symbol).nameLoc = (yylsp[(3) - (3)]); (yyval.symbol).isRemote = true; memberAccessStack[++defaultMemberAccess] = privateAccess; ;} + { (void)(yyvsp[(2) - (3)].context); (yyval.symbol) = DeclClassAddNameSpace(globalContext.nextID++, (yyvsp[(3) - (3)].id).string); FreeIdentifier((yyvsp[(1) - (3)].id)); FreeIdentifier((yyvsp[(3) - (3)].id)); (yyval.symbol).nameLoc = (yylsp[(3) - (3)]); (yyval.symbol).isRemote = true; memberAccessStack[++defaultMemberAccess] = privateAccess; ;} break; case 239: /* Line 1464 of yacc.c */ #line 1349 "grammar.y" - { (yyvsp[(2) - (3)].context); (yyval.symbol) = DeclClass(globalContext.nextID++, (yyvsp[(3) - (3)].specifier).name); FreeIdentifier((yyvsp[(1) - (3)].id)); (yyval.symbol).nameLoc = (yylsp[(3) - (3)]); (yyval.symbol).isRemote = true; FreeSpecifier((yyvsp[(3) - (3)].specifier)); memberAccessStack[++defaultMemberAccess] = privateAccess; ;} + { (void)(yyvsp[(2) - (3)].context); (yyval.symbol) = DeclClass(globalContext.nextID++, (yyvsp[(3) - (3)].specifier).name); FreeIdentifier((yyvsp[(1) - (3)].id)); (yyval.symbol).nameLoc = (yylsp[(3) - (3)]); (yyval.symbol).isRemote = true; FreeSpecifier((yyvsp[(3) - (3)].specifier)); memberAccessStack[++defaultMemberAccess] = privateAccess; ;} break; case 240: /* Line 1464 of yacc.c */ #line 1351 "grammar.y" - { (yyvsp[(1) - (5)].context); (yyval.symbol) = DeclClassAddNameSpace(globalContext.nextID++, (yyvsp[(2) - (5)].id).string); (yyval.symbol).templateParams = (yyvsp[(4) - (5)].list); FreeIdentifier((yyvsp[(2) - (5)].id)); (yyval.symbol).nameLoc = (yylsp[(2) - (5)]); memberAccessStack[++defaultMemberAccess] = privateAccess; ;} + { (void)(yyvsp[(1) - (5)].context); (yyval.symbol) = DeclClassAddNameSpace(globalContext.nextID++, (yyvsp[(2) - (5)].id).string); (yyval.symbol).templateParams = (yyvsp[(4) - (5)].list); FreeIdentifier((yyvsp[(2) - (5)].id)); (yyval.symbol).nameLoc = (yylsp[(2) - (5)]); memberAccessStack[++defaultMemberAccess] = privateAccess; ;} break; case 241: @@ -15010,7 +15010,7 @@ yyreduce: /* Line 1464 of yacc.c */ #line 1353 "grammar.y" { - (yyvsp[(1) - (5)].context); (yyval.symbol) = DeclClass(globalContext.nextID++, (yyvsp[(2) - (5)].specifier).name); + (void)(yyvsp[(1) - (5)].context); (yyval.symbol) = DeclClass(globalContext.nextID++, (yyvsp[(2) - (5)].specifier).name); (yyval.symbol).templateParams = (yyvsp[(4) - (5)].list); (yyval.symbol).nameLoc = (yylsp[(2) - (5)]); FreeSpecifier((yyvsp[(2) - (5)].specifier)); @@ -15023,14 +15023,14 @@ yyreduce: /* Line 1464 of yacc.c */ #line 1361 "grammar.y" - { (yyvsp[(2) - (6)].context); (yyval.symbol) = DeclClassAddNameSpace(globalContext.nextID++, (yyvsp[(3) - (6)].id).string); (yyval.symbol).templateParams = (yyvsp[(5) - (6)].list); FreeIdentifier((yyvsp[(1) - (6)].id)); FreeIdentifier((yyvsp[(3) - (6)].id)); (yyval.symbol).nameLoc = (yylsp[(3) - (6)]); (yyval.symbol).isRemote = true; memberAccessStack[++defaultMemberAccess] = privateAccess; ;} + { (void)(yyvsp[(2) - (6)].context); (yyval.symbol) = DeclClassAddNameSpace(globalContext.nextID++, (yyvsp[(3) - (6)].id).string); (yyval.symbol).templateParams = (yyvsp[(5) - (6)].list); FreeIdentifier((yyvsp[(1) - (6)].id)); FreeIdentifier((yyvsp[(3) - (6)].id)); (yyval.symbol).nameLoc = (yylsp[(3) - (6)]); (yyval.symbol).isRemote = true; memberAccessStack[++defaultMemberAccess] = privateAccess; ;} break; case 243: /* Line 1464 of yacc.c */ #line 1362 "grammar.y" - { (yyvsp[(2) - (6)].context); (yyval.symbol) = DeclClass(globalContext.nextID++, (yyvsp[(3) - (6)].specifier).name); (yyval.symbol).templateParams = (yyvsp[(5) - (6)].list); FreeIdentifier((yyvsp[(1) - (6)].id)); (yyval.symbol).nameLoc = (yylsp[(3) - (6)]); (yyval.symbol).isRemote = true; FreeSpecifier((yyvsp[(3) - (6)].specifier)); memberAccessStack[++defaultMemberAccess] = privateAccess; ;} + { (void)(yyvsp[(2) - (6)].context); (yyval.symbol) = DeclClass(globalContext.nextID++, (yyvsp[(3) - (6)].specifier).name); (yyval.symbol).templateParams = (yyvsp[(5) - (6)].list); FreeIdentifier((yyvsp[(1) - (6)].id)); (yyval.symbol).nameLoc = (yylsp[(3) - (6)]); (yyval.symbol).isRemote = true; FreeSpecifier((yyvsp[(3) - (6)].specifier)); memberAccessStack[++defaultMemberAccess] = privateAccess; ;} break; case 244: @@ -15081,7 +15081,7 @@ yyreduce: /* Line 1464 of yacc.c */ #line 1394 "grammar.y" { - (yyvsp[(1) - (3)].context); (yyval._class) = MkClass(DeclClassAddNameSpace(0, (yyvsp[(2) - (3)].id).string), null, null); FreeIdentifier((yyvsp[(2) - (3)].id)); + (void)(yyvsp[(1) - (3)].context); (yyval._class) = MkClass(DeclClassAddNameSpace(0, (yyvsp[(2) - (3)].id).string), null, null); FreeIdentifier((yyvsp[(2) - (3)].id)); POP_DEFAULT_ACCESS PopContext(curContext); ;} @@ -15092,7 +15092,7 @@ yyreduce: /* Line 1464 of yacc.c */ #line 1400 "grammar.y" { - (yyvsp[(1) - (3)].context); (yyval._class) = MkClass(DeclClass(0, (yyvsp[(2) - (3)].specifier).name), null, null); FreeSpecifier((yyvsp[(2) - (3)].specifier)); + (void)(yyvsp[(1) - (3)].context); (yyval._class) = MkClass(DeclClass(0, (yyvsp[(2) - (3)].specifier).name), null, null); FreeSpecifier((yyvsp[(2) - (3)].specifier)); POP_DEFAULT_ACCESS PopContext(curContext); ;} diff --git a/compiler/libec/src/grammar.y b/compiler/libec/src/grammar.y index d06c414..442b879 100644 --- a/compiler/libec/src/grammar.y +++ b/compiler/libec/src/grammar.y @@ -1336,30 +1336,30 @@ class_entry: }; class_decl: - class_entry identifier { $1; $$ = DeclClassAddNameSpace(globalContext.nextID++, $2.string); FreeIdentifier($2); $$.nameLoc = @2; memberAccessStack[++defaultMemberAccess] = privateAccess; } + class_entry identifier { (void)$1; $$ = DeclClassAddNameSpace(globalContext.nextID++, $2.string); FreeIdentifier($2); $$.nameLoc = @2; memberAccessStack[++defaultMemberAccess] = privateAccess; } | class_entry base_strict_type { - $1; $$ = DeclClass(globalContext.nextID++, $2.name); + (void)$1; $$ = DeclClass(globalContext.nextID++, $2.name); $$.nameLoc = @2; FreeSpecifier($2); ++defaultMemberAccess; memberAccessStack[defaultMemberAccess] = privateAccess; } - | identifier class_entry identifier { $2; $$ = DeclClassAddNameSpace(globalContext.nextID++, $3.string); FreeIdentifier($1); FreeIdentifier($3); $$.nameLoc = @3; $$.isRemote = true; memberAccessStack[++defaultMemberAccess] = privateAccess; } - | identifier class_entry base_strict_type { $2; $$ = DeclClass(globalContext.nextID++, $3.name); FreeIdentifier($1); $$.nameLoc = @3; $$.isRemote = true; FreeSpecifier($3); memberAccessStack[++defaultMemberAccess] = privateAccess; } + | identifier class_entry identifier { (void)$2; $$ = DeclClassAddNameSpace(globalContext.nextID++, $3.string); FreeIdentifier($1); FreeIdentifier($3); $$.nameLoc = @3; $$.isRemote = true; memberAccessStack[++defaultMemberAccess] = privateAccess; } + | identifier class_entry base_strict_type { (void)$2; $$ = DeclClass(globalContext.nextID++, $3.name); FreeIdentifier($1); $$.nameLoc = @3; $$.isRemote = true; FreeSpecifier($3); memberAccessStack[++defaultMemberAccess] = privateAccess; } - | class_entry identifier '<' template_parameters_list '>' { $1; $$ = DeclClassAddNameSpace(globalContext.nextID++, $2.string); $$.templateParams = $4; FreeIdentifier($2); $$.nameLoc = @2; memberAccessStack[++defaultMemberAccess] = privateAccess; } + | class_entry identifier '<' template_parameters_list '>' { (void)$1; $$ = DeclClassAddNameSpace(globalContext.nextID++, $2.string); $$.templateParams = $4; FreeIdentifier($2); $$.nameLoc = @2; memberAccessStack[++defaultMemberAccess] = privateAccess; } | class_entry base_strict_type '<' template_parameters_list '>' { - $1; $$ = DeclClass(globalContext.nextID++, $2.name); + (void)$1; $$ = DeclClass(globalContext.nextID++, $2.name); $$.templateParams = $4; $$.nameLoc = @2; FreeSpecifier($2); ++defaultMemberAccess; memberAccessStack[defaultMemberAccess] = privateAccess; } - | identifier class_entry identifier '<' template_parameters_list '>' { $2; $$ = DeclClassAddNameSpace(globalContext.nextID++, $3.string); $$.templateParams = $5; FreeIdentifier($1); FreeIdentifier($3); $$.nameLoc = @3; $$.isRemote = true; memberAccessStack[++defaultMemberAccess] = privateAccess; } - | identifier class_entry base_strict_type '<' template_parameters_list '>' { $2; $$ = DeclClass(globalContext.nextID++, $3.name); $$.templateParams = $5; FreeIdentifier($1); $$.nameLoc = @3; $$.isRemote = true; FreeSpecifier($3); memberAccessStack[++defaultMemberAccess] = privateAccess; } + | identifier class_entry identifier '<' template_parameters_list '>' { (void)$2; $$ = DeclClassAddNameSpace(globalContext.nextID++, $3.string); $$.templateParams = $5; FreeIdentifier($1); FreeIdentifier($3); $$.nameLoc = @3; $$.isRemote = true; memberAccessStack[++defaultMemberAccess] = privateAccess; } + | identifier class_entry base_strict_type '<' template_parameters_list '>' { (void)$2; $$ = DeclClass(globalContext.nextID++, $3.name); $$.templateParams = $5; FreeIdentifier($1); $$.nameLoc = @3; $$.isRemote = true; FreeSpecifier($3); memberAccessStack[++defaultMemberAccess] = privateAccess; } ; class: @@ -1392,13 +1392,13 @@ class: | class_entry identifier ';' { - $1; $$ = MkClass(DeclClassAddNameSpace(0, $2.string), null, null); FreeIdentifier($2); + (void)$1; $$ = MkClass(DeclClassAddNameSpace(0, $2.string), null, null); FreeIdentifier($2); POP_DEFAULT_ACCESS PopContext(curContext); } | class_entry type ';' { - $1; $$ = MkClass(DeclClass(0, $2.name), null, null); FreeSpecifier($2); + (void)$1; $$ = MkClass(DeclClass(0, $2.name), null, null); FreeSpecifier($2); POP_DEFAULT_ACCESS PopContext(curContext); } diff --git a/compiler/libec/src/lexer.ec b/compiler/libec/src/lexer.ec index eb8d832..4d3b585 100644 --- a/compiler/libec/src/lexer.ec +++ b/compiler/libec/src/lexer.ec @@ -1181,7 +1181,8 @@ static char *yy_last_accepting_cpos; char *yytext; #line 1 "lexer.l" #define INITIAL 0 -#line 11 "lexer.l" +#define YY_NO_UNPUT 1 +#line 13 "lexer.l" import "ecdefs" #define YYLTYPE Location #define YY_NEVER_INTERACTIVE 1 // Avoid calling isatty on eC File object @@ -1230,7 +1231,7 @@ int include_stack_ptr = 0; #define uint _uint default: -#line 1234 "lexer.ec" +#line 1235 "lexer.ec" /* Macros after this point can all be overridden by user definitions in * section 1. @@ -1381,7 +1382,7 @@ YY_DECL register char *yy_cp, *yy_bp; register int yy_act; -#line 61 "lexer.l" +#line 63 "lexer.l" @@ -1390,7 +1391,7 @@ YY_DECL expression_yylloc.start = expression_yylloc.end; -#line 1394 "lexer.ec" +#line 1395 "lexer.ec" if ( yy_init ) { @@ -1475,107 +1476,107 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 69 "lexer.l" +#line 71 "lexer.l" { preprocessor(); } YY_BREAK case 2: YY_RULE_SETUP -#line 70 "lexer.l" +#line 72 "lexer.l" { comment(); } YY_BREAK case 3: YY_RULE_SETUP -#line 71 "lexer.l" +#line 73 "lexer.l" { commentCPP(); } YY_BREAK case 4: YY_RULE_SETUP -#line 73 "lexer.l" +#line 75 "lexer.l" { return(AUTO); } YY_BREAK case 5: YY_RULE_SETUP -#line 74 "lexer.l" +#line 76 "lexer.l" { return(BREAK); } YY_BREAK case 6: YY_RULE_SETUP -#line 75 "lexer.l" +#line 77 "lexer.l" { return(CASE); } YY_BREAK case 7: YY_RULE_SETUP -#line 76 "lexer.l" +#line 78 "lexer.l" { return(CHAR); } YY_BREAK case 8: YY_RULE_SETUP -#line 77 "lexer.l" +#line 79 "lexer.l" { return(CONST); } YY_BREAK case 9: YY_RULE_SETUP -#line 78 "lexer.l" +#line 80 "lexer.l" { return(CONTINUE); } YY_BREAK case 10: YY_RULE_SETUP -#line 79 "lexer.l" +#line 81 "lexer.l" { return(DEFAULT); } YY_BREAK case 11: YY_RULE_SETUP -#line 80 "lexer.l" +#line 82 "lexer.l" { return(DO); } YY_BREAK case 12: YY_RULE_SETUP -#line 81 "lexer.l" +#line 83 "lexer.l" { return(DOUBLE); } YY_BREAK case 13: YY_RULE_SETUP -#line 82 "lexer.l" +#line 84 "lexer.l" { return(ELSE); } YY_BREAK case 14: YY_RULE_SETUP -#line 83 "lexer.l" +#line 85 "lexer.l" { return(ENUM); } YY_BREAK case 15: YY_RULE_SETUP -#line 84 "lexer.l" +#line 86 "lexer.l" { return(EXTERN); } YY_BREAK case 16: YY_RULE_SETUP -#line 85 "lexer.l" +#line 87 "lexer.l" { return(FLOAT); } YY_BREAK case 17: YY_RULE_SETUP -#line 86 "lexer.l" +#line 88 "lexer.l" { return(FOR); } YY_BREAK case 18: YY_RULE_SETUP -#line 87 "lexer.l" +#line 89 "lexer.l" { return(GOTO); } YY_BREAK case 19: YY_RULE_SETUP -#line 88 "lexer.l" +#line 90 "lexer.l" { return(IF); } YY_BREAK case 20: YY_RULE_SETUP -#line 89 "lexer.l" +#line 91 "lexer.l" { return(INT); } YY_BREAK case 21: YY_RULE_SETUP -#line 90 "lexer.l" +#line 92 "lexer.l" { return(UINT); } YY_BREAK /* "uint16" { return(UINT16); } */ @@ -1583,222 +1584,222 @@ YY_RULE_SETUP /* "bool" { return(BOOL_TOKEN); } */ case 22: YY_RULE_SETUP -#line 94 "lexer.l" +#line 96 "lexer.l" { return(LONG); } YY_BREAK case 23: YY_RULE_SETUP -#line 95 "lexer.l" +#line 97 "lexer.l" { return(REGISTER); } YY_BREAK case 24: YY_RULE_SETUP -#line 96 "lexer.l" +#line 98 "lexer.l" { return(RETURN); } YY_BREAK case 25: YY_RULE_SETUP -#line 97 "lexer.l" +#line 99 "lexer.l" { return(SHORT); } YY_BREAK case 26: YY_RULE_SETUP -#line 98 "lexer.l" +#line 100 "lexer.l" { return(SIGNED); } YY_BREAK case 27: YY_RULE_SETUP -#line 99 "lexer.l" +#line 101 "lexer.l" { return(SIGNED); } YY_BREAK case 28: YY_RULE_SETUP -#line 100 "lexer.l" +#line 102 "lexer.l" { return(SIGNED); } YY_BREAK case 29: YY_RULE_SETUP -#line 101 "lexer.l" +#line 103 "lexer.l" { return(SIZEOF); } YY_BREAK case 30: YY_RULE_SETUP -#line 102 "lexer.l" +#line 104 "lexer.l" { return(ALIGNOF); } YY_BREAK case 31: YY_RULE_SETUP -#line 103 "lexer.l" +#line 105 "lexer.l" { return(STATIC); } YY_BREAK case 32: YY_RULE_SETUP -#line 104 "lexer.l" +#line 106 "lexer.l" { return(THREAD); } YY_BREAK case 33: YY_RULE_SETUP -#line 105 "lexer.l" +#line 107 "lexer.l" { return(STRUCT); } YY_BREAK case 34: YY_RULE_SETUP -#line 106 "lexer.l" +#line 108 "lexer.l" { return(SWITCH); } YY_BREAK case 35: YY_RULE_SETUP -#line 107 "lexer.l" +#line 109 "lexer.l" { return(TYPEDEF); } YY_BREAK case 36: YY_RULE_SETUP -#line 108 "lexer.l" +#line 110 "lexer.l" { return(UNION); } YY_BREAK case 37: YY_RULE_SETUP -#line 109 "lexer.l" +#line 111 "lexer.l" { return(UNSIGNED); } YY_BREAK case 38: YY_RULE_SETUP -#line 110 "lexer.l" +#line 112 "lexer.l" { return(VOID); } YY_BREAK case 39: YY_RULE_SETUP -#line 111 "lexer.l" +#line 113 "lexer.l" { return(VOLATILE); } YY_BREAK case 40: YY_RULE_SETUP -#line 112 "lexer.l" +#line 114 "lexer.l" { return(VOLATILE); } YY_BREAK case 41: YY_RULE_SETUP -#line 113 "lexer.l" +#line 115 "lexer.l" { return(VOLATILE); } YY_BREAK case 42: YY_RULE_SETUP -#line 114 "lexer.l" +#line 116 "lexer.l" { return(WHILE); } YY_BREAK case 43: YY_RULE_SETUP -#line 116 "lexer.l" +#line 118 "lexer.l" { return(PROPERTY); } YY_BREAK case 44: YY_RULE_SETUP -#line 117 "lexer.l" +#line 119 "lexer.l" { return(SETPROP); } // TODO: Don't make this a keyword... YY_BREAK case 45: YY_RULE_SETUP -#line 118 "lexer.l" +#line 120 "lexer.l" { return(GETPROP); } // TODO: Don't make this a keyword... YY_BREAK case 46: YY_RULE_SETUP -#line 119 "lexer.l" +#line 121 "lexer.l" { return(ISPROPSET); } // TODO: Don't make this a keyword... YY_BREAK case 47: YY_RULE_SETUP -#line 120 "lexer.l" +#line 122 "lexer.l" { return(CLASS); } YY_BREAK case 48: YY_RULE_SETUP -#line 121 "lexer.l" +#line 123 "lexer.l" { return(THISCLASS); } YY_BREAK case 49: YY_RULE_SETUP -#line 122 "lexer.l" +#line 124 "lexer.l" { return(VIRTUAL); } YY_BREAK case 50: YY_RULE_SETUP -#line 123 "lexer.l" +#line 125 "lexer.l" { return(DELETE); } YY_BREAK case 51: YY_RULE_SETUP -#line 124 "lexer.l" +#line 126 "lexer.l" { return(NEWOP); } YY_BREAK case 52: YY_RULE_SETUP -#line 125 "lexer.l" +#line 127 "lexer.l" { return(NEW0OP); } YY_BREAK case 53: YY_RULE_SETUP -#line 126 "lexer.l" +#line 128 "lexer.l" { return(RENEW); } YY_BREAK case 54: YY_RULE_SETUP -#line 127 "lexer.l" +#line 129 "lexer.l" { return(RENEW0); } YY_BREAK case 55: YY_RULE_SETUP -#line 128 "lexer.l" +#line 130 "lexer.l" { return(IMPORT); } YY_BREAK case 56: YY_RULE_SETUP -#line 129 "lexer.l" +#line 131 "lexer.l" { return(DEFINE); } YY_BREAK case 57: YY_RULE_SETUP -#line 130 "lexer.l" +#line 132 "lexer.l" { return(INT64); } YY_BREAK case 58: YY_RULE_SETUP -#line 131 "lexer.l" +#line 133 "lexer.l" { return(INT64); } YY_BREAK case 59: YY_RULE_SETUP -#line 132 "lexer.l" +#line 134 "lexer.l" { return(VALIST); } YY_BREAK case 60: YY_RULE_SETUP -#line 133 "lexer.l" +#line 135 "lexer.l" { return(VAARG); } YY_BREAK case 61: YY_RULE_SETUP -#line 134 "lexer.l" +#line 136 "lexer.l" { return(BOOL); } YY_BREAK case 62: YY_RULE_SETUP -#line 135 "lexer.l" +#line 137 "lexer.l" { return(_BOOL); } YY_BREAK case 63: YY_RULE_SETUP -#line 136 "lexer.l" +#line 138 "lexer.l" { return(_COMPLEX); } YY_BREAK case 64: YY_RULE_SETUP -#line 137 "lexer.l" +#line 139 "lexer.l" { return(_IMAGINARY); } YY_BREAK case 65: YY_RULE_SETUP -#line 138 "lexer.l" +#line 140 "lexer.l" { return(EXT_DECL); } YY_BREAK /* "__attribute__".?"(("({D}|{L})*"))" { return(EXT_ATTRIB); } */ @@ -1825,532 +1826,532 @@ YY_RULE_SETUP /* "__attribute".?"((".?({D}|{L})*.?("("({D}|{L})*(.?",".?({D}|{L})*)*.?")")?.?"))" { return(EXT_ATTRIB); }*/ case 66: YY_RULE_SETUP -#line 165 "lexer.l" +#line 167 "lexer.l" { return ATTRIB_DEP; } YY_BREAK case 67: YY_RULE_SETUP -#line 166 "lexer.l" +#line 168 "lexer.l" { return ATTRIB; } YY_BREAK case 68: YY_RULE_SETUP -#line 167 "lexer.l" +#line 169 "lexer.l" { return __ATTRIB; } YY_BREAK case 69: YY_RULE_SETUP -#line 169 "lexer.l" +#line 171 "lexer.l" { return(EXT_STORAGE); } YY_BREAK case 70: YY_RULE_SETUP -#line 170 "lexer.l" +#line 172 "lexer.l" { return(EXT_STORAGE); } YY_BREAK case 71: YY_RULE_SETUP -#line 171 "lexer.l" +#line 173 "lexer.l" { return(EXT_STORAGE); } YY_BREAK case 72: YY_RULE_SETUP -#line 172 "lexer.l" +#line 174 "lexer.l" { return(EXT_STORAGE); } YY_BREAK case 73: YY_RULE_SETUP -#line 173 "lexer.l" +#line 175 "lexer.l" { return(EXT_STORAGE); } YY_BREAK case 74: YY_RULE_SETUP -#line 174 "lexer.l" +#line 176 "lexer.l" { return(EXT_STORAGE); } YY_BREAK case 75: YY_RULE_SETUP -#line 175 "lexer.l" +#line 177 "lexer.l" { return(EXT_STORAGE); } YY_BREAK case 76: YY_RULE_SETUP -#line 176 "lexer.l" +#line 178 "lexer.l" { return(EXT_DECL); } YY_BREAK case 77: YY_RULE_SETUP -#line 177 "lexer.l" +#line 179 "lexer.l" { return(EXT_DECL); } YY_BREAK case 78: YY_RULE_SETUP -#line 178 "lexer.l" +#line 180 "lexer.l" { return(EXT_DECL); } YY_BREAK case 79: YY_RULE_SETUP -#line 179 "lexer.l" +#line 181 "lexer.l" { return(EXT_DECL); } YY_BREAK case 80: YY_RULE_SETUP -#line 180 "lexer.l" +#line 182 "lexer.l" { return(EXT_DECL); } YY_BREAK case 81: YY_RULE_SETUP -#line 181 "lexer.l" +#line 183 "lexer.l" { return(EXT_DECL); } YY_BREAK case 82: YY_RULE_SETUP -#line 182 "lexer.l" +#line 184 "lexer.l" { return(EXT_DECL); } YY_BREAK case 83: YY_RULE_SETUP -#line 183 "lexer.l" +#line 185 "lexer.l" { return(EXT_DECL); } YY_BREAK case 84: YY_RULE_SETUP -#line 184 "lexer.l" +#line 186 "lexer.l" { return(PUBLIC); } YY_BREAK case 85: YY_RULE_SETUP -#line 185 "lexer.l" +#line 187 "lexer.l" { return(PRIVATE); } YY_BREAK case 86: YY_RULE_SETUP -#line 186 "lexer.l" +#line 188 "lexer.l" { return(TYPED_OBJECT); } YY_BREAK case 87: YY_RULE_SETUP -#line 187 "lexer.l" +#line 189 "lexer.l" { return(ANY_OBJECT); } YY_BREAK case 88: YY_RULE_SETUP -#line 188 "lexer.l" +#line 190 "lexer.l" { return(_INCREF); } YY_BREAK case 89: YY_RULE_SETUP -#line 189 "lexer.l" +#line 191 "lexer.l" { return(EXTENSION); } YY_BREAK case 90: YY_RULE_SETUP -#line 190 "lexer.l" +#line 192 "lexer.l" { return(EXTENSION); } YY_BREAK case 91: YY_RULE_SETUP -#line 191 "lexer.l" +#line 193 "lexer.l" { return(ASM); } YY_BREAK case 92: YY_RULE_SETUP -#line 192 "lexer.l" +#line 194 "lexer.l" { return(ASM); } YY_BREAK case 93: YY_RULE_SETUP -#line 193 "lexer.l" +#line 195 "lexer.l" { return(ASM); } YY_BREAK case 94: YY_RULE_SETUP -#line 194 "lexer.l" +#line 196 "lexer.l" { return(TYPEOF); } YY_BREAK case 95: YY_RULE_SETUP -#line 195 "lexer.l" +#line 197 "lexer.l" { return(WATCH); } YY_BREAK case 96: YY_RULE_SETUP -#line 196 "lexer.l" +#line 198 "lexer.l" { return(STOPWATCHING); } YY_BREAK case 97: YY_RULE_SETUP -#line 197 "lexer.l" +#line 199 "lexer.l" { return(FIREWATCHERS); } YY_BREAK case 98: YY_RULE_SETUP -#line 198 "lexer.l" +#line 200 "lexer.l" { return(WATCHABLE); } YY_BREAK case 99: YY_RULE_SETUP -#line 199 "lexer.l" +#line 201 "lexer.l" { return(CLASS_DESIGNER); } YY_BREAK case 100: YY_RULE_SETUP -#line 200 "lexer.l" +#line 202 "lexer.l" { return(CLASS_NO_EXPANSION); } YY_BREAK case 101: YY_RULE_SETUP -#line 201 "lexer.l" +#line 203 "lexer.l" { return(CLASS_FIXED); } YY_BREAK case 102: YY_RULE_SETUP -#line 202 "lexer.l" +#line 204 "lexer.l" { return(CLASS_DEFAULT_PROPERTY); } YY_BREAK case 103: YY_RULE_SETUP -#line 203 "lexer.l" +#line 205 "lexer.l" { return(PROPERTY_CATEGORY); } YY_BREAK case 104: YY_RULE_SETUP -#line 204 "lexer.l" +#line 206 "lexer.l" { return(CLASS_DATA); } YY_BREAK case 105: YY_RULE_SETUP -#line 205 "lexer.l" +#line 207 "lexer.l" { return(CLASS_PROPERTY); } YY_BREAK case 106: YY_RULE_SETUP -#line 206 "lexer.l" +#line 208 "lexer.l" { return(SUBCLASS); } YY_BREAK case 107: YY_RULE_SETUP -#line 207 "lexer.l" +#line 209 "lexer.l" { return(NAMESPACE); } YY_BREAK case 108: YY_RULE_SETUP -#line 208 "lexer.l" +#line 210 "lexer.l" { return(DBTABLE); } YY_BREAK case 109: YY_RULE_SETUP -#line 209 "lexer.l" +#line 211 "lexer.l" { return(DBFIELD); } YY_BREAK case 110: YY_RULE_SETUP -#line 210 "lexer.l" +#line 212 "lexer.l" { return(DBINDEX); } YY_BREAK case 111: YY_RULE_SETUP -#line 211 "lexer.l" +#line 213 "lexer.l" { return(DATABASE_OPEN); } YY_BREAK case 112: YY_RULE_SETUP -#line 213 "lexer.l" +#line 215 "lexer.l" { return(check_type()); } // {L}({L}|{D})* { return(check_type()); } // ("::"|(({IDENT}"::")*)){IDENT} { return(check_type()); } // {L}({L}|{D})* { return(check_type()); } YY_BREAK case 113: YY_RULE_SETUP -#line 215 "lexer.l" +#line 217 "lexer.l" { return(CONSTANT); } YY_BREAK case 114: YY_RULE_SETUP -#line 217 "lexer.l" +#line 219 "lexer.l" { return(CONSTANT); } YY_BREAK case 115: YY_RULE_SETUP -#line 218 "lexer.l" +#line 220 "lexer.l" { return(CONSTANT); } YY_BREAK case 116: YY_RULE_SETUP -#line 219 "lexer.l" +#line 221 "lexer.l" { return(CONSTANT); } YY_BREAK case 117: YY_RULE_SETUP -#line 221 "lexer.l" +#line 223 "lexer.l" { return(CONSTANT); } YY_BREAK case 118: YY_RULE_SETUP -#line 222 "lexer.l" +#line 224 "lexer.l" { return(CONSTANT); } YY_BREAK case 119: YY_RULE_SETUP -#line 223 "lexer.l" +#line 225 "lexer.l" { return(CONSTANT); } YY_BREAK case 120: YY_RULE_SETUP -#line 225 "lexer.l" +#line 227 "lexer.l" { return(CONSTANT); } YY_BREAK case 121: YY_RULE_SETUP -#line 226 "lexer.l" +#line 228 "lexer.l" { return(CONSTANT); } YY_BREAK case 122: YY_RULE_SETUP -#line 227 "lexer.l" +#line 229 "lexer.l" { return(CONSTANT); } YY_BREAK case 123: YY_RULE_SETUP -#line 229 "lexer.l" +#line 231 "lexer.l" { return(STRING_LITERAL); } YY_BREAK case 124: YY_RULE_SETUP -#line 231 "lexer.l" +#line 233 "lexer.l" { return(ELLIPSIS); } YY_BREAK case 125: YY_RULE_SETUP -#line 232 "lexer.l" +#line 234 "lexer.l" { return(RIGHT_ASSIGN); } YY_BREAK case 126: YY_RULE_SETUP -#line 233 "lexer.l" +#line 235 "lexer.l" { return(LEFT_ASSIGN); } YY_BREAK case 127: YY_RULE_SETUP -#line 234 "lexer.l" +#line 236 "lexer.l" { return(ADD_ASSIGN); } YY_BREAK case 128: YY_RULE_SETUP -#line 235 "lexer.l" +#line 237 "lexer.l" { return(SUB_ASSIGN); } YY_BREAK case 129: YY_RULE_SETUP -#line 236 "lexer.l" +#line 238 "lexer.l" { return(MUL_ASSIGN); } YY_BREAK case 130: YY_RULE_SETUP -#line 237 "lexer.l" +#line 239 "lexer.l" { return(DIV_ASSIGN); } YY_BREAK case 131: YY_RULE_SETUP -#line 238 "lexer.l" +#line 240 "lexer.l" { return(MOD_ASSIGN); } YY_BREAK case 132: YY_RULE_SETUP -#line 239 "lexer.l" +#line 241 "lexer.l" { return(AND_ASSIGN); } YY_BREAK case 133: YY_RULE_SETUP -#line 240 "lexer.l" +#line 242 "lexer.l" { return(XOR_ASSIGN); } YY_BREAK case 134: YY_RULE_SETUP -#line 241 "lexer.l" +#line 243 "lexer.l" { return(OR_ASSIGN); } YY_BREAK case 135: YY_RULE_SETUP -#line 242 "lexer.l" +#line 244 "lexer.l" { return(RIGHT_OP); } YY_BREAK case 136: YY_RULE_SETUP -#line 243 "lexer.l" +#line 245 "lexer.l" { return(LEFT_OP); } YY_BREAK case 137: YY_RULE_SETUP -#line 244 "lexer.l" +#line 246 "lexer.l" { return(INC_OP); } YY_BREAK case 138: YY_RULE_SETUP -#line 245 "lexer.l" +#line 247 "lexer.l" { return(DEC_OP); } YY_BREAK case 139: YY_RULE_SETUP -#line 246 "lexer.l" +#line 248 "lexer.l" { return(PTR_OP); } YY_BREAK case 140: YY_RULE_SETUP -#line 247 "lexer.l" +#line 249 "lexer.l" { return(AND_OP); } YY_BREAK case 141: YY_RULE_SETUP -#line 248 "lexer.l" +#line 250 "lexer.l" { return(OR_OP); } YY_BREAK case 142: YY_RULE_SETUP -#line 249 "lexer.l" +#line 251 "lexer.l" { return(LE_OP); } YY_BREAK case 143: YY_RULE_SETUP -#line 250 "lexer.l" +#line 252 "lexer.l" { return(GE_OP); } YY_BREAK case 144: YY_RULE_SETUP -#line 251 "lexer.l" +#line 253 "lexer.l" { return(EQ_OP); } YY_BREAK case 145: YY_RULE_SETUP -#line 252 "lexer.l" +#line 254 "lexer.l" { return(NE_OP); } YY_BREAK /* "::" { return(CLASS_OP); } */ case 146: YY_RULE_SETUP -#line 254 "lexer.l" +#line 256 "lexer.l" { return(';'); } YY_BREAK case 147: YY_RULE_SETUP -#line 255 "lexer.l" +#line 257 "lexer.l" { return('{'); } YY_BREAK case 148: YY_RULE_SETUP -#line 256 "lexer.l" +#line 258 "lexer.l" { return('}'); } YY_BREAK case 149: YY_RULE_SETUP -#line 257 "lexer.l" +#line 259 "lexer.l" { return(','); } YY_BREAK case 150: YY_RULE_SETUP -#line 258 "lexer.l" +#line 260 "lexer.l" { return(':'); } YY_BREAK case 151: YY_RULE_SETUP -#line 259 "lexer.l" +#line 261 "lexer.l" { return('='); } YY_BREAK case 152: YY_RULE_SETUP -#line 260 "lexer.l" +#line 262 "lexer.l" { return('('); } YY_BREAK case 153: YY_RULE_SETUP -#line 261 "lexer.l" +#line 263 "lexer.l" { return(')'); } YY_BREAK case 154: YY_RULE_SETUP -#line 262 "lexer.l" +#line 264 "lexer.l" { return('['); } YY_BREAK case 155: YY_RULE_SETUP -#line 263 "lexer.l" +#line 265 "lexer.l" { return(']'); } YY_BREAK case 156: YY_RULE_SETUP -#line 264 "lexer.l" +#line 266 "lexer.l" { return('.'); } YY_BREAK case 157: YY_RULE_SETUP -#line 265 "lexer.l" +#line 267 "lexer.l" { return('&'); } YY_BREAK case 158: YY_RULE_SETUP -#line 266 "lexer.l" +#line 268 "lexer.l" { return('!'); } YY_BREAK case 159: YY_RULE_SETUP -#line 267 "lexer.l" +#line 269 "lexer.l" { return('~'); } YY_BREAK case 160: YY_RULE_SETUP -#line 268 "lexer.l" +#line 270 "lexer.l" { return('-'); } YY_BREAK case 161: YY_RULE_SETUP -#line 269 "lexer.l" +#line 271 "lexer.l" { return('+'); } YY_BREAK case 162: YY_RULE_SETUP -#line 270 "lexer.l" +#line 272 "lexer.l" { return('*'); } YY_BREAK case 163: YY_RULE_SETUP -#line 271 "lexer.l" +#line 273 "lexer.l" { return('/'); } YY_BREAK case 164: YY_RULE_SETUP -#line 272 "lexer.l" +#line 274 "lexer.l" { return('%'); } YY_BREAK case 165: YY_RULE_SETUP -#line 273 "lexer.l" +#line 275 "lexer.l" { return('<'); } YY_BREAK case 166: YY_RULE_SETUP -#line 274 "lexer.l" +#line 276 "lexer.l" { return('>'); } YY_BREAK case 167: YY_RULE_SETUP -#line 275 "lexer.l" +#line 277 "lexer.l" { return('^'); } YY_BREAK case 168: YY_RULE_SETUP -#line 276 "lexer.l" +#line 278 "lexer.l" { return('|'); } YY_BREAK case 169: YY_RULE_SETUP -#line 277 "lexer.l" +#line 279 "lexer.l" { return('?'); } YY_BREAK case 170: YY_RULE_SETUP -#line 278 "lexer.l" +#line 280 "lexer.l" { return('$'); } YY_BREAK case YY_STATE_EOF(INITIAL): -#line 280 "lexer.l" +#line 282 "lexer.l" { while(include_stack_ptr && !fileStack[include_stack_ptr-1]) { @@ -2378,12 +2379,12 @@ case YY_STATE_EOF(INITIAL): YY_BREAK case 171: YY_RULE_SETUP -#line 306 "lexer.l" +#line 308 "lexer.l" { yylloc.start = yylloc.end; type_yylloc.start = type_yylloc.end; expression_yylloc.start = expression_yylloc.end;} YY_BREAK case 172: YY_RULE_SETUP -#line 307 "lexer.l" +#line 309 "lexer.l" { yylloc.end.charPos = 1; yylloc.end.line += yyleng; yylloc.start = yylloc.end; type_yylloc.end.charPos = 1; type_yylloc.end.line += yyleng; type_yylloc.start = type_yylloc.end; @@ -2392,7 +2393,7 @@ YY_RULE_SETUP YY_BREAK case 173: YY_RULE_SETUP -#line 312 "lexer.l" +#line 314 "lexer.l" { yylloc.start.charPos++ /*= 3 - (yylloc.start.col % 3)*/; yylloc.end.charPos = yylloc.start.charPos; yylloc.start.pos = yylloc.end.pos; expression_yylloc.start.charPos++ /*= 3 - (expression_yylloc.start.col % 3)*/; expression_yylloc.end.charPos = expression_yylloc.start.charPos; expression_yylloc.start.pos = expression_yylloc.end.pos; @@ -2401,12 +2402,12 @@ YY_RULE_SETUP YY_BREAK case 174: YY_RULE_SETUP -#line 317 "lexer.l" +#line 319 "lexer.l" { yylloc.start = yylloc.end; expression_yylloc.start = expression_yylloc.end; type_yylloc.start = type_yylloc.end; } YY_BREAK case 175: YY_RULE_SETUP -#line 318 "lexer.l" +#line 320 "lexer.l" { yylloc.start = yylloc.end; expression_yylloc.start = expression_yylloc.end; type_yylloc.start = type_yylloc.end; if(inCompiler) @@ -2416,10 +2417,10 @@ YY_RULE_SETUP YY_BREAK case 176: YY_RULE_SETUP -#line 325 "lexer.l" +#line 327 "lexer.l" ECHO; YY_BREAK -#line 2423 "lexer.ec" +#line 2424 "lexer.ec" case YY_END_OF_BUFFER: { @@ -3303,12 +3304,12 @@ int main() return 0; } #endif -#line 325 "lexer.l" +#line 327 "lexer.l" private: -yywrap() +int yywrap() { return(1); } @@ -3349,7 +3350,7 @@ int comment() int commentCPP() { - int c, last = 0; + int c; //, last = 0; for(;;) { c = input(); @@ -3374,7 +3375,7 @@ int commentCPP() yylloc.end.charPos++; yylloc.end.pos++; } - last = c; + //last = c; } yylloc.start = yylloc.end; return 0; @@ -3540,8 +3541,6 @@ int preprocessor() yy_switch_to_buffer( yy_create_buffer( fileInput, YY_BUF_SIZE ) ); BEGIN(INITIAL); } - else - printf(""); } } return 0; diff --git a/compiler/libec/src/lexer.l b/compiler/libec/src/lexer.l index b3d0bcf..50ff4e7 100644 --- a/compiler/libec/src/lexer.l +++ b/compiler/libec/src/lexer.l @@ -7,6 +7,8 @@ FS (f|F|l|L|i|I|j|J)* IS (u|U|l|L|i|I|j|J)* IDENT {L}({L}|{D})* +%option nounput + %{ import "ecdefs" #define YYLTYPE Location @@ -48,7 +50,7 @@ void TESTTTT() YY_BUFFER_STATE include_stack[MAX_INCLUDE_DEPTH]; File fileStack[MAX_INCLUDE_DEPTH]; char sourceFileStack[MAX_INCLUDE_DEPTH][MAX_LOCATION]; -public void SetSomeSourceFileStack(char * fileName, int index) { strcpy(sourceFileStack[index], fileName); } +public void SetSomeSourceFileStack(const char * fileName, int index) { strcpy(sourceFileStack[index], fileName); } YYLTYPE locStack[MAX_INCLUDE_DEPTH]; AccessMode declModeStack[MAX_INCLUDE_DEPTH]; int include_stack_ptr = 0; @@ -326,7 +328,7 @@ L?\"(\\.|[^\\"])*\" { return(STRING_LITERAL); } private: -yywrap() +int yywrap() { return(1); } @@ -367,7 +369,7 @@ int comment() int commentCPP() { - int c, last = 0; + int c; //, last = 0; for(;;) { c = input(); @@ -392,7 +394,7 @@ int commentCPP() yylloc.end.charPos++; yylloc.end.pos++; } - last = c; + //last = c; } yylloc.start = yylloc.end; return 0; @@ -558,8 +560,6 @@ int preprocessor() yy_switch_to_buffer( yy_create_buffer( fileInput, YY_BUF_SIZE ) ); BEGIN(INITIAL); } - else - printf(""); } } return 0; diff --git a/compiler/libec/src/loadSymbols.ec b/compiler/libec/src/loadSymbols.ec index e6779df..823d071 100644 --- a/compiler/libec/src/loadSymbols.ec +++ b/compiler/libec/src/loadSymbols.ec @@ -378,7 +378,7 @@ public bool LoadSymbols(const char * fileName, ImportType importType, bool loadD TrimLSpaces(line, line); if(regClass) { - Property prop = eClass_AddProperty(regClass, conversion ? null : name, line[0] ? line : 0, (void *)setStmt, (void *)getStmt, memberAccess); + Property prop = eClass_AddProperty(regClass, conversion ? null : name, line[0] ? line : 0, (void *)(uintptr)setStmt, (void *)(uintptr)getStmt, memberAccess); if(prop) { prop.compiled = false; @@ -432,7 +432,7 @@ public bool LoadSymbols(const char * fileName, ImportType importType, bool loadD TrimLSpaces(line, line); if(regClass) { - eClass_AddClassProperty(regClass, name, line, (void *)setStmt, (void *)getStmt); + eClass_AddClassProperty(regClass, name, line, (void *)(uintptr)setStmt, (void *)(uintptr)getStmt); } } else if(!strcmp(line, "[Set]")) diff --git a/compiler/libec/src/pass0.ec b/compiler/libec/src/pass0.ec index 8f6a987..161a3b6 100644 --- a/compiler/libec/src/pass0.ec +++ b/compiler/libec/src/pass0.ec @@ -5,7 +5,7 @@ import "ecdefs" extern External curExternal; -public void MangleClassName(char * className) +/*public void MangleClassName(char * className) { char output[1024]; int c, d = 0; @@ -58,7 +58,7 @@ public void MangleClassName(char * className) // ChangeCh(className, ' ', '_'); // ChangeCh(className, '*', '_'); } - +*/ public void FullClassNameCat(char * output, const char * className, bool includeTemplateParams) { int c; @@ -268,7 +268,6 @@ static void CheckPublicExpression(Expression exp, AccessMode access) break; case castExp: { - Type type = exp.expType; CheckPublicTypeName(exp.cast.typeName, access); if(exp.cast.exp) CheckPublicExpression(exp.cast.exp, access); @@ -454,7 +453,7 @@ static void ProcessClass(ClassType classType, OldList definitions, Symbol symbol char destructorName[1024]; Class regClass; ClassFunction destructor = null, constructor = null; - bool redefinition = false; + //bool redefinition = false; bool isUnion = classType == unionClass; External external = null; @@ -609,9 +608,11 @@ static void ProcessClass(ClassType classType, OldList definitions, Symbol symbol } for(def = definitions.first; def; def = def.next) { + yylloc = def.loc; if(def.type == declarationClassDef) { Declaration decl = def.decl; + yylloc = decl.loc; if(decl.type == structDeclaration) { @@ -823,7 +824,7 @@ static void ProcessClass(ClassType classType, OldList definitions, Symbol symbol strcpy(className, "__ecereClass_"); FullClassNameCat(className, symbol.string, true); - MangleClassName(className); + //MangleClassName(className); symbol.className = CopyString(className); @@ -1147,7 +1148,7 @@ static void ProcessClass(ClassType classType, OldList definitions, Symbol symbol strcat(name, "_Get_"); // strcat(name, propertyDef.id.string); FullClassNameCat(name, propertyDef.id.string, true); - MangleClassName(name); + //MangleClassName(name); params = MkList(); @@ -1196,7 +1197,7 @@ static void ProcessClass(ClassType classType, OldList definitions, Symbol symbol strcat(name, "_Set_"); //strcat(name, propertyDef.id.string); FullClassNameCat(name, propertyDef.id.string, true); - MangleClassName(name); + //MangleClassName(name); params = MkList(); @@ -1271,7 +1272,7 @@ static void ProcessClass(ClassType classType, OldList definitions, Symbol symbol strcat(name, "_IsSet_"); //strcat(name, propertyDef.id.string); FullClassNameCat(name, propertyDef.id.string, true); - MangleClassName(name); + //MangleClassName(name); params = MkList(); @@ -1316,7 +1317,7 @@ static void ProcessClass(ClassType classType, OldList definitions, Symbol symbol strcat(name, "_"); //strcat(name, propertyDef.id.string); FullClassNameCat(name, propertyDef.id.string, true); - MangleClassName(name); + //MangleClassName(name); { OldList * list = MkList(); @@ -1328,7 +1329,7 @@ static void ProcessClass(ClassType classType, OldList definitions, Symbol symbol strcat(name, "_"); //strcat(name, propertyDef.id.string); FullClassNameCat(name, propertyDef.id.string, true); - MangleClassName(name); + //MangleClassName(name); ListAdd(list, MkInitDeclarator(/*MkDeclaratorPointer(MkPointer(null, null), */ MkDeclaratorIdentifier(MkIdentifier(name))/*)*/, null)); @@ -1378,7 +1379,7 @@ static void ProcessClass(ClassType classType, OldList definitions, Symbol symbol FullClassNameCat(name, symbol.string, false); strcat(name, "_Get_"); strcat(name, propertyDef.id.string); - MangleClassName(name); + //MangleClassName(name); params = MkList(); @@ -1455,7 +1456,7 @@ static void ProcessClass(ClassType classType, OldList definitions, Symbol symbol FullClassNameCat(name, symbol.string, false); strcat(name, "_Set_"); strcat(name, propertyDef.id.string); - MangleClassName(name); + //MangleClassName(name); params = MkList(); /* diff --git a/compiler/libec/src/pass1.ec b/compiler/libec/src/pass1.ec index a458979..374fca2 100644 --- a/compiler/libec/src/pass1.ec +++ b/compiler/libec/src/pass1.ec @@ -277,8 +277,10 @@ void CreateRegisterModuleBody() MkListOne(MkInitDeclarator(MkDeclaratorPointer(MkPointer(null,null), MkDeclaratorIdentifier(MkIdentifier("class"))), null)))); #endif ListAdd(registerModuleBody.compound.declarations, - MkDeclaration(MkListOne(MkSpecifierName("ecere::com::Class")), + MkDeclaration((specifiers = MkListOne(MkSpecifierName("ecere::com::Class"))), MkListOne(MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier("class")), null)))); + // Avoid unused warning here + specifiers->Add(MkSpecifierExtended(MkExtDeclAttrib(MkAttrib(ATTRIB, MkListOne(MkAttribute(CopyString("unused"), null)))))); specifiers = MkList(); ListAdd(specifiers, MkSpecifier(VOID)); @@ -382,7 +384,7 @@ void RegisterMembersAndProperties(Class regClass, bool isMember, const char * cl strcat(name, "_Set_"); // strcat(name, prop.name); FullClassNameCat(name, prop.name, true); - MangleClassName(name); + //MangleClassName(name); ListAdd(args, MkExpIdentifier(MkIdentifier(name))); } else @@ -395,7 +397,7 @@ void RegisterMembersAndProperties(Class regClass, bool isMember, const char * cl strcat(name, "_Get_"); // strcat(name, prop.name); FullClassNameCat(name, prop.name, true); - MangleClassName(name); + //MangleClassName(name); ListAdd(args, MkExpIdentifier(MkIdentifier(name))); } @@ -423,7 +425,7 @@ void RegisterMembersAndProperties(Class regClass, bool isMember, const char * cl strcat(name, "_"); FullClassNameCat(name, prop.name, true); // strcat(name, prop.name); - MangleClassName(name); + //MangleClassName(name); stmt = MkExpressionStmt(MkListOne( MkExpOp(MkExpIdentifier(MkIdentifier(name)), '=', @@ -463,7 +465,7 @@ void RegisterMembersAndProperties(Class regClass, bool isMember, const char * cl strcat(name, "_Set_"); FullClassNameCat(name, prop.name, true); // strcat(name, prop.name); - MangleClassName(name); + //MangleClassName(name); ListAdd(args, MkExpIdentifier(MkIdentifier(name))); } else @@ -476,7 +478,7 @@ void RegisterMembersAndProperties(Class regClass, bool isMember, const char * cl strcat(name, "_Get_"); FullClassNameCat(name, prop.name, true); // strcat(name, prop.name); - MangleClassName(name); + //MangleClassName(name); ListAdd(args, MkExpIdentifier(MkIdentifier(name))); } else @@ -502,14 +504,14 @@ void RegisterMembersAndProperties(Class regClass, bool isMember, const char * cl strcat(name, "_"); FullClassNameCat(name, prop.name, true); // strcat(name, prop.name); - MangleClassName(name); + //MangleClassName(name); strcpy(nameM, "__ecerePropM_"); FullClassNameCat(nameM, regClass.fullName, false); strcat(nameM, "_"); FullClassNameCat(nameM, prop.name, true); // strcat(nameM, prop.name); - MangleClassName(nameM); + //MangleClassName(nameM); if(prop.dataTypeString) { @@ -531,7 +533,7 @@ void RegisterMembersAndProperties(Class regClass, bool isMember, const char * cl strcat(name, "_IsSet_"); FullClassNameCat(name, prop.name, false); // strcat(name, prop.name); - MangleClassName(name); + //MangleClassName(name); stmt = MkExpressionStmt(MkListOne( MkExpOp(MkExpMember(MkExpIdentifier(MkIdentifier(nameM)), MkIdentifier("IsSet")), '=', @@ -807,14 +809,14 @@ void RegisterMembersAndProperties(Class regClass, bool isMember, const char * cl strcat(name, "_"); FullClassNameCat(name, prop.name, false); // strcat(name, prop.name); - MangleClassName(name); + //MangleClassName(name); strcpy(nameM, "__ecerePropM_"); FullClassNameCat(nameM, regClass.fullName, true); strcat(nameM, "_"); FullClassNameCat(nameM, prop.name, false); // strcat(nameM, prop.name); - MangleClassName(nameM); + //MangleClassName(nameM); args = MkListOne(MkExpCondition(MkExpIdentifier(MkIdentifier(nameM)), MkListOne(MkExpIdentifier(MkIdentifier(nameM))), MkExpIdentifier(MkIdentifier(name)))); stmt = MkExpressionStmt(MkListOne( @@ -850,7 +852,7 @@ void RegisterMembersAndProperties(Class regClass, bool isMember, const char * cl FullClassNameCat(name, regClass.fullName, true); strcat(name, "_Set_"); strcat(name, classProperty.name); - MangleClassName(name); + //MangleClassName(name); ListAdd(args, MkExpIdentifier(MkIdentifier(name))); } else @@ -862,7 +864,7 @@ void RegisterMembersAndProperties(Class regClass, bool isMember, const char * cl FullClassNameCat(name, regClass.fullName, true); strcat(name, "_Get_"); strcat(name, classProperty.name); - MangleClassName(name); + //MangleClassName(name); ListAdd(args, MkExpIdentifier(MkIdentifier(name))); } diff --git a/compiler/libec/src/pass15.ec b/compiler/libec/src/pass15.ec index 6f458e7..209398c 100644 --- a/compiler/libec/src/pass15.ec +++ b/compiler/libec/src/pass15.ec @@ -1228,7 +1228,7 @@ void DeclareStruct(const char * name, bool skipNoHead) char className[1024]; strcpy(className, "__ecereClass_"); FullClassNameCat(className, classSym.string, true); - MangleClassName(className); + //MangleClassName(className); // Testing This DeclareClass(classSym, className); @@ -1243,7 +1243,7 @@ void DeclareStruct(const char * name, bool skipNoHead) char className[1024]; strcpy(className, "__ecereClass_"); FullClassNameCat(className, classSym.string, true); - MangleClassName(className); + //MangleClassName(className); // TOFIX: TESTING THIS... classSym.structExternal = external; @@ -1314,7 +1314,7 @@ void DeclareProperty(Property prop, char * setName, char * getName) strcat(setName, "_Set_"); // strcat(setName, prop.name); FullClassNameCat(setName, prop.name, true); - MangleClassName(setName); + //MangleClassName(setName); strcpy(getName, "__ecereProp_"); FullClassNameCat(getName, prop._class.fullName, false); @@ -1323,7 +1323,7 @@ void DeclareProperty(Property prop, char * setName, char * getName) // strcat(getName, prop.name); // To support "char *" property - MangleClassName(getName); + //MangleClassName(getName); if(prop._class.type == structClass) DeclareStruct(prop._class.fullName, false); @@ -1580,7 +1580,7 @@ void DeclareProperty(Property prop, char * setName, char * getName) strcat(propName, "_"); FullClassNameCat(propName, prop.name, true); // strcat(propName, prop.name); - MangleClassName(propName); + //MangleClassName(propName); { OldList * list = MkList(); @@ -1595,7 +1595,7 @@ void DeclareProperty(Property prop, char * setName, char * getName) // strcat(propName, prop.name); FullClassNameCat(propName, prop.name, true); - MangleClassName(propName); + //MangleClassName(propName); ListAdd(list, MkInitDeclarator(MkDeclaratorPointer(MkPointer(null, null), MkDeclaratorIdentifier(MkIdentifier(propName))), null)); @@ -1830,7 +1830,6 @@ void ProcessMemberInitData(MemberInit member, Class _class, Class * curClass, Da { Class expClass = type._class.registered; Class cClass = null; - int c; int paramCount = 0; int lastParam = -1; @@ -2481,7 +2480,7 @@ public void DeclareMethod(Method method, const char * name) Symbol symbol = method.symbol; if(!symbol || (!symbol.pointerExternal && method.type == virtualMethod) || symbol.id > (curExternal ? curExternal.symbol.idCode : -1)) { - bool imported = false; + //bool imported = false; bool dllImport = false; if(!method.dataType) @@ -2548,7 +2547,7 @@ public void DeclareMethod(Method method, const char * name) } if(!method.dataType.dllExport) { - imported = true; + //imported = true; if((method._class.module != privateModule || !strcmp(method._class.name, "float") || !strcmp(method._class.name, "double")) && method._class.module.importType != staticImport) dllImport = true; } @@ -4913,7 +4912,6 @@ void ComputeInstantiation(Expression exp) Property prop = null; DataMember dataMember = null; - Method method = null; uint dataMemberOffset; if(!ident) @@ -5238,12 +5236,12 @@ void ComputeInstantiation(Expression exp) { case _BoolType: case charType: { byte v; type.isSigned ? GetChar(value, (char *)&v) : GetUChar(value, &v); part = (uint64)v; break; } - case shortType: { uint16 v; type.isSigned ? GetShort(value, (uint16 *)&v) : GetUShort(value, &v); part = (uint64)v; break; } + case shortType: { uint16 v; type.isSigned ? GetShort(value, (short *)&v) : GetUShort(value, &v); part = (uint64)v; break; } case intType: - case longType: { uint v; type.isSigned ? GetInt(value, (uint *)&v) : GetUInt(value, &v); part = (uint64)v; break; } - case int64Type: { uint64 v; type.isSigned ? GetInt64(value, (uint64 *)&v) : GetUInt64(value, &v); part = (uint64)v; break; } - case intPtrType: { uintptr v; type.isSigned ? GetIntPtr(value, (uintptr *)&v) : GetUIntPtr(value, &v); part = (uint64)v; break; } - case intSizeType: { uintsize v; type.isSigned ? GetIntSize(value, (uintsize *)&v) : GetUIntSize(value, &v); part = (uint64)v; break; } + case longType: { uint v; type.isSigned ? GetInt(value, (int *)&v) : GetUInt(value, &v); part = (uint64)v; break; } + case int64Type: { uint64 v; type.isSigned ? GetInt64(value, (int64 *)&v) : GetUInt64(value, &v); part = (uint64)v; break; } + case intPtrType: { uintptr v; type.isSigned ? GetIntPtr(value, (intptr *)&v) : GetUIntPtr(value, &v); part = (uint64)v; break; } + case intSizeType: { uintsize v; type.isSigned ? GetIntSize(value, (intsize *)&v) : GetUIntSize(value, &v); part = (uint64)v; break; } } bits |= part << bitMember.pos; } @@ -5319,11 +5317,11 @@ static bool Promote(Operand op, TypeKind kind, bool isSigned) break; case intPtrType: if(op.kind == charType || op.kind == shortType || op.kind == intType || op.kind == longType || op.kind == enumType || op.kind == _BoolType) - result = isSigned ? GetOpIntPtr(op, &op.i64) : GetOpUIntPtr(op, &op.i64); + result = isSigned ? GetOpIntPtr(op, &op.i64) : GetOpUIntPtr(op, &op.ui64); break; case intSizeType: if(op.kind == charType || op.kind == shortType || op.kind == intType || op.kind == longType || op.kind == enumType || op.kind == _BoolType) - result = isSigned ? GetOpIntSize(op, &op.ui64) : GetOpUIntSize(op, &op.ui64); + result = isSigned ? GetOpIntSize(op, &op.i64) : GetOpUIntSize(op, &op.ui64); break; } return result; @@ -6087,7 +6085,7 @@ void ComputeExpression(Expression exp) } else if(_class.type == structClass) { - char * value = (exp.member.exp.type == instanceExp ) ? exp.member.exp.instance.data : null; + byte * value = (exp.member.exp.type == instanceExp ) ? exp.member.exp.instance.data : null; switch(type.kind) { case classType: @@ -6177,7 +6175,7 @@ void ComputeExpression(Expression exp) char className[1024]; strcpy(className, "__ecereClass_"); FullClassNameCat(className, classSym.string, true); - MangleClassName(className); + //MangleClassName(className); DeclareClass(classSym, className); @@ -6601,7 +6599,6 @@ void CheckTemplateTypes(Expression exp) else if(exp.expType && exp.expType.passAsTemplate && exp.destType && exp.usage.usageGet && exp.destType.kind != templateType && !exp.destType.passAsTemplate) { Expression newExp { }; - Statement compound; Context context; *newExp = *exp; if(exp.destType) exp.destType.refCount++; @@ -7024,7 +7021,6 @@ static void PrePrintType(Type type, char * string, bool fullName, Type parentTyp { if(type.kind == arrayType || type.kind == pointerType || type.kind == functionType || type.kind == methodType) { - Type attrType = null; if((type.kind == functionType || type.kind == methodType) && (!parentType || parentType.kind != pointerType)) PrintAttribs(type, string); if(printConst && type.constant && (type.kind == functionType || type.kind == methodType)) @@ -8036,7 +8032,7 @@ void ProcessExpressionType(Expression exp) } case instanceExp: { - Class _class; + // Class _class; // Symbol classSym; if(!exp.instance._class) @@ -9762,10 +9758,7 @@ void ProcessExpressionType(Expression exp) if(exp.call.arguments) { for(e = exp.call.arguments->first; e; e = e.next) - { - Type destType = e.destType; ProcessExpressionType(e); - } } break; } @@ -9840,9 +9833,6 @@ void ProcessExpressionType(Expression exp) char * colon = strstr(param.defaultArg.memberString, "::"); if(colon) { - char className[1024]; - Class sClass; - memcpy(thisClassTypeString, param.defaultArg.memberString, colon - param.defaultArg.memberString); thisClassTypeString[colon - param.defaultArg.memberString] = '\0'; } @@ -9857,7 +9847,6 @@ void ProcessExpressionType(Expression exp) { Class expClass = exp.expType._class.registered; Class cClass = null; - int c; int paramCount = 0; int lastParam = -1; @@ -10436,7 +10425,6 @@ void ProcessExpressionType(Expression exp) if(expClass) { Class cClass = null; - int c; int p = 0; int paramCount = 0; int lastParam = -1; @@ -10452,7 +10440,6 @@ void ProcessExpressionType(Expression exp) for(param = cClass.templateParams.first; param; param = param.next) { Class cClassCur = null; - int c; int cp = 0; ClassTemplateParameter paramCur = null; ClassTemplateArgument arg; @@ -10643,7 +10630,7 @@ void ProcessExpressionType(Expression exp) char className[1024]; strcpy(className, "__ecereClass_"); FullClassNameCat(className, classSym.string, true); - MangleClassName(className); + //MangleClassName(className); DeclareClass(classSym, className); @@ -10937,7 +10924,7 @@ void ProcessExpressionType(Expression exp) { Expression e; type = ProcessTypeString(typeString, false); - while(e = exp.list->first) + while((e = exp.list->first)) { exp.list->Remove(e); e.destType = type; @@ -11367,7 +11354,7 @@ static void ProcessSpecifier(Specifier spec, bool declareStruct) { if(spec.definitions) { - ClassDef def; + //ClassDef def; Symbol symbol = spec.id ? FindClass(spec.id.string) : null; //if(symbol) ProcessClass(spec.definitions, symbol); @@ -11634,14 +11621,14 @@ static void CreateFireWatcher(Property prop, Expression object, Statement stmt) strcat(propName, "_"); // strcat(propName, prop.name); FullClassNameCat(propName, prop.name, true); - MangleClassName(propName); + //MangleClassName(propName); strcpy(propNameM, "__ecerePropM_"); FullClassNameCat(propNameM, prop._class.fullName, false); strcat(propNameM, "_"); // strcat(propNameM, prop.name); FullClassNameCat(propNameM, prop.name, true); - MangleClassName(propNameM); + //MangleClassName(propNameM); if(prop.isWatchable) { @@ -12005,7 +11992,7 @@ static void ProcessStatement(Statement stmt) builtinCount = arrayExp.list->count; type = ProcessTypeString(typeString, false); - while(e = arrayExp.list->first) + while((e = arrayExp.list->first)) { arrayExp.list->Remove(e); e.destType = type; @@ -12564,7 +12551,7 @@ static void ProcessStatement(Statement stmt) strcat(propName, "_"); // strcat(propName, prop.name); FullClassNameCat(propName, prop.name, true); - MangleClassName(propName); + //MangleClassName(propName); ListAdd(args, CopyExpression(object)); ListAdd(args, MkExpIdentifier(MkIdentifier(propName))); @@ -12652,7 +12639,7 @@ static void ProcessFunction(FunctionDefinition function) strcpy(className, "__ecereClass_"); FullClassNameCat(className, _class.fullName, true); - MangleClassName(className); + //MangleClassName(className); structName[0] = 0; FullClassNameCat(structName, _class.fullName, false); @@ -12797,7 +12784,7 @@ static void ProcessFunction(FunctionDefinition function) char className[1024]; strcpy(className, "__ecereClass_"); FullClassNameCat(className, classSym.string, true); - MangleClassName(className); + //MangleClassName(className); // Testing This DeclareClass(classSym, className); @@ -13122,6 +13109,13 @@ void ComputeDataTypes() } } + { + // Workaround until we have proper toposort for declarations reordering + External e = MkExternalDeclaration(MkDeclaration(MkListOne(MkStructOrUnion(structSpecifier, MkIdentifier("__ecereNameSpace__ecere__com__Instance"), null)), null)); + ast->Insert(after, e); + after = e; + } + temp.symbol = Symbol { id = -1000, idCode = -1000 }; ast->Insert(after, temp); curExternal = temp; diff --git a/compiler/libec/src/pass16.ec b/compiler/libec/src/pass16.ec index 31b4c0d..6455d73 100644 --- a/compiler/libec/src/pass16.ec +++ b/compiler/libec/src/pass16.ec @@ -698,7 +698,7 @@ public void DeclareClass(Symbol classSym, const char * className) strcpy(className, "__ecereClass_"); templateSym = FindClass(classSym.registered.templateClass.fullName); FullClassNameCat(className, templateSym.string, true); - MangleClassName(className); + //MangleClassName(className); DeclareClass(templateSym, className); }*/ @@ -1049,7 +1049,7 @@ static void ProcessExpression(Expression exp) else FullClassNameCat(className, inst._class.name, true); - MangleClassName(className); + //MangleClassName(className); DeclareClass(classSym, className); newCall = MkExpCall(QMkExpId("ecere::com::eInstance_New"), MkListOne(QMkExpId(className))); newCall.usage = exp.usage; @@ -2310,7 +2310,7 @@ static void ProcessDeclaration(Declaration decl) /*{ strcpy(className, "__ecereClass_"); FullClassNameCat(className, classSym.string, true); - MangleClassName(className); + //MangleClassName(className); DeclareClass(classSym, className); }*/ @@ -2369,7 +2369,7 @@ static void ProcessDeclaration(Declaration decl) } else FullClassNameCat(className, inst._class.name, true); - MangleClassName(className); + //MangleClassName(className); if(classSym) DeclareClass(classSym, className); diff --git a/compiler/libec/src/pass2.ec b/compiler/libec/src/pass2.ec index 0eea463..6141d30 100644 --- a/compiler/libec/src/pass2.ec +++ b/compiler/libec/src/pass2.ec @@ -273,7 +273,7 @@ static void ProcessExpression(Expression exp) // Need the class itself here... strcpy(className, "__ecereClass_"); FullClassNameCat(className, _class.fullName, true); - MangleClassName(className); + //MangleClassName(className); if(!_class.symbol) _class.symbol = FindClass(_class.fullName); @@ -1027,7 +1027,7 @@ static void ProcessExpression(Expression exp) strcpy(className, "__ecereClass_"); FullClassNameCat(className, exp.expType._class.string, true); - MangleClassName(className); + //MangleClassName(className); DeclareClass(exp.expType._class, className); @@ -1054,7 +1054,7 @@ static void ProcessExpression(Expression exp) if(_class.templateClass) _class = _class.templateClass; strcpy(className, "__ecereClass_"); FullClassNameCat(className, _class.fullName, false /*true*/); - MangleClassName(className); + //MangleClassName(className); if(!_class.symbol) _class.symbol = FindClass(_class.fullName); @@ -1332,7 +1332,6 @@ static void ProcessExpression(Expression exp) Expression next = exp.next, prev = exp.prev; Expression derefExp = exp.op.exp2; Expression refExp = exp.op.exp2.op.exp2; - Type expType = exp.expType, destType = exp.destType; derefExp.op.exp2 = null; FreeExpression(derefExp); @@ -1742,7 +1741,6 @@ static void ProcessExpression(Expression exp) Type type = memberExp ? memberExp.member.exp.expType : null; Class regClass = (type && type.kind == classType && type._class) ? type._class.registered : null; char className[1024]; - bool useInstance = false; if(!exp.call.exp.expType.methodClass && !_class && type && type.classObjectType) strcpy(className, "class"); @@ -1766,7 +1764,7 @@ static void ProcessExpression(Expression exp) // Need the class itself here... strcpy(className, "__ecereClass_"); FullClassNameCat(className, cl.fullName, true); - MangleClassName(className); + //MangleClassName(className); if(!cl.symbol) cl.symbol = FindClass(cl.fullName); @@ -1990,7 +1988,7 @@ static void ProcessExpression(Expression exp) // Need the class itself here... strcpy(className, "__ecereClass_"); FullClassNameCat(className, cl.fullName, true); - MangleClassName(className); + //MangleClassName(className); if(!cl.symbol) cl.symbol = FindClass(cl.fullName); @@ -2313,7 +2311,7 @@ static void ProcessExpression(Expression exp) { strcpy(className, "__ecereClass_"); FullClassNameCat(className, _class.fullName, true); - MangleClassName(className); + //MangleClassName(className); if(!_class.symbol) _class.symbol = FindClass(_class.fullName); @@ -2690,7 +2688,7 @@ static void ProcessExpression(Expression exp) // Need the class itself here... strcpy(className, "__ecereClass_"); FullClassNameCat(className, _class.fullName, true); - MangleClassName(className); + //MangleClassName(className); if(!_class.symbol) _class.symbol = FindClass(_class.fullName); @@ -2827,13 +2825,12 @@ static void ProcessExpression(Expression exp) else { Expression bytePtr, e; - Expression classExp; Expression checkedExp; char structName[1024]; char className[1024]; strcpy(className, "__ecereClass_"); FullClassNameCat(className, member._class.fullName, true); - MangleClassName(className); + //MangleClassName(className); // classExp = QMkExpId(className); @@ -3061,7 +3058,7 @@ static void ProcessExpression(Expression exp) strcpy(className, "__ecereClass_"); FullClassNameCat(className, string, true); // TODO: Verify this - MangleClassName(className); + //MangleClassName(className); DeclareClass(classSym, className); delete string; @@ -3456,14 +3453,12 @@ public void ProcessMemberAccess() } else if(external.type == declarationExternal) { - //currentClass = external.function._class; if(external.declaration) ProcessDeclaration(external.declaration); } else if(external.type == classExternal) { ClassDefinition _class = external._class; - //currentClass = external.symbol.registered; if(_class.definitions) { ClassDef def; diff --git a/compiler/libec/src/shortcuts.ec b/compiler/libec/src/shortcuts.ec index 15f5e83..2f76435 100644 --- a/compiler/libec/src/shortcuts.ec +++ b/compiler/libec/src/shortcuts.ec @@ -29,7 +29,7 @@ Declarator PlugDeclarator(Declarator decl, Declarator baseDecl) { for(; base.declarator && base.declarator.type != identifierDeclarator; base = base.declarator) { - printf(""); + //printf(""); } } if(baseDecl) diff --git a/ecere/src/com/containers/CustomAVLTree.ec b/ecere/src/com/containers/CustomAVLTree.ec index 4fdb978..f4773af 100644 --- a/ecere/src/com/containers/CustomAVLTree.ec +++ b/ecere/src/com/containers/CustomAVLTree.ec @@ -92,9 +92,22 @@ private: while(true) { // *** NEED COMPARISON OPERATOR SUPPORT HERE INVOKING OnCompare, AS WELL AS TYPE INFORMATION PASSED *** - int result = ((int (*)(void *, void *, void *))(void *)Tclass._vTbl[__ecereVMethodID_class_OnCompare])(Tclass, - ((Tclass.type == systemClass && !Tclass.byValueSystemClass) || Tclass.type == bitClass || Tclass.type == enumClass || Tclass.type == unitClass || Tclass.type == structClass) ? (((byte *)&(uint64)node.key) + __ENDIAN_PAD((Tclass.type == structClass) ? sizeof(void *) : Tclass.typeSize)) : (void *)node.key, - ((Tclass.type == systemClass && !Tclass.byValueSystemClass) || Tclass.type == bitClass || Tclass.type == enumClass || Tclass.type == unitClass || Tclass.type == structClass) ? (((byte *)&(uint64)key) + __ENDIAN_PAD((Tclass.type == structClass) ? sizeof(void *) : Tclass.typeSize)) : (void *)key); + int result; + byte * a, * b; + if((Tclass.type == systemClass && !Tclass.byValueSystemClass) || Tclass.type == bitClass || Tclass.type == enumClass || Tclass.type == unitClass || Tclass.type == structClass) + { + a = (byte *)&node.key; + b = (byte *)&key; + a += __ENDIAN_PAD((Tclass.type == structClass) ? sizeof(void *) : Tclass.typeSize); + b += __ENDIAN_PAD((Tclass.type == structClass) ? sizeof(void *) : Tclass.typeSize); + } + else + { + a = (byte *)node.key; + b = (byte *)key; + } + + result = ((int (*)(void *, void *, void *))(void *)Tclass._vTbl[__ecereVMethodID_class_OnCompare])(Tclass, a, b); if(!result) { return false; @@ -151,9 +164,26 @@ private: while(this) { // *** NEED COMPARISON OPERATOR SUPPORT HERE INVOKING OnCompare, AS WELL AS TYPE INFORMATION PASSED *** - int result = ((int (*)(void *, void *, void *))(void *)Tclass._vTbl[__ecereVMethodID_class_OnCompare])(Tclass, - ((Tclass.type == systemClass && !Tclass.byValueSystemClass) || Tclass.type == bitClass || Tclass.type == enumClass || Tclass.type == unitClass) ? (((byte *)&(uint64)key) + __ENDIAN_PAD(Tclass.typeSize)) : (void *)key, - ((Tclass.type == systemClass && !Tclass.byValueSystemClass) || Tclass.type == bitClass || Tclass.type == enumClass || Tclass.type == unitClass || Tclass.type == structClass) ? (((byte *)&(uint64)this.key) + __ENDIAN_PAD((Tclass.type == structClass) ? sizeof(void *) : Tclass.typeSize)) : (void *)this.key); + int result; + byte * a, * b; + if((Tclass.type == systemClass && !Tclass.byValueSystemClass) || Tclass.type == bitClass || Tclass.type == enumClass || Tclass.type == unitClass) + { + a = (byte *)&(uint64)key; + a += __ENDIAN_PAD(Tclass.typeSize); + } + else + a = (byte *)key; + + if((Tclass.type == systemClass && !Tclass.byValueSystemClass) || Tclass.type == bitClass || Tclass.type == enumClass || Tclass.type == unitClass || Tclass.type == structClass) + { + b = (byte *)&this.key; + b += __ENDIAN_PAD((Tclass.type == structClass) ? sizeof(void *) : Tclass.typeSize); + } + else + b = (byte *)this.key; + + result = ((int (*)(void *, void *, void *))(void *)Tclass._vTbl[__ecereVMethodID_class_OnCompare])(Tclass, a, b); + if(result < 0) this = left; else if(result > 0) diff --git a/ecere/src/com/instance.ec b/ecere/src/com/instance.ec index ce30d12..a64d80a 100644 --- a/ecere/src/com/instance.ec +++ b/ecere/src/com/instance.ec @@ -5512,7 +5512,7 @@ static void Application_Destructor(Application app) { if(app.parsedCommand) { - delete app.argv; + delete (void *)app.argv; delete app.parsedCommand; } } diff --git a/ecere/src/net/dcom.ec b/ecere/src/net/dcom.ec index 99afd3e..2ad8103 100644 --- a/ecere/src/net/dcom.ec +++ b/ecere/src/net/dcom.ec @@ -360,7 +360,7 @@ class DCOMClientThread : Thread if(!hasReturnValue) { - size = (uint)&((MethodReturnedPacket)0).args; + size = (uint)(uintptr)&((MethodReturnedPacket)0).args; packet = (MethodReturnedPacket)new0 byte[size]; packet.type = (DCOMPacketType)htoled((DCOMPacketType)dcom_MethodReturned); packet.size = size; @@ -742,7 +742,7 @@ public: bool result; CallAck ack = null; int callID = nextCallID++; - unsigned int size = (uint)&((CallMethodPacket)0).args + __ecereBuffer.size; // sizeof(class CallMethodPacket) + __ecereBuffer.size - 1; + unsigned int size = (uint)(uintptr)&((CallMethodPacket)0).args + __ecereBuffer.size; // sizeof(class CallMethodPacket) + __ecereBuffer.size - 1; CallMethodPacket packet = (CallMethodPacket)new0 byte[size]; packet.type = (DCOMPacketType)htoled((DCOMPacketType)dcom_CallMethod); packet.size = size; diff --git a/eda/libeda/src/EDA.ec b/eda/libeda/src/EDA.ec index 5cf05d7..1508ac5 100644 --- a/eda/libeda/src/EDA.ec +++ b/eda/libeda/src/EDA.ec @@ -266,7 +266,7 @@ public class Table class_no_expansion; Table prev, next; Database db; - OldList listRows { offset = (uint)&((Row)0).prev }; + OldList listRows { offset = (uint)(uintptr)&((Row)0).prev }; Row cachedIdRow; public: virtual const String GetName(); diff --git a/eda/libeda/src/gui/TableEditor.ec b/eda/libeda/src/gui/TableEditor.ec index 69fb3ce..ea57036 100644 --- a/eda/libeda/src/gui/TableEditor.ec +++ b/eda/libeda/src/gui/TableEditor.ec @@ -1949,18 +1949,18 @@ private: sEntry = wordEntry; lEntry = wordEntry; if(!wordEntry.words) wordEntry.words = IdList { }; - wordEntry.words.Add((Id)mainEntry); + wordEntry.words.Add((Id)(uintptr)mainEntry); } else if(!lEntry) { lEntry = wordEntry; if(!wordEntry.words) wordEntry.words = IdList { }; - wordEntry.words.Add((Id)sEntry); + wordEntry.words.Add((Id)(uintptr)sEntry); } else { if(!wordEntry.words) wordEntry.words = IdList { }; - wordEntry.words.Add((Id)lEntry); + wordEntry.words.Add((Id)(uintptr)lEntry); } if(!wordEntry.items) wordEntry.items = IdList { }; wordEntry.items.Add(id); @@ -2136,7 +2136,7 @@ struct WordEntryBinaryTree : BinaryTree { int c; for(c = 0; c> if(tempStrings) { - Array ts = tempStrings; while(it.Next()) { String s = it.data; @@ -965,7 +964,6 @@ bool eString_IsPathRelatedTo(char * path, char * to) { if(path[0] && to[0]) { - char rest[MAX_FILENAME]; char pathPart[MAX_FILENAME], pathRest[MAX_LOCATION] = ""; char toPart[MAX_FILENAME], toRest[MAX_LOCATION] = ""; SplitDirectory(path, pathPart, pathRest); @@ -1420,7 +1418,7 @@ class BuildTab : Tab String msg = PrintString($"Are you sure you wish to delete the ", config.name, $" configuration?"); if(MessageBox { type = okCancel, text = title, contents = msg }.Modal() == ok) { - Iterator it { configSelector.controls }; + //Iterator it { configSelector.controls }; ProjectConfig configToDelete = config; /* while(it.Next()) @@ -1719,10 +1717,8 @@ class BuildTab : Tab void CreateConfigButtons() { - SelectorButton commonButton; - // Create Config Buttons - commonButton = SelectorButton + SelectorButton { configSelector, master = this, text = $"Common", id = (int64)null; font = { font.faceName, font.size, true }; checked = true; @@ -1791,7 +1787,7 @@ class BuildTab : Tab { configButton.Activate(); configButton.checked = true; - ConfigClicked(configButton, 0, 0, (Modifiers)null); + ConfigClicked(configButton, 0, 0, 0); break; } } @@ -2247,7 +2243,6 @@ class BuilderTab : Tab void LoadSettings() { - bool disabled = strlen(((BuildTab)master).selectedPlatformName) > 0; OptionBox ob; for(ob = (OptionBox)firstSlave; ob; ob = (OptionBox)ob.nextSlave) if(eClass_IsDerived(ob._class, class(OptionBox))) diff --git a/ide/src/about.ec b/ide/src/about.ec index 9b3ccc4..336276a 100644 --- a/ide/src/about.ec +++ b/ide/src/about.ec @@ -41,6 +41,7 @@ class AboutIDE : Window versionCopyright.contents = message; delete message; delete shortVersion; + return true; } Label { this, text = $"Lead Architect and Developer", font = { $"Tahoma", 8.25f, bold = true }, position = { 16, 194 } }; diff --git a/ide/src/debugger/Debugger.ec b/ide/src/debugger/Debugger.ec index 958df50..5b8072d 100644 --- a/ide/src/debugger/Debugger.ec +++ b/ide/src/debugger/Debugger.ec @@ -95,13 +95,12 @@ static void __dpl2(const char * file, int line, const char ** channels, int chan if(chan || !channels) { char string[MAX_F_STRING]; - int len; char * time = PrintNow(); va_list args; //ide.outputView.debugBox.Logf(); Logf("%s %s:% 5d: %s%s", time, file, line, chan ? channels[channel] : "", chan && channels[channel][0] ? ": " : ""); va_start(args, object); - len = PrintStdArgsToBuffer(string, sizeof(string), object, args); + PrintStdArgsToBuffer(string, sizeof(string), object, args); Log(string); va_end(args); Log("\n"); @@ -147,7 +146,7 @@ public char * StripQuotes2(char * string, char * output) int d = 0; bool quoted = false, escaped = false; char ch; - for(c = 0; ch = string[c]; c++) + for(c = 0; (ch = string[c]); c++) { if(quoted) { @@ -707,8 +706,8 @@ class Debugger #define _ChangeUserAction(value) ChangeUserAction(__FILE__, __LINE__, value) void ChangeUserAction(const char * file, int line, DebuggerUserAction value) { - bool same = value == userAction; #if 0 + bool same = value == userAction; __dpl2(file, line, _dpct, dplchan::debuggerUserAction, 0, userAction, /*same ? " *** == *** " : */" -> ", value); #endif userAction = value; @@ -888,7 +887,6 @@ class Debugger _dpl2(_dpct, dplchan::debuggerCall, 0, "Debugger::GoToStackFrameLine(", stackLevel, ", ", askForLocation, ")"); if(ide) { - char filePath[MAX_LOCATION]; char sourceDir[MAX_LOCATION]; Frame frame; CodeEditor editor = null; @@ -984,7 +982,6 @@ class Debugger void HandleExit(char * reason, char * code) { - bool returnedExitCode = false; char verboseExitCode[128]; _dpl2(_dpct, dplchan::debuggerCall, 0, "Debugger::HandleExit(", reason, ", ", code, ")"); @@ -1317,7 +1314,6 @@ class Debugger bool SourceDirDialog(const char * title, const char * startDir, const char * test, char * sourceDir) { bool result; - bool retry; String srcDir = null; _dpl2(_dpct, dplchan::debuggerCall, 0, "Debugger::SourceDirDialog()"); @@ -2951,7 +2947,6 @@ class Debugger break; case memberSymbolErrorExp: { - Class _class; Expression memberExp = exp.member.exp; Identifier memberID = exp.member.member; Type type = memberExp.expType; @@ -2994,8 +2989,6 @@ class Debugger Identifier memberID = exp.member.member; Type type = memberExp.expType; Class _class = (type && memberID) ? (memberID && memberID.classSym) ? memberID.classSym.registered : ((type.kind == classType && type._class) ? type._class.registered : null) : null; - char string[1024]; - string[0] = 0; if(_class && memberID && memberID.string) snprintf(watchmsg, sizeof(watchmsg), $"Missing property evaluation for \"%s\" in class \"%s\"", memberID.string, _class.name); else @@ -3047,7 +3040,7 @@ class Debugger char value[4196]; //char temp[MAX_F_STRING * 32]; - ExpressionType evalError = dummyExp; + //ExpressionType evalError = dummyExp; /*if(exp.expType.kind == arrayType) sprintf(temp, "(char*)0x%x", exp.address); else @@ -3077,7 +3070,7 @@ class Debugger for(start = 0; !done && start + size <= 4096; start += size) { - String s = null; + byte * s = null; while(!done && !s) { // Try to read 256 bytes at a time, then half if that fails @@ -4139,7 +4132,7 @@ class Debugger { char path[MAX_LOCATION] = ""; char file[MAX_FILENAME] = ""; - bool symbolsLoaded = false; + //bool symbolsLoaded = false; DebugListItem item { }; //_dpl2(_dpct, dplchan::debuggerCall, 0, "Debugger::FGODetectLoadedLibraryForAddedProjectIssues()"); for(token : outTokens) @@ -4154,7 +4147,7 @@ class Debugger } else if(!strcmp(item.name, "symbols-loaded")) { - symbolsLoaded = (atoi(item.value) == 1); + //symbolsLoaded = (atoi(item.value) == 1); } else if(!strcmp(item.name, "shlib-info")) { @@ -4171,7 +4164,7 @@ class Debugger StripQuotes(subItem.value, path); MakeSystemPath(path); GetLastDirectory(path, file); - symbolsLoaded = true; + //symbolsLoaded = true; } } } @@ -5081,7 +5074,7 @@ class CodeLocation : struct char * temp; char loc[MAX_LOCATION]; strcpy(loc, location); - for(temp = loc; temp = strstr(temp, ":"); temp++) + for(temp = loc; (temp = strstr(temp, ":")); temp++) colon = temp; if(colon) { diff --git a/ide/src/debugger/GDBDialog.ec b/ide/src/debugger/GDBDialog.ec index f7cdad5..3908bd9 100644 --- a/ide/src/debugger/GDBDialog.ec +++ b/ide/src/debugger/GDBDialog.ec @@ -347,7 +347,6 @@ class GDBDialog : Window { if(lastCommand && lastCommand.outputs.first) { - int c; char * s, * t; int i, j, outTksCount, subTksCount; char * outTokens[3200], * subTokens[3200]; diff --git a/ide/src/debugger/debugFindCtx.ec b/ide/src/debugger/debugFindCtx.ec index 4b13f6f..285a055 100644 --- a/ide/src/debugger/debugFindCtx.ec +++ b/ide/src/debugger/debugFindCtx.ec @@ -13,13 +13,13 @@ static bool InsideIncl(Location loc, int line, int charPos) // (loc.end.line > line || (loc.end.line == line && loc.end.charPos >= charPos)); return !loc.start.included && loc.start.line <= line && loc.end.line >= line; } - +/* static bool Inside(Location loc, int line, int charPos) { //return !loc.start.included && (loc.start.line < line || (loc.start.line == line && loc.start.charPos < charPos)) && // (loc.end.line > line || (loc.end.line == line && loc.end.charPos > charPos)); return !loc.start.included && loc.start.line < line && loc.end.line > line; -} +}*/ static bool InsideEndIncl(Location loc, int line, int charPos) { @@ -70,6 +70,7 @@ static Identifier DebugFindCtxSpecifier(Specifier spec, int line, int charPos) if(idResult) return idResult; SetThisClass(oldThisClass); + SetTopContext(oldTopContext); } } break; @@ -103,6 +104,7 @@ static Identifier DebugFindCtxSpecifier(Specifier spec, int line, int charPos) idResult = DebugFindCtxStatement(def.propertyWatch.compound, line, charPos); if(idResult) return idResult; SetThisClass(oldThisClass); + SetTopContext(oldTopContext); } break; } @@ -227,8 +229,6 @@ Identifier DebugFindCtxExpression(Expression exp, int line, int charPos) case callExp: { int arg; - Type type = exp.call.exp.expType; - if(InsideIncl(&exp.call.exp.loc, line, charPos)) { idResult = DebugFindCtxExpression(exp.call.exp, line, charPos); @@ -708,9 +708,6 @@ static Identifier DebugFindCtxFunction(FunctionDefinition func, int line, int ch { Identifier idResult; - Identifier id = GetDeclId(func.declarator); - Symbol symbol = func.declarator.symbol; - Type type = symbol.type; Class oldThisClass = GetThisClass(); Context oldTopContext = GetTopContext(); @@ -756,7 +753,7 @@ static Identifier DebugFindCtxInstance(Instantiation inst, int line, int charPos Identifier idResult = null; Class oldThisClass = GetThisClass(); Symbol sym = inst._class ? FindClass(inst._class.name) : null; - bool insideSomething = false; + //bool insideSomething = false; bool insideBrackets; if(sym) @@ -794,9 +791,9 @@ static Identifier DebugFindCtxInstance(Instantiation inst, int line, int charPos if(InsideIncl(&init.loc, line, charPos)) { - if(InsideIncl(&init.loc, line, charPos)) + /*if(InsideIncl(&init.loc, line, charPos)) if(init.type == methodMembersInit) - insideSomething = true; + insideSomething = true;*/ if(init.type == methodMembersInit && InsideIncl(&init.function.loc, line, charPos)) { @@ -824,7 +821,6 @@ static Identifier DebugFindCtxClassFunction(ClassFunction func, int line, int ch { Identifier idResult; - Identifier id = GetDeclId(func.declarator); Symbol symbol = func.declarator ? func.declarator.symbol : null; Type type = symbol ? symbol.type : null; Class oldThisClass = GetThisClass(); @@ -867,6 +863,7 @@ static Identifier DebugFindCtxProperty(PropertyDef def, int line, int charPos) result = DebugFindCtxStatement(def.getStmt, line, charPos); if(result) return result; SetThisClass(oldThisClass); + SetTopContext(oldTopContext); } if(def.setStmt && InsideIncl(&def.setStmt.loc, line, charPos)) { @@ -876,6 +873,7 @@ static Identifier DebugFindCtxProperty(PropertyDef def, int line, int charPos) result = DebugFindCtxStatement(def.setStmt, line, charPos); if(result) return result; SetThisClass(oldThisClass); + SetTopContext(oldTopContext); } return null; } @@ -907,6 +905,7 @@ static Identifier DebugFindCtxClassDef(ClassDef def, int line, int charPos) if(idResult) return idResult; SetThisClass(oldThisClass); + SetTopContext(oldTopContext); } } break; @@ -944,6 +943,7 @@ static Identifier DebugFindCtxClassDef(ClassDef def, int line, int charPos) if(idResult) return idResult; SetThisClass(oldThisClass); + SetTopContext(oldTopContext); } break; } @@ -983,6 +983,7 @@ Identifier DebugFindCtxTree(OldList ast, int line, int charPos) External external; SetThisClass(null); + SetTopContext(GetGlobalContext()); if(ast != null) { for(external = ast.first; external; external = external.next) diff --git a/ide/src/debugger/debugTools.ec b/ide/src/debugger/debugTools.ec index 4235883..e77c03c 100644 --- a/ide/src/debugger/debugTools.ec +++ b/ide/src/debugger/debugTools.ec @@ -411,7 +411,6 @@ void DebugComputeExpression(Expression exp) Property prop = null; DataMember dataMember = null; - Method method = null; uint dataMemberOffset; if(!ident) @@ -1278,7 +1277,6 @@ void DebugComputeExpression(Expression exp) bool op2IsPointer = exp2.expType.kind == pointerType || exp2.expType.kind == arrayType; bool addressResult = !op1IsPointer || !op2IsPointer; uint size; - int op = exp.op.op; valid = true; if(op1IsPointer) size = ComputeTypeSize(exp1.expType.type); @@ -1786,7 +1784,7 @@ void DebugComputeExpression(Expression exp) case floatType: { float value; - float (*Get)(float) = (void *) (convertTo ? prop.Set : prop.Get); + float (*Get)(float) = (convertTo ? (void *)prop.Set : (void *)prop.Get); GetFloat(memberExp, &value); FreeExpContents(exp); @@ -1799,7 +1797,7 @@ void DebugComputeExpression(Expression exp) case doubleType: { double value; - double (*Get)(double) = (void *) (convertTo ? prop.Set : prop.Get); + double (*Get)(double) = (convertTo ? (void *)prop.Set : (void *)prop.Get); GetDouble(memberExp, &value); FreeExpContents(exp); @@ -2004,7 +2002,7 @@ void DebugComputeExpression(Expression exp) } else if(_class.type == structClass) { - char * value = (memberExp.type == instanceExp ) ? memberExp.instance.data : null; + byte * value = (memberExp.type == instanceExp ) ? memberExp.instance.data : null; if(value) memberExp.instance.data = null; @@ -2107,7 +2105,6 @@ void DebugComputeExpression(Expression exp) char format; int size; Expression expNew; - TypeKind kind = dummyType; Type dataType = member.dataType; if(!dataType) @@ -2280,7 +2277,6 @@ void DebugComputeExpression(Expression exp) int size = memberType.size; Expression expNew; Type dataType = memberType; - TypeKind kind = dummyType; if(dataType.kind == classType && dataType._class.registered && (dataType._class.registered.type == enumClass || dataType._class.registered.type == bitClass || dataType._class.registered.type == unitClass)) @@ -2866,7 +2862,7 @@ void ApplyUnitConverters(Expression exp) { if(convert) { - float (*convertFn)(float) = (void *)(useGet ? convert.Get : convert.Set); + float (*convertFn)(float) = (useGet ? (void *)convert.Get : (void *)convert.Set); if(convertFn) value = convertFn(value); } @@ -2897,7 +2893,7 @@ void ApplyUnitConverters(Expression exp) { if(convert) { - double (*convertFn)(double) = (void *)(useGet ? convert.Get : convert.Set); + double (*convertFn)(double) = (useGet ? (void *)convert.Get : (void *)convert.Set); if(convertFn) value = convertFn(value); } diff --git a/ide/src/debugger/process.ec b/ide/src/debugger/process.ec index 6015fe2..d84ae37 100644 --- a/ide/src/debugger/process.ec +++ b/ide/src/debugger/process.ec @@ -51,7 +51,7 @@ import "ide" #ifdef __WIN32__ static bool CALLBACK EnumWindowsBringToTop(HWND hwnd, LPARAM lParam) { - int pid; + DWORD pid; GetWindowThreadProcessId(hwnd, &pid); if(pid == lParam) BringWindowToTop(hwnd); @@ -60,7 +60,7 @@ static bool CALLBACK EnumWindowsBringToTop(HWND hwnd, LPARAM lParam) static bool CALLBACK EnumWindowsSetForeground(HWND hwnd, LPARAM lParam) { - int pid; + DWORD pid; GetWindowThreadProcessId(hwnd, &pid); if(pid == lParam) { diff --git a/ide/src/designer/CodeEditor.ec b/ide/src/designer/CodeEditor.ec index 6fd019e..6cd1c20 100644 --- a/ide/src/designer/CodeEditor.ec +++ b/ide/src/designer/CodeEditor.ec @@ -681,7 +681,7 @@ class CodeEditor : Window OldList * ast; Context globalContext { }; - OldList excludedSymbols { offset = (uint)&((Symbol)0).left }; + OldList excludedSymbols { offset = (uint)(uintptr)&((Symbol)0).left }; OldList defines; OldList imports; @@ -796,7 +796,6 @@ class CodeEditor : Window hide = true; else { - const char * buffer = membersLine.text; int c; if(charPos - 1 < membersLoc.start.charPos) @@ -2383,7 +2382,7 @@ class CodeEditor : Window if(editBox.syntaxHighlighting && fileName && ide.projectView) { - bool error, bpOnCursor, bpOnTopFrame, breakpointEnabled[128]; + bool error, bpOnTopFrame, breakpointEnabled[128]; int lineCursor, lineTopFrame, breakpointLines[128]; int count, i, lineH, boxH, scrollY; //, firstLine; firstLine = editBox.firstLine; Debugger debugger = ide.debugger; @@ -2393,7 +2392,7 @@ class CodeEditor : Window scrollY = editBox.scroll.y; displaySystem.FontExtent(editBox.font.font, " ", 1, null, &lineH); - bpOnCursor = bpOnTopFrame = false; + bpOnTopFrame = false; count = debugger.GetMarginIconsLineNumbers(fileName, breakpointLines, breakpointEnabled, 128, &error, &lineCursor, &lineTopFrame); if(count) { @@ -2402,8 +2401,6 @@ class CodeEditor : Window if(breakpointLines[i] == lineCursor || breakpointLines[i] == lineTopFrame) { bmpRes = breakpointEnabled[i] ? ide.bmpBpHalf : ide.bmpBpHalfDisabled; - if(breakpointLines[i] == lineCursor) - bpOnCursor = true; if(breakpointLines[i] == lineTopFrame) bpOnTopFrame = true; } @@ -2548,7 +2545,6 @@ class CodeEditor : Window CodeEditor() { CodeObjectType c; - ProjectView projectView = ide.projectView; globalData.classes.CompareKey = (void *)BinaryTree::CompareString; globalData.defines.CompareKey = (void *)BinaryTree::CompareString; @@ -2759,7 +2755,7 @@ class CodeEditor : Window next = _class.next; - for(;object = _class.instances.first;) + while((object = _class.instances.first)) { if(object.instance) { @@ -3092,7 +3088,6 @@ class CodeEditor : Window classDefinition = _class; oClass = classObject; }; - Symbol symbol; classes.Add(classObject); incref instance; @@ -3559,7 +3554,6 @@ class CodeEditor : Window if(selectedName) { ObjectInfo check; - int pos = 0; for(check = this.oClass.instances.first; check; check = check.next) { @@ -3884,9 +3878,7 @@ class CodeEditor : Window Window control = (Window)object.instance; bool prev = false; bool methodPresent = false; - Class _class; bool lastIsMethod = true; - ObjectInfo classObject = object.oClass; if(inst) { @@ -3968,7 +3960,7 @@ class CodeEditor : Window { int count = 0; int toDelete = 0; - int toAdd = 0; + //int toAdd = 0; f.Seek(-1, current); DeleteJunkBefore(f, position, &position); @@ -3994,8 +3986,8 @@ class CodeEditor : Window toDelete += count - 6; count = 6; } - else - toAdd = 6 - count; + /*else + toAdd = 6 - count;*/ break; } } @@ -4144,7 +4136,6 @@ class CodeEditor : Window if(!keptMember || !members.next) { char ch = 0; - int count = 0; if(keptMember && lastKept != members.dataMembers->last) { @@ -4605,7 +4596,6 @@ class CodeEditor : Window for(classObject = classes.first; classObject; classObject = classObject.next) { - Class _class; ClassDefinition classDef = classObject.classDefinition; Class regClass = eSystem_FindClass(this.privateModule, ((Specifier)classDef.baseSpecs->first).name); Instance test; @@ -4724,7 +4714,6 @@ class CodeEditor : Window if(!keptMember) { char ch = 0; - int count = 0; f.Seek(def.loc.end.pos - position - 1, current); f.Getc(&ch); @@ -5815,8 +5804,6 @@ class CodeEditor : Window for(_class = whatClass; _class && _class.type != systemClass; _class = _class.base) { Method method; - Property prop; - DataMember member; for(method = (Method)_class.methods.first; method; method = (Method)((BTNode)method).next) { @@ -5854,7 +5841,6 @@ class CodeEditor : Window for(_class = whatClass; _class /*&& _class.type != systemClass*/; _class = _class.base) { Method method; - Property prop; DataMember member; for(method = (Method)_class.methods.first; method; method = (Method)((BTNode)method).next) @@ -5924,8 +5910,6 @@ class CodeEditor : Window { if(type && (type.kind == classType || type.kind == structType || type.kind == unionType)) { - Class _class; - if(type.kind == classType) { if(type._class) @@ -5981,14 +5965,14 @@ class CodeEditor : Window for(link = (BTNamedLink)nameSpace.defines.first; link; link = (BTNamedLink)((BTNode)link).next ) { - DefinedExpression definedExp = link.data; + //DefinedExpression definedExp = link.data; DataRow row = membersList.AddString(link /*definedExp*/.name); row.icon = icons[typeData]; } for(link = (BTNamedLink)nameSpace.functions.first; link; link = (BTNamedLink)((BTNode)link).next) { - GlobalFunction function = link.data; + //GlobalFunction function = link.data; DataRow row = membersList.AddString(link /*function*/.name); row.icon = icons[typeMethod]; } @@ -6336,7 +6320,7 @@ class CodeEditor : Window void OverrideVirtualFunction(ClassFunction function, Method method, Class _class, bool isInstance, bool extraIndent) { EditBoxStream f { editBox = editBox }; - uint position = 0; + int position = 0; EditLine l1, l2; int x1,y1,x2,y2; @@ -6444,7 +6428,6 @@ class CodeEditor : Window { bool didOverride = false; EditLine line = editBox.line; - const char * text = line.text; int lineNum, charPos; Expression exp = null; EditLine l1, l2; @@ -6821,10 +6804,7 @@ class CodeEditor : Window void InvokeParameters(bool exact, bool reposition, bool caretMove) { - EditLine line = editBox.line; - const char * text = line.text; int lineNum, charPos; - Expression exp = null; EditLine l1, l2; int x1,y1, x2,y2; diff --git a/ide/src/designer/CodeObject.ec b/ide/src/designer/CodeObject.ec index c0a6c81..a5ff035 100644 --- a/ide/src/designer/CodeObject.ec +++ b/ide/src/designer/CodeObject.ec @@ -64,8 +64,6 @@ class CodeObject : struct const char * text = function ? function.declarator.symbol.string : ""; int len = strlen(text); int start; - if(!text[0]) - printf(""); surface.TextExtent(name, nameLen, &nameW, null); surface.TextExtent(text, len, &w, null); @@ -97,7 +95,7 @@ class CodeObject : struct delete attachBtn; } - while(compatible = this.compatible.first) + while((compatible = this.compatible.first)) { ClassFunction function = compatible.data; diff --git a/ide/src/designer/Designer.ec b/ide/src/designer/Designer.ec index ebf1239..1868f35 100644 --- a/ide/src/designer/Designer.ec +++ b/ide/src/designer/Designer.ec @@ -42,7 +42,6 @@ class Designer : DesignerBase void AddDefaultMethod(Instance instance, Instance classInstance) { Class _class = instance._class; - int minID = MAXINT; Method defaultMethod = null; for( ; _class; _class = _class.base) diff --git a/ide/src/designer/Sheet.ec b/ide/src/designer/Sheet.ec index 06d30d4..88bd7f9 100644 --- a/ide/src/designer/Sheet.ec +++ b/ide/src/designer/Sheet.ec @@ -2,10 +2,10 @@ import "ide" import "CodeObject" -static void UnusedFunction() +static __attribute__((unused)) void UnusedFunction() { - int a; - Module b; + int a = 0; + Module b = 0; a.OnGetString(0,0,0); a.OnFree(); a.OnCopy(null); @@ -301,7 +301,7 @@ class Sheet : Window bool NotifySelect(DropBox control, DataRow row, Modifiers keyFlags) { - ObjectInfo selected = (ObjectInfo)(row ? row.tag : null); + ObjectInfo selected = (ObjectInfo)(row ? (void *)(intptr)row.tag : null); ToolBox toolBox = ((IDEWorkSpace)parent).toolBox; if(codeEditor && selected) @@ -326,7 +326,6 @@ class Sheet : Window if(selected && selected.instance && codeEditor) { Class _class; - int c = 0; int rowHeight = methods.rowHeight; propertyValue.userData = (void *)selected.instance; @@ -507,7 +506,6 @@ class Sheet : Window CodeObject object = control.GetData(methodName); Menu menu { }; PopupMenu popupMenu; - MenuItem item; if(object.overriden == 0) { MenuItem { menu, $"Override", o, enter, bold = true, NotifySelect = OverrideMethodSelected }; @@ -769,7 +767,6 @@ class Sheet : Window // Fill up the properties while(_class != selected.instance._class) { - BitMember bitMember = null; Class lastClass = _class; Property propIt; @@ -1199,14 +1196,12 @@ class Sheet : Window bool ReattachMethodSelected(MenuItem selection, Modifiers mods) { ClassFunction function = (ClassFunction)selection.id; - CodeObject object = methods.GetData(methodName); codeEditor.ReAttachMethod(attachMethod, function); return true; } bool OverrideMethodSelected(MenuItem selection, Modifiers mods) { - ClassFunction function = (ClassFunction)selection.id; CodeObject object = methods.GetData(methodName); if(object) codeEditor.AddMethod(object.method); @@ -1215,7 +1210,6 @@ class Sheet : Window bool GotoMethodSelected(MenuItem selection, Modifiers mods) { - ClassFunction function = (ClassFunction)selection.id; CodeObject object = methods.GetData(methodName); if(object) codeEditor.GoToMethod(object.method.name); @@ -1224,7 +1218,6 @@ class Sheet : Window bool DetachMethodSelected(MenuItem selection, Modifiers mods) { - ClassFunction function = (ClassFunction)selection.id; CodeObject object = methods.GetData(methodName); if(object) codeEditor.DetachMethod(object.method, object.function, object.overriden); @@ -1233,7 +1226,6 @@ class Sheet : Window bool DeleteMethodSelected(MenuItem selection, Modifiers mods) { - ClassFunction function = (ClassFunction)selection.id; CodeObject object = methods.GetData(methodName); if(object) object.deleteBtn.NotifyClicked(this, object.deleteBtn, 0,0,0); @@ -1250,8 +1242,6 @@ class Sheet : Window void CreateButtons(CodeObject codeObject, int y, int h, DataRow row) { - BitmapResource bitmap; - if(codeObject.overriden) { if(codeObject.overriden == 1) @@ -1568,7 +1558,7 @@ public: } else { - bool freeDataForm = false, freeDataTest = false; + //bool freeDataForm = false, freeDataTest = false; // Because contents property is broken for mutiline EditBox at the moment if(!strcmp(prop.name, "contents") && !strcmp(prop._class.name, "EditBox") && ((EditBox)object).multiLine) { @@ -1762,7 +1752,6 @@ public: if(this.subMember || this.subProperty) { - Class _class; Instance current = (Instance)((void *(*)(void *))(void *)prop.Get)(object); propObject = valueData.p = eInstance_New(dataType); CopyInstanceData(dataType, propObject, current); diff --git a/ide/src/designer/ToolBox.ec b/ide/src/designer/ToolBox.ec index e53bea4..8d2fd6a 100644 --- a/ide/src/designer/ToolBox.ec +++ b/ide/src/designer/ToolBox.ec @@ -2,9 +2,9 @@ import "ide" extern int __ecereVMethodID___ecereNameSpace__ecere__gui__Window_OnLeftButtonUp; -static void Dummy() +static __attribute__((unused)) void Dummy() { - Window a; + Window a = 0; a.OnLeftButtonUp(0,0,0); } diff --git a/ide/src/designer/findCtx.ec b/ide/src/designer/findCtx.ec index 14918df..1eb73a3 100644 --- a/ide/src/designer/findCtx.ec +++ b/ide/src/designer/findCtx.ec @@ -71,6 +71,7 @@ static Identifier FindCtxSpecifier(Specifier spec, int line, int charPos) if(idResult) return idResult; SetThisClass(oldThisClass); + SetTopContext(oldTopContext); } } break; @@ -104,6 +105,7 @@ static Identifier FindCtxSpecifier(Specifier spec, int line, int charPos) idResult = FindCtxStatement(def.propertyWatch.compound, line, charPos); if(idResult) return idResult; SetThisClass(oldThisClass); + SetTopContext(oldTopContext); } break; } @@ -738,9 +740,6 @@ static Identifier FindCtxFunction(FunctionDefinition func, int line, int charPos { Identifier idResult; - Identifier id = GetDeclId(func.declarator); - Symbol symbol = func.declarator.symbol; - Type type = symbol.type; Class oldThisClass = GetThisClass(); Context oldTopContext = GetTopContext(); @@ -941,7 +940,6 @@ static Identifier FindCtxClassFunction(ClassFunction func, int line, int charPos { Identifier idResult; - Identifier id = GetDeclId(func.declarator); Symbol symbol = func.declarator ? func.declarator.symbol : null; Type type = symbol ? symbol.type : null; Class oldThisClass = GetThisClass(); @@ -1006,6 +1004,7 @@ static Identifier FindCtxProperty(PropertyDef def, int line, int charPos) result = FindCtxStatement(def.getStmt, line, charPos); if(result) return result; SetThisClass(oldThisClass); + SetTopContext(oldTopContext); } if(def.setStmt && Inside(&def.setStmt.loc, line, charPos)) { @@ -1015,6 +1014,7 @@ static Identifier FindCtxProperty(PropertyDef def, int line, int charPos) result = FindCtxStatement(def.setStmt, line, charPos); if(result) return result; SetThisClass(oldThisClass); + SetTopContext(oldTopContext); } return null; } @@ -1046,6 +1046,7 @@ static Identifier FindCtxClassDef(ClassDef def, int line, int charPos) if(idResult) return idResult; SetThisClass(oldThisClass); + SetTopContext(oldTopContext); } } break; @@ -1081,6 +1082,7 @@ static Identifier FindCtxClassDef(ClassDef def, int line, int charPos) idResult = FindCtxStatement(def.propertyWatch.compound, line, charPos); if(idResult) return idResult; SetThisClass(oldThisClass); + SetTopContext(oldTopContext); } break; } @@ -1109,7 +1111,7 @@ static Identifier FindCtxClass(ClassDefinition _class, int line, int charPos) } } } - if(!insideSomething && line > _class.blockStart.start.line || (line == _class.blockStart.start.line && charPos >= _class.blockStart.start.charPos) ) + if(!insideSomething && (line > _class.blockStart.start.line || (line == _class.blockStart.start.line && charPos >= _class.blockStart.start.charPos)) ) { insideClass = _class.symbol.registered; return (void *)-1; @@ -1131,6 +1133,7 @@ Identifier FindCtxTree(OldList ast, int line, int charPos) insideClass = null; ctxInsideExp = null; SetThisClass(null); + SetTopContext(GetGlobalContext()); insideFunction = null; insideInstance = false; isAfterEqual = false; diff --git a/ide/src/designer/findExp.ec b/ide/src/designer/findExp.ec index 8b9e971..ee7ed76 100644 --- a/ide/src/designer/findExp.ec +++ b/ide/src/designer/findExp.ec @@ -404,7 +404,6 @@ static Expression FindExpStatement(Statement stmt, int line, int charPos) case fireWatchersStmt: case stopWatchingStmt: { - Identifier _watch; if(stmt._watch.watcher && Inside(&stmt._watch.watcher.loc, line, charPos)) { expResult = FindExpExpression(stmt._watch.watcher, line, charPos); @@ -523,6 +522,7 @@ static Expression FindExpSpecifier(Specifier spec, int line, int charPos) if(expResult) return expResult; SetThisClass(oldThisClass); + SetTopContext(oldTopContext); } } break; @@ -556,6 +556,7 @@ static Expression FindExpSpecifier(Specifier spec, int line, int charPos) expResult = FindExpStatement(def.propertyWatch.compound, line, charPos); if(expResult) return expResult; SetThisClass(oldThisClass); + SetTopContext(oldTopContext); } break; } @@ -634,9 +635,6 @@ static Expression FindExpFunction(FunctionDefinition func, int line, int charPos { Expression result; - Identifier id = GetDeclId(func.declarator); - Symbol symbol = func.declarator.symbol; - Type type = symbol.type; Class oldThisClass = GetThisClass(); Context oldTopContext = GetTopContext(); @@ -707,7 +705,6 @@ static Expression FindExpClassFunction(ClassFunction func, int line, int charPos { Expression result; - Identifier id = GetDeclId(func.declarator); Symbol symbol = func.declarator ? func.declarator.symbol : null; Type type = symbol?symbol.type:null; Class oldThisClass = GetThisClass(); @@ -820,6 +817,8 @@ Expression FindExpTree(OldList ast, int line, int charPos) { Expression expResult; External external; + SetThisClass(null); + SetTopContext(GetGlobalContext()); if(ast != null) { for(external = ast.first; external; external = external.next) diff --git a/ide/src/designer/findParams.ec b/ide/src/designer/findParams.ec index 3a120ee..8cbad12 100644 --- a/ide/src/designer/findParams.ec +++ b/ide/src/designer/findParams.ec @@ -29,11 +29,11 @@ static bool Inside(Location loc, int line, int charPos) (loc.end.line > line || (loc.end.line == line && loc.end.charPos > charPos)); } -static bool InsideEndIncl(Location loc, int line, int charPos) +/*static bool InsideEndIncl(Location loc, int line, int charPos) { return !loc.start.included && (loc.start.line < line || (loc.start.line == line && loc.start.charPos < charPos)) && (loc.end.line > line || (loc.end.line == line && loc.end.charPos >= charPos)); -} +}*/ Identifier FindParamsIdentifier(Identifier id, int line, int charPos) { @@ -611,6 +611,7 @@ static Identifier FindParamsSpecifier(Specifier spec, int line, int charPos) if(idResult) return idResult; SetThisClass(oldThisClass); + SetTopContext(oldTopContext); } } break; @@ -644,6 +645,7 @@ static Identifier FindParamsSpecifier(Specifier spec, int line, int charPos) idResult = FindParamsStatement(def.propertyWatch.compound, line, charPos); if(idResult) return idResult; SetThisClass(oldThisClass); + SetTopContext(oldTopContext); } break; } @@ -722,9 +724,6 @@ static Identifier FindParamsFunction(FunctionDefinition func, int line, int char { Identifier idResult; - Identifier id = GetDeclId(func.declarator); - Symbol symbol = func.declarator.symbol; - Type type = symbol.type; Class oldThisClass = GetThisClass(); Context oldTopContext = GetTopContext(); @@ -934,7 +933,6 @@ static Identifier FindParamsClassFunction(ClassFunction func, int line, int char { Identifier idResult; - Identifier id = GetDeclId(func.declarator); Symbol symbol = func.declarator ? func.declarator.symbol : null; Type type = symbol ? symbol.type : null; Class oldThisClass = GetThisClass(); @@ -962,6 +960,7 @@ static Identifier FindParamsProperty(PropertyDef def, int line, int charPos) result = FindParamsStatement(def.getStmt, line, charPos); if(result) return result; SetThisClass(oldThisClass); + SetTopContext(oldTopContext); } if(def.setStmt && Inside(&def.setStmt.loc, line, charPos)) { @@ -971,6 +970,7 @@ static Identifier FindParamsProperty(PropertyDef def, int line, int charPos) result = FindParamsStatement(def.setStmt, line, charPos); if(result) return result; SetThisClass(oldThisClass); + SetTopContext(oldTopContext); } return null; } @@ -1002,6 +1002,7 @@ static Identifier FindParamsClassDef(ClassDef def, int line, int charPos) if(idResult) return idResult; SetThisClass(oldThisClass); + SetTopContext(oldTopContext); } } break; @@ -1034,6 +1035,7 @@ static Identifier FindParamsClassDef(ClassDef def, int line, int charPos) idResult = FindParamsStatement(def.propertyWatch.compound, line, charPos); if(idResult) return idResult; SetThisClass(oldThisClass); + SetTopContext(oldTopContext); } break; } @@ -1082,6 +1084,7 @@ Identifier FindParamsTree(OldList ast, int line, int charPos) insideClass = null; paramsInsideExp = null; SetThisClass(null); + SetTopContext(GetGlobalContext()); paramsID = -1; functionType = null; instanceType = null; diff --git a/ide/src/dialogs/CompilersDetectionDialog.ec b/ide/src/dialogs/CompilersDetectionDialog.ec index 222abe6..7cf99dc 100644 --- a/ide/src/dialogs/CompilersDetectionDialog.ec +++ b/ide/src/dialogs/CompilersDetectionDialog.ec @@ -31,7 +31,7 @@ class CompilersDetectionDialog : Window char compilerPath[MAX_LOCATION]; compilerPath[0] = '\0'; GetEnvironment(compilerSignatureEnvVars[selectedCompilerType], compilerPath, sizeof(compilerPath)); - if(compilerPath && compilerPath[0] && FileExists(compilerPath).isDirectory) + if(compilerPath[0] && FileExists(compilerPath).isDirectory) { PathCat(compilerPath, "vsvars32.bat"); // is this file name constant and this file always present? if(FileExists(compilerPath).isFile) @@ -155,7 +155,7 @@ class CompilersDetectionDialog : Window { compilerPath[0] = '\0'; GetEnvironment(varName, compilerPath, sizeof(compilerPath)); - if(compilerPath && compilerPath[0] && FileExists(compilerPath).isDirectory) + if(compilerPath[0] && FileExists(compilerPath).isDirectory) { PathCat(compilerPath, "vsvars32.bat"); // is this file name constant and this file always present? if(FileExists(compilerPath).isFile) diff --git a/ide/src/dialogs/FindInFilesDialog.ec b/ide/src/dialogs/FindInFilesDialog.ec index 42cff39..06eecb2 100644 --- a/ide/src/dialogs/FindInFilesDialog.ec +++ b/ide/src/dialogs/FindInFilesDialog.ec @@ -446,7 +446,6 @@ private: bool OnPostCreate() { - bool disabled; bool withWorkspace = ide.workspace != null; DataRow row; if(!inDirectoryRow) @@ -507,8 +506,6 @@ private: void SearchStart() { - char text[2048]; - searchThread.active = true; searchThread.project = null; searchThread.projectNode = null; @@ -528,7 +525,7 @@ private: { searchThread.mode = project; searchThread.project = (Project)findIn.currentRow.tag; - searchThread.projectNode = (ProjectNode)(findWherePrjNode.currentRow ? findWherePrjNode.currentRow.tag : null); + searchThread.projectNode = (ProjectNode)(findWherePrjNode.currentRow ? (void *)(intptr)findWherePrjNode.currentRow.tag : null); } //searchThread.nameMatchCase = nameMatchCase.checked; //searchThread.nameWholeWord = nameWholeWord.checked; @@ -649,7 +646,7 @@ private: unsigned int Main() { - int frame, treeTop = 0; + int frame; int globalFindCount = 0, filesSearchedCount = 0, filesMatchedCount = 0, dirsMatchedCount = 0; //double lastTime = GetTime(); SearchStackFrame stack[stackSize]; @@ -826,8 +823,6 @@ private: } else if(mode == workspace || mode == project) { - int len; - char path[MAX_LOCATION]; bool firtIteration = true; Project prj = project; ProjectNode stack[1024]; @@ -1078,8 +1073,6 @@ private: while(f.GetLine(line, 65536/* should there be a - 1 here? */) && !abortNow) { int col = 0; - char * find = null; - int inLineFindCount = 0; if(SearchString(line, 0, contentCriteria, contentMatchCase, contentWholeWord) && !abortNow) { int lastLineNum = 0; diff --git a/ide/src/dialogs/GlobalSettingsDialog.ec b/ide/src/dialogs/GlobalSettingsDialog.ec index c7cec7f..9521fac 100644 --- a/ide/src/dialogs/GlobalSettingsDialog.ec +++ b/ide/src/dialogs/GlobalSettingsDialog.ec @@ -71,8 +71,6 @@ class GlobalSettingsDialog : Window bool editorSettingsChanged = false; bool compilerSettingsChanged = false; bool projectOptionsChanged = false; - bool workspaceOptionsChanged = false; - if(editorTab.modifiedDocument) { if(editorTab.useFreeCaret.checked != ideSettings.useFreeCaret || @@ -88,7 +86,6 @@ class GlobalSettingsDialog : Window if(compilersTab.modifiedDocument) { - Workspace workspace = ide.workspace; if(strcmp(compilersTab.compilerConfigsDir.path, ideSettings.compilerConfigsDir)) ideSettings.compilerConfigsDir = compilersTab.compilerConfigsDir.path; ideSettings.compilerConfigs.Free(); @@ -119,7 +116,6 @@ class GlobalSettingsDialog : Window if(!ideSettings.defaultCompiler || strcmp(row.string, ideSettings.defaultCompiler)) { ideSettings.defaultCompiler = row.string; - workspaceOptionsChanged = true; } } } diff --git a/ide/src/dialogs/NewProjectDialog.ec b/ide/src/dialogs/NewProjectDialog.ec index a495934..bbdb833 100644 --- a/ide/src/dialogs/NewProjectDialog.ec +++ b/ide/src/dialogs/NewProjectDialog.ec @@ -481,7 +481,6 @@ class QuickProjectDialog : Window projectWindow = ide.CreateProjectView(workspace, filePath); { - char extension[MAX_EXTENSION]; Window document = null; for(document = ide.firstChild; document; document = document.next) { diff --git a/ide/src/documents/PictureEdit.ec b/ide/src/documents/PictureEdit.ec index ac8b790..985f2c8 100644 --- a/ide/src/documents/PictureEdit.ec +++ b/ide/src/documents/PictureEdit.ec @@ -63,7 +63,7 @@ class PictureEdit : Window { if(bitmap) { - ColorAlpha * palette = bitmap.Quantize(0, 255); + //ColorAlpha * palette = bitmap.Quantize(0, 255); bitmapNotIndexed = { }; bitmapNotIndexed.Copy(bitmap); bitmapNotIndexed.Convert(null, pixelFormat888, null); diff --git a/ide/src/ide.ec b/ide/src/ide.ec index 67c07a5..f31cb30 100644 --- a/ide/src/ide.ec +++ b/ide/src/ide.ec @@ -523,7 +523,7 @@ class IDEWorkSpace : Window if(activeFrame) { bool error; - int lineCursor, lineTopFrame, activeThread, hitThread; + int lineCursor, lineTopFrame; int lineH, scrollY, boxH; BitmapResource bmp; Breakpoint bp = null; @@ -531,8 +531,8 @@ class IDEWorkSpace : Window boxH = clientSize.h; scrollY = editBox.scroll.y; displaySystem.FontExtent(editBox.font.font, " ", 1, null, &lineH); - activeThread = debugger.activeThread; - hitThread = debugger.hitThread; + //activeThread = debugger.activeThread; + //hitThread = debugger.hitThread; debugger.GetCallStackCursorLine(&error, &lineCursor, &lineTopFrame); // TODO: improve bp drawing... it should be visible even if it's not on the activeFrame @@ -1757,7 +1757,6 @@ class IDEWorkSpace : Window if(this) { Window child; - bool inDebugMode = debugger.isActive; bool callStackVisible = expand ? false : callStackView.visible; bool threadsVisible = expand ? false : threadsView.visible; bool watchesVisible = expand ? false : watchesView.visible; @@ -2125,7 +2124,6 @@ class IDEWorkSpace : Window bool running = isDebuggerRunning; bool stopped = isDebuggerStopped; bool active = debugger.isActive; - bool noBreakpointToggle = !project; bool isNotRunning = unavailable || !running; bool isNotNotRunning = unavailable || running; @@ -2288,7 +2286,6 @@ class IDEWorkSpace : Window { for(;;) { - Project project; Workspace workspace = null; if(FileExists(filePath)) @@ -2304,12 +2301,10 @@ class IDEWorkSpace : Window workspace = LoadWorkspace(filePath, null); else return null; - //project = LoadProject(filePath, null); } if(workspace) { - char absolutePath[MAX_LOCATION]; CreateProjectView(workspace, filePath); document = projectView; @@ -3419,7 +3414,6 @@ class IDEWorkSpace : Window IDEWorkSpace() { // Graphics Driver Menu - int c; /* app.currentSkin.selectionColor = selectionColor; @@ -3472,7 +3466,6 @@ class IDEWorkSpace : Window Menu recentProjects = fileMenu.FindMenu($"Recent Projects"); char * itemPath = new char[MAX_LOCATION]; char * itemName = new char[MAX_LOCATION+4]; - MenuItem item; recentFiles.Clear(); c = 0; diff --git a/ide/src/panels/BreakpointsView.ec b/ide/src/panels/BreakpointsView.ec index b445c1a..a17fe41 100644 --- a/ide/src/panels/BreakpointsView.ec +++ b/ide/src/panels/BreakpointsView.ec @@ -155,8 +155,8 @@ class BreakpointsView : Window bool error; int lineActive, lineUser; int lineH; - int scrollY = listBox.scroll.y; - int boxH = clientSize.h; + //int scrollY = listBox.scroll.y; + //int boxH = clientSize.h; displaySystem.FontExtent(listBox.font.font, " ", 1, null, &lineH); //Window::OnRedraw(surface); @@ -194,7 +194,6 @@ class BreakpointsView : Window void AddBreakpoint(Breakpoint bp) { - char string[32]; DataRow row = listBox.AddRow(); row.tag = (int64)bp; bp.row = row; diff --git a/ide/src/project/Project.ec b/ide/src/project/Project.ec index 5d05fbe..cbaf21e 100644 --- a/ide/src/project/Project.ec +++ b/ide/src/project/Project.ec @@ -1479,7 +1479,7 @@ private: bool loggedALine = false; int lenMakeCommand = strlen(compiler.makeCommand); int testLen = 0; - const char * t, * s; + const char * t, * s, * s2; char moduleName[MAX_FILENAME]; const char * gnuToolchainPrefix = compiler.gnuToolchainPrefix ? compiler.gnuToolchainPrefix : ""; @@ -1547,7 +1547,7 @@ private: const char * inFileIncludedFrom = strstr(line, stringInFileIncludedFrom); const char * from = strstr(line, stringFrom); test.copyLenSingleBlankReplTrim(line, ' ', true, testLen); - if((t = strstr(line, (s=": recipe for target"))) && (t = strstr(t+strlen(s), (s=" failed"))) && (t+strlen(s))[0] == '\0') + if((t = strstr(line, (s=": recipe for target"))) && (t = strstr(t+strlen(s), (s2 = " failed"))) && (t+strlen(s2))[0] == '\0') ; // ignore this new gnu make error but what is it about? else if(strstr(line, compiler.makeCommand) == line && line[lenMakeCommand] == ':') { @@ -1650,7 +1650,7 @@ private: if(module) module++; if(module) { - byte * tokens[1]; + char * tokens[1]; char * dashF = strstr(module, "-F "); if(dashF) { @@ -1801,7 +1801,7 @@ private: { char fullModuleName[MAX_LOCATION]; FileAttribs found = 0; - Project foundProject = this; + //Project foundProject = this; if(moduleName[0]) { char * loc = strstr(moduleName, ":"); @@ -1833,7 +1833,7 @@ private: found = FileExists(fullModuleName); if(found) { - foundProject = prj; + //foundProject = prj; break; } } @@ -1851,7 +1851,7 @@ private: found = FileExists(fullModuleName); if(found) { - foundProject = prj; + //foundProject = prj; break; } } @@ -1911,7 +1911,7 @@ private: { if(f.GetExitCode() && !numErrors) { - bool result = f.GetLine(line, sizeof(line)-1); + /*bool result = */f.GetLine(line, sizeof(line)-1); ide.outputView.buildBox.Logf($"Fatal Error: child process terminated unexpectedly\n"); } else if(buildType != install) @@ -2037,7 +2037,6 @@ private: } else { - int len; char pushD[MAX_LOCATION]; char cfDir[MAX_LOCATION]; GetIDECompilerConfigsDir(cfDir, true, true); @@ -2046,7 +2045,7 @@ private: // Create object dir if it does not exist already if(!FileExists(objDirExp.dir).isDirectory) { - sprintf(command, "%s CF_DIR=\"%s\"%s%s%s%s COMPILER=%s objdir -C \"%s\"%s -f \"%s\"", + sprintf(command, "%s CF_DIR=\"%s\"%s%s%s%s%s COMPILER=%s objdir -C \"%s\"%s -f \"%s\"", compiler.makeCommand, cfDir, crossCompiling ? " TARGET_PLATFORM=" : "", targetPlatform, @@ -2077,7 +2076,7 @@ private: if(compiler.type.isVC) { - bool result = false; + //bool result = false; char oldwd[MAX_LOCATION]; GetWorkingDir(oldwd, sizeof(oldwd)); ChangeWorkingDir(topNode.path); @@ -2090,7 +2089,7 @@ private: { ProcessPipeOutputRaw(f); delete f; - result = true; + //result = true; } ChangeWorkingDir(oldwd); } @@ -2208,7 +2207,7 @@ private: if(compiler.type.isVC) { - bool result = false; + //bool result = false; char oldwd[MAX_LOCATION]; GetWorkingDir(oldwd, sizeof(oldwd)); ChangeWorkingDir(topNode.path); @@ -2221,7 +2220,7 @@ private: { ProcessPipeOutputRaw(f); delete f; - result = true; + //result = true; } ChangeWorkingDir(oldwd); //return result; @@ -2605,7 +2604,7 @@ private: char targetDirExpNoSpaces[MAX_LOCATION]; char fixedModuleName[MAX_FILENAME]; char fixedConfigName[MAX_FILENAME]; - int c, len; + int c; int lenObjDirExpNoSpaces, lenTargetDirExpNoSpaces; // Non-zero if we're building eC code // We'll have to be careful with this when merging configs where eC files can be excluded in some configs and included in others @@ -2721,7 +2720,7 @@ private: if(compilerConfigsDir && compilerConfigsDir[0]) { strcpy(cfDir, compilerConfigsDir); - if(cfDir && cfDir[0] && cfDir[strlen(cfDir)-1] != '/') + if(cfDir[0] && cfDir[strlen(cfDir)-1] != '/') strcat(cfDir, "/"); } else @@ -3521,10 +3520,10 @@ private: void GenMakefilePrintMainObjectRule(File f, ProjectConfig config) { char extension[MAX_EXTENSION] = "c"; - char modulePath[MAX_LOCATION]; + //char modulePath[MAX_LOCATION]; char fixedModuleName[MAX_FILENAME]; - DualPipe dep; - char command[2048]; + //DualPipe dep; + //char command[2048]; char objDirNoSpaces[MAX_LOCATION]; const String objDirExp = GetObjDirExpression(config); @@ -3843,7 +3842,6 @@ void ProjectConfig::LegacyProjectConfigLoad(File f) char section[128]; char subSection[128]; char * equal; - int len; uint pos; pos = f.Tell(); @@ -3979,7 +3977,7 @@ void ProjectConfig::LegacyProjectConfigLoad(File f) Project LegacyAsciiLoadProject(File f, const char * filePath) { Project project = null; - ProjectNode node = null; + //ProjectNode node = null; int pos; char parentPath[MAX_LOCATION]; char section[128] = ""; @@ -4047,7 +4045,7 @@ Project LegacyAsciiLoadProject(File f, const char * filePath) child.type = file; child.icon = NodeIcons::SelectFileIcon(child.name); parent.files.Add(child); - node = child; + //node = child; //child = null; } else @@ -4081,7 +4079,7 @@ Project LegacyAsciiLoadProject(File f, const char * filePath) PathCatSlash(parentPath, child.name); parent.files.Add(child); parent = child; - node = child; + //node = child; //child = null; } else if(!strcmpi(section, "Configurations")) @@ -4125,7 +4123,7 @@ Project LegacyAsciiLoadProject(File f, const char * filePath) project.filePath = topNodePath; parentPath[0] = '\0'; parent = project.topNode; - node = parent; + //node = parent; strcpy(section, "Target"); equal = &buffer[6]; if(equal[0] == ' ') @@ -4162,7 +4160,7 @@ Project LegacyAsciiLoadProject(File f, const char * filePath) child.icon = archiveFile; project.resNode = child; parent = child; - node = child; + //node = child; strcpy(subSection, buffer); } else @@ -4500,7 +4498,7 @@ Project LoadProject(const char * filePath, const char * activeConfigName) if(!project) { JSONParser parser { f = f }; - JSONResult result = parser.GetObject(class(Project), &project); + /*JSONResult result = */parser.GetObject(class(Project), &project); if(project) { char insidePath[MAX_LOCATION]; diff --git a/ide/src/project/ProjectConfig.ec b/ide/src/project/ProjectConfig.ec index f6a58bd..3d9b8b8 100644 --- a/ide/src/project/ProjectConfig.ec +++ b/ide/src/project/ProjectConfig.ec @@ -38,7 +38,6 @@ class DirExpression : struct const char * expr = expression; if(!expr || !expr[0]) { - char buffer[MAX_LOCATION]; if(ideSettings) { if(type == targetDir) @@ -53,7 +52,6 @@ class DirExpression : struct { int c, d; const char * configName = config && config.name && config.name[0] ? config.name : "Common"; - const char * projectName = project.name ? project.name : ""; const char * moduleName = project.moduleName ? project.moduleName : ""; const char * compilerName = (compiler && compiler.name) ? compiler.name : defaultCompilerName; const char * targetPlatformName = compiler && compiler.targetPlatform ? compiler.targetPlatform : ""; diff --git a/ide/src/project/ProjectNode.ec b/ide/src/project/ProjectNode.ec index 9165f07..8d4fe86 100644 --- a/ide/src/project/ProjectNode.ec +++ b/ide/src/project/ProjectNode.ec @@ -12,7 +12,7 @@ import "Project" static define app = ((GuiApplication)__thisModule); #endif -#define OPTION(x) ((uint)(&((ProjectOptions)0).x)) +#define OPTION(x) ((uint)(uintptr)(&((ProjectOptions)0).x)) static void OutputLog(const char * string) { @@ -608,7 +608,6 @@ private: // TODO: Check how to fix duplication of following options when configuration is made per-config-per-file while((node = nodeStack.lastIterator.data)) { - ProjectConfig config = GetMatchingNodeConfig(prjConfig); ProjectOptions nodeOptions = node.property::options; if(nodeOptions && nodeOptions.preprocessorDefinitions) { @@ -982,7 +981,6 @@ private: ProjectConfig config = GetMatchingNodeConfig(prjConfig); ProjectOptions options = property::options; Array platforms = property::platforms; - List configurations = property::configurations; if(parent) parent.CollectExclusionInfo(output, prjConfig); @@ -1288,7 +1286,6 @@ private: void OnDisplay(Surface surface, int x, int y, int width, ProjectView projectView, Alignment alignment, DataDisplayFlags displayFlags) { char label[MAX_FILENAME]; - int indent = 16; int xStart; int len; int w, h; @@ -1302,7 +1299,7 @@ private: } bmp = projectView.icons[icon].bitmap; - xStart = /*indent * indent + */x + (bmp ? (bmp.width + 5) : 0); + xStart = x + (bmp ? (bmp.width + 5) : 0); GetLastDirectory(name, label); if(!showConfig || projectView.drawingInProjectSettingsDialogHeader) @@ -1599,8 +1596,8 @@ private: GetExtension(name, extension); if(!strcmpi(extension, "ec")) { - DualPipe dep; - char command[2048]; + //DualPipe dep; + //char command[2048]; ReplaceSpaces(moduleName, name); StripExtension(moduleName); @@ -1720,7 +1717,6 @@ private: Map nodeCFlagsMapping, Map nodeECFlagsMapping) { int ifCount = 0; - ProjectConfig config = GetMatchingNodeConfig(prjConfig); Array platforms = GetPlatformsArrayFromExclusionInfo(prjConfig); //ProjectNode child; //char objDir[MAX_LOCATION]; @@ -1736,9 +1732,6 @@ private: GetExtension(name, extension); if(!strcmpi(extension, "ec")) { - DualPipe dep; - char command[2048]; - ReplaceSpaces(moduleName, name); StripExtension(moduleName); @@ -1784,7 +1777,6 @@ private: Map nodeCFlagsMapping, Map nodeECFlagsMapping) { int ifCount = 0; - ProjectConfig config = GetMatchingNodeConfig(prjConfig); Array platforms = GetPlatformsArrayFromExclusionInfo(prjConfig); //ProjectNode child; //char objDir[MAX_LOCATION]; @@ -1799,8 +1791,8 @@ private: GetExtension(name, extension); if(!strcmpi(extension, "ec")) { - DualPipe dep; - char command[2048]; + //DualPipe dep; + //char command[2048]; ReplaceSpaces(moduleName, name); StripExtension(moduleName); @@ -1930,7 +1922,6 @@ private: Map nodeCFlagsMapping, Map nodeECFlagsMapping) { int ifCount = 0; - ProjectConfig config = GetMatchingNodeConfig(prjConfig); Array platforms = GetPlatformsArrayFromExclusionInfo(prjConfig); //ProjectNode child; //char objDir[MAX_LOCATION]; @@ -1948,8 +1939,8 @@ private: !strcmpi(extension, "cpp") || !strcmpi(extension, "cc") || !strcmpi(extension, "cxx") || !strcmpi(extension, "m") || !strcmpi(extension, "mm") || !strcmpi(extension, "ec")) { - DualPipe dep; - char command[2048]; + //DualPipe dep; + //char command[2048]; NameCollisionInfo info; ReplaceSpaces(moduleName, name); @@ -2581,7 +2572,6 @@ static ProjectOptions BlendFileConfigPlatformProjectOptions(ProjectNode node, Pr // p Platform // u Utility (GenericOptionTools) - int e; int o; int priority = 0; int includeDirsOption = OPTION(includeDirs); @@ -2806,8 +2796,6 @@ static ProjectOptions BlendFileConfigPlatformProjectOptions(ProjectNode node, Pr static void CollectPlatformsCommonOptions(Map byPlatformOptions, ProjectOptions * platformsCommonOptions) { - char * s; - int i; ProjectOptions first; ProjectOptions commonOptions; diff --git a/ide/src/project/ProjectView.ec b/ide/src/project/ProjectView.ec index edecb44..2d9f2a4 100644 --- a/ide/src/project/ProjectView.ec +++ b/ide/src/project/ProjectView.ec @@ -631,7 +631,6 @@ class ProjectView : Window { for(p : ide.workspace.projects) { - Project pr = p; prj = project ? project : p; if((n = prj.topNode.FindByFullPath(documentFileName, false))) { @@ -665,10 +664,6 @@ class ProjectView : Window bool ProjectPrepareForToolchain(Project project, PrepareMakefileMethod method, bool cleanLog, bool displayCompiler, CompilerConfig compiler, ProjectConfig config) { - bool isReady = true; - char message[MAX_F_STRING]; - LogBox logBox = ide.outputView.buildBox; - ShowOutputBuildLog(cleanLog); if(displayCompiler) @@ -1040,11 +1035,9 @@ class ProjectView : Window { OldLink item; OldList selectedRows; - List nodes { }; fileList.GetMultiSelection(selectedRows); for(item = selectedRows.first; item; item = item.next) { - OldLink i; DataRow row = item.data; ProjectNode node = (ProjectNode)row.tag; if(node.type == project) @@ -1122,7 +1115,6 @@ class ProjectView : Window bool Compile(Project project, List nodes, bool justPrint, SingleFileCompileMode mode) { bool result = true; - char fileName[MAX_LOCATION]; Window document; ProjectConfig config = project.config; @@ -1173,7 +1165,6 @@ class ProjectView : Window bool Clean(Project project, List nodes, bool justPrint) { bool result = true; - char fileName[MAX_LOCATION]; Window document; ProjectConfig config = project.config; @@ -1383,7 +1374,6 @@ class ProjectView : Window fileList.GetMultiSelection(selectedRows); for(item = selectedRows.first; item; item = item.next) { - OldLink i; DataRow row = item.data; ProjectNode node = (ProjectNode)row.tag; if(!project) @@ -1413,7 +1403,6 @@ class ProjectView : Window fileList.GetMultiSelection(selectedRows); for(item = selectedRows.first; item; item = item.next) { - OldLink i; DataRow row = item.data; ProjectNode node = (ProjectNode)row.tag; if(!project) @@ -1675,7 +1664,6 @@ class ProjectView : Window { char moduleName[MAX_LOCATION], filePath[MAX_LOCATION] = ""; char ext[MAX_EXTENSION] = ""; - char * bracket; ProjectNode node = null; if(colon) { @@ -1930,7 +1918,7 @@ class ProjectView : Window if(projectNode.files) { ProjectNode child; - while(child = projectNode.files.first) + while((child = projectNode.files.first)) DeleteNode(child); } fileList.DeleteRow(projectNode.row); diff --git a/ide/src/project/Workspace.ec b/ide/src/project/Workspace.ec index 856b35b..0fcb17e 100644 --- a/ide/src/project/Workspace.ec +++ b/ide/src/project/Workspace.ec @@ -368,7 +368,7 @@ public: GetLastDirectory(relative, name); for(p : projects) { - if(node = p.topNode.Find(name, false)) + if((node = p.topNode.Find(name, false))) { prj = p; break; @@ -479,9 +479,6 @@ public: void UpdateSourceDirsArray(Array dirs) { - byte * tokens[256]; - int c, numTokens; - sourceDirs.Free(); for(s : dirs) @@ -813,7 +810,6 @@ Workspace LoadWorkspace(const char * filePath, const char * fromProjectFile) { char buffer[65536]; char * equal; - int len; Watch wh; Breakpoint bp; @@ -1278,8 +1274,7 @@ Workspace LoadWorkspace(const char * filePath, const char * fromProjectFile) else if(fromProjectFile) { //MessageBox { type = Ok, master = ide, contents = "Worspace load file failed", text = "Worspace Load File Error" }.Modal(); - - char projectFile[MAX_LOCATION]; + //char projectFile[MAX_LOCATION]; Project newProject; //strcpy(projectFile, filePath); diff --git a/ide/src/project/vsSupport.ec b/ide/src/project/vsSupport.ec index 4987e58..d1ccb2c 100644 --- a/ide/src/project/vsSupport.ec +++ b/ide/src/project/vsSupport.ec @@ -699,7 +699,6 @@ void PrintFile(File f, Project prj, ProjectNode node, Map perFilePreprocessorDefs { }; Array perFileIncludeDirs { };