# HG changeset patch # User ChristianK # Date 1214321095 -7200 # Node ID 3b8ada4c9f8b51a551f3303531a640101dab0dc7 # Parent 5de180867c46dc31e918d09dbb4431cb07d4b584 [svn r319] Call substatement->toIR in LabelStatement::toIR even when the label is inside an asm block. diff -r 5de180867c46 -r 3b8ada4c9f8b gen/statements.cpp --- a/gen/statements.cpp Mon Jun 23 19:19:37 2008 +0200 +++ b/gen/statements.cpp Tue Jun 24 17:24:55 2008 +0200 @@ -1070,21 +1070,24 @@ a->code += ident->toChars(); a->code += ":"; p->asmBlock->s.push_back(a); - return; + } + else + { + + assert(tf == NULL); + + llvm::BasicBlock* oldend = gIR->scopeend(); + if (llvmBB) + llvmBB->moveBefore(oldend); + else + llvmBB = llvm::BasicBlock::Create("label", p->topfunc(), oldend); + + if (!p->scopereturned()) + llvm::BranchInst::Create(llvmBB, p->scopebb()); + + p->scope() = IRScope(llvmBB,oldend); } - assert(tf == NULL); - - llvm::BasicBlock* oldend = gIR->scopeend(); - if (llvmBB) - llvmBB->moveBefore(oldend); - else - llvmBB = llvm::BasicBlock::Create("label", p->topfunc(), oldend); - - if (!p->scopereturned()) - llvm::BranchInst::Create(llvmBB, p->scopebb()); - - p->scope() = IRScope(llvmBB,oldend); if (statement) statement->toIR(p); }