complier/libec/output: Fixed crash on conditional operator else expression
authorJerome St-Louis <jerome@ecere.com>
Sat, 3 May 2014 23:00:02 +0000 (19:00 -0400)
committerJerome St-Louis <jerome@ecere.com>
Sat, 3 May 2014 23:00:29 +0000 (19:00 -0400)
compiler/bootstrap/libec/bootstrap/output.c
compiler/libec/src/output.ec

index 9dd3dcc..6dac75d 100644 (file)
@@ -1816,6 +1816,7 @@ struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
 
 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " : ");
+if(exp->cond.elseExp)
 OutputExpression(exp->cond.elseExp, f);
 break;
 case 36:
index e393397..9e75f37 100644 (file)
@@ -301,7 +301,8 @@ public void OutputExpression(Expression exp, File f)
             }
          }
          f.Puts(" : ");
-         OutputExpression(exp.cond.elseExp, f);
+         if(exp.cond.elseExp)
+            OutputExpression(exp.cond.elseExp, f);
          break;
       case vaArgExp:
          f.Puts("__builtin_va_arg(");