compiler/libec/pass2: (#271) Fixed compiler crash
authorJerome St-Louis <jerome@ecere.com>
Sat, 3 May 2014 06:08:10 +0000 (02:08 -0400)
committerJerome St-Louis <jerome@ecere.com>
Sat, 3 May 2014 06:14:02 +0000 (02:14 -0400)
compiler/bootstrap/libec/bootstrap/pass2.c
compiler/libec/src/pass2.ec

index af61ed9..a7202e5 100644 (file)
@@ -3367,7 +3367,7 @@ if(((unsigned int)((exp->usage & 0x1) >> 0)))
 exp->member.exp->usage = (exp->member.exp->usage & ~0x1) | (((unsigned int)0x1) << 0);
 }
 ProcessExpression(exp->member.exp);
-if(type->kind == 8)
+if(type->kind == 8 && type->_class && type->_class->registered)
 DeclareStruct(type->_class->registered->fullName, 0x0);
 if(_class->type == 5)
 {
index 0be8a75..71b7a2c 100644 (file)
@@ -2640,7 +2640,7 @@ static void ProcessExpression(Expression exp)
                ProcessExpression(exp.member.exp);
                // TEST: exp.tempCount = exp.member.exp.tempCount;
 
-               if(type.kind == classType)
+               if(type.kind == classType && type._class && type._class.registered)
                   DeclareStruct(type._class.registered.fullName, false);
 
                // TESTING THIS NOHEAD STUFF...