Revert r310014 as it breaks build lld-x86_64-darwin13
llvm-svn: 310020
This commit is contained in:
@@ -668,31 +668,10 @@ DIExpression *DIBuilder::createExpression(ArrayRef<int64_t> Signed) {
|
||||
return createExpression(Addr);
|
||||
}
|
||||
|
||||
DIExpression *DIBuilder::createFragmentExpression(unsigned OffsetInBits,
|
||||
unsigned SizeInBits,
|
||||
const DIExpression *Expr) {
|
||||
SmallVector<uint64_t, 8> Ops;
|
||||
// Copy over the expression, but leave off any trailing DW_OP_LLVM_fragment.
|
||||
if (Expr) {
|
||||
for (auto Op : Expr->expr_ops()) {
|
||||
if (Op.getOp() == dwarf::DW_OP_LLVM_fragment) {
|
||||
// Make the new offset point into the existing fragment.
|
||||
uint64_t FragmentOffsetInBits = Op.getArg(0);
|
||||
uint64_t FragmentSizeInBits = Op.getArg(1);
|
||||
assert((OffsetInBits + SizeInBits <= FragmentSizeInBits) &&
|
||||
"new fragment outside of original fragment");
|
||||
OffsetInBits += FragmentOffsetInBits;
|
||||
break;
|
||||
}
|
||||
Ops.push_back(Op.getOp());
|
||||
for (unsigned I = 0; I < Op.getNumArgs(); ++I)
|
||||
Ops.push_back(Op.getArg(I));
|
||||
}
|
||||
}
|
||||
Ops.push_back(dwarf::DW_OP_LLVM_fragment);
|
||||
Ops.push_back(OffsetInBits);
|
||||
Ops.push_back(SizeInBits);
|
||||
return DIExpression::get(VMContext, Ops);
|
||||
DIExpression *DIBuilder::createFragmentExpression(unsigned OffsetInBytes,
|
||||
unsigned SizeInBytes) {
|
||||
uint64_t Addr[] = {dwarf::DW_OP_LLVM_fragment, OffsetInBytes, SizeInBytes};
|
||||
return DIExpression::get(VMContext, Addr);
|
||||
}
|
||||
|
||||
template <class... Ts>
|
||||
|
||||
Reference in New Issue
Block a user