Mercurial > projects > ldc
diff dmd/expression.c @ 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 | 081c48283153 |
children | a87f1d6ff48e |
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)