mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-05 10:27:02 +00:00
Before inserting llvm.dbg.declare intrinsic at the end of a basic block, check whether the basic block has a terminator or not.
This API is used by clang and the test case is test/CodeGen/debug-info-crash.c in clang module. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94820 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
4f17eb8721
commit
27a53de9b8
@ -1055,8 +1055,13 @@ Instruction *DIFactory::InsertDeclare(Value *Storage, DIVariable D,
|
|||||||
|
|
||||||
Value *Args[] = { MDNode::get(Storage->getContext(), &Storage, 1),
|
Value *Args[] = { MDNode::get(Storage->getContext(), &Storage, 1),
|
||||||
D.getNode() };
|
D.getNode() };
|
||||||
return CallInst::Create(DeclareFn, Args, Args+2, "", InsertAtEnd);
|
|
||||||
}
|
// If this block already has a terminator then insert this intrinsic
|
||||||
|
// before the terminator.
|
||||||
|
if (TerminatorInst *T = InsertAtEnd->getTerminator())
|
||||||
|
return CallInst::Create(DeclareFn, Args, Args+2, "", T);
|
||||||
|
else
|
||||||
|
return CallInst::Create(DeclareFn, Args, Args+2, "", InsertAtEnd);}
|
||||||
|
|
||||||
/// InsertDbgValueIntrinsic - Insert a new llvm.dbg.value intrinsic call.
|
/// InsertDbgValueIntrinsic - Insert a new llvm.dbg.value intrinsic call.
|
||||||
Instruction *DIFactory::InsertDbgValueIntrinsic(Value *V, uint64_t Offset,
|
Instruction *DIFactory::InsertDbgValueIntrinsic(Value *V, uint64_t Offset,
|
||||||
|
Loading…
Reference in New Issue
Block a user