Mercurial > projects > ldc
changeset 1616:c94049033c20
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(-)
author | Leandro Lucarella <llucax@gmail.com> |
---|---|
date | Wed, 06 Jan 2010 15:18:21 -0300 |
parents | 3da302cc4966 |
children | 6820110de311 |
files | dmd/expression.c |
diffstat | 1 files changed, 2 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/dmd/expression.c Wed Jan 06 15:18:21 2010 -0300 +++ b/dmd/expression.c Wed Jan 06 15:18:21 2010 -0300 @@ -1512,7 +1512,8 @@ int IntegerExp::isBool(int result) { - return result ? value != 0 : value == 0; + int r = toInteger() != 0; + return result ? r : !r; } Expression *IntegerExp::semantic(Scope *sc)