Mercurial > projects > ldc
diff gen/statements.cpp @ 364:8014dbd24605 trunk
[svn r385] Fix lvalue cast problems with -= and friends.
Fix complex DtoBoolean.
author | ChristianK |
---|---|
date | Mon, 14 Jul 2008 22:48:03 +0200 |
parents | 44daf304421c |
children | bfb9d28f045a |
line wrap: on
line diff
--- a/gen/statements.cpp Mon Jul 14 21:49:54 2008 +0200 +++ b/gen/statements.cpp Mon Jul 14 22:48:03 2008 +0200 @@ -151,7 +151,6 @@ DValue* cond_e = condition->toElem(p); LLValue* cond_val = cond_e->getRVal(); - delete cond_e; llvm::BasicBlock* oldend = gIR->scopeend(); @@ -161,7 +160,7 @@ if (cond_val->getType() != LLType::Int1Ty) { Logger::cout() << "if conditional: " << *cond_val << '\n'; - cond_val = DtoBoolean(cond_val); + cond_val = DtoBoolean(cond_e); } LLValue* ifgoback = llvm::BranchInst::Create(ifbb, elsebb, cond_val, gIR->scopebb()); @@ -249,7 +248,7 @@ // create the condition DValue* cond_e = condition->toElem(p); - LLValue* cond_val = DtoBoolean(cond_e->getRVal()); + LLValue* cond_val = DtoBoolean(cond_e); delete cond_e; // conditional branch @@ -300,7 +299,7 @@ // create the condition DValue* cond_e = condition->toElem(p); - LLValue* cond_val = DtoBoolean(cond_e->getRVal()); + LLValue* cond_val = DtoBoolean(cond_e); delete cond_e; // conditional branch @@ -342,7 +341,7 @@ // create the condition DValue* cond_e = condition->toElem(p); - LLValue* cond_val = DtoBoolean(cond_e->getRVal()); + LLValue* cond_val = DtoBoolean(cond_e); delete cond_e; // conditional branch