Merge branch 'master' into merge-2.067

This commit is contained in:
Kai Nacke 2015-06-04 22:02:52 +02:00
commit cddb59f7b7
4 changed files with 15 additions and 13 deletions

View file

@ -1043,20 +1043,20 @@ void DtoDefineFunction(FuncDeclaration* fd)
// pass the previous block into this block
gIR->DBuilder.EmitStopPoint(fd->endloc);
if (func->getReturnType() == LLType::getVoidTy(gIR->context())) {
llvm::ReturnInst::Create(gIR->context(), gIR->scopebb());
gIR->ir->CreateRetVoid();
}
else if (!fd->isMain()) {
CompoundAsmStatement* asmb = fd->fbody->endsWithAsm();
if (asmb) {
assert(asmb->abiret);
llvm::ReturnInst::Create(gIR->context(), asmb->abiret, bb);
gIR->ir->CreateRet(asmb->abiret);
}
else {
llvm::ReturnInst::Create(gIR->context(), llvm::UndefValue::get(func->getReturnType()), bb);
gIR->ir->CreateRet(llvm::UndefValue::get(func->getReturnType()));
}
}
else
llvm::ReturnInst::Create(gIR->context(), LLConstant::getNullValue(func->getReturnType()), bb);
gIR->ir->CreateRet(LLConstant::getNullValue(func->getReturnType()));
}
gIR->DBuilder.EmitFuncEnd(fd);