From 2cdf1f6679979e99fbfd540c0c0cd50e564e9312 Mon Sep 17 00:00:00 2001 From: Leandro Lucarella Date: Wed, 6 Jan 2010 15:18:21 -0300 Subject: [PATCH] Merge DMD r296: bugzilla 3617 CTFE: wrong code for if(x) where x is int... bugzilla 3617 CTFE: wrong code for if(x) where x is int or smaller. --- dmd/expression.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) --- dmd/expression.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dmd/expression.c b/dmd/expression.c index 67b90e60..d21335f7 100644 --- a/dmd/expression.c +++ b/dmd/expression.c @@ -1512,7 +1512,8 @@ complex_t IntegerExp::toComplex() int IntegerExp::isBool(int result) { - return result ? value != 0 : value == 0; + int r = toInteger() != 0; + return result ? r : !r; } Expression *IntegerExp::semantic(Scope *sc)