From 9ae38b1d033b77682b9911a6e36eb9903079f13c Mon Sep 17 00:00:00 2001 From: Leandro Lucarella Date: Wed, 6 Jan 2010 15:18:22 -0300 Subject: [PATCH] Merge DMD r316: bugzilla 3628 can't cast null to int --- dmd/constfold.c | 2 +- dmd/optimize.c | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) --- dmd/optimize.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dmd/optimize.c b/dmd/optimize.c index 34bd5579..8a7ba76f 100644 --- a/dmd/optimize.c +++ b/dmd/optimize.c @@ -669,14 +669,14 @@ Expression *EqualExp::optimize(int result) } Expression *IdentityExp::optimize(int result) -{ Expression *e; - +{ //printf("IdentityExp::optimize(result = %d) %s\n", result, toChars()); e1 = e1->optimize(WANTvalue | (result & WANTinterpret)); e2 = e2->optimize(WANTvalue | (result & WANTinterpret)); - e = this; + Expression *e = this; - if (this->e1->isConst() && this->e2->isConst()) + if ((this->e1->isConst() && this->e2->isConst()) || + (this->e1->op == TOKnull && this->e2->op == TOKnull)) { e = Identity(op, type, this->e1, this->e2); if (e == EXP_CANT_INTERPRET)