comparison gen/statements.cpp @ 687:0a682c7805d2

Emit region.end debug calls before a throw.
author Christian Kamm <kamm incasoftware de>
date Sun, 12 Oct 2008 15:30:58 +0200
parents b411c41a9716
children 43165a082535
comparison
equal deleted inserted replaced
686:363bb6c0cc80 687:0a682c7805d2
639 if (global.params.symdebug) 639 if (global.params.symdebug)
640 DtoDwarfStopPoint(loc.linnum); 640 DtoDwarfStopPoint(loc.linnum);
641 641
642 assert(exp); 642 assert(exp);
643 DValue* e = exp->toElem(p); 643 DValue* e = exp->toElem(p);
644
645 if (global.params.symdebug) DtoDwarfFuncEnd(gIR->func()->decl);
646
644 llvm::Function* fn = LLVM_D_GetRuntimeFunction(gIR->module, "_d_throw_exception"); 647 llvm::Function* fn = LLVM_D_GetRuntimeFunction(gIR->module, "_d_throw_exception");
645 //Logger::cout() << "calling: " << *fn << '\n'; 648 //Logger::cout() << "calling: " << *fn << '\n';
646 LLValue* arg = DtoBitCast(e->getRVal(), fn->getFunctionType()->getParamType(0)); 649 LLValue* arg = DtoBitCast(e->getRVal(), fn->getFunctionType()->getParamType(0));
647 //Logger::cout() << "arg: " << *arg << '\n'; 650 //Logger::cout() << "arg: " << *arg << '\n';
648 gIR->CreateCallOrInvoke(fn, arg); 651 gIR->CreateCallOrInvoke(fn, arg);