diff options
author | Vedant Kumar <vsk@apple.com> | 2018-07-06 21:06:21 +0000 |
---|---|---|
committer | Vedant Kumar <vsk@apple.com> | 2018-07-06 21:06:21 +0000 |
commit | 71c7c43695f33b763b4a5c56b2c960dc4b28007c (patch) | |
tree | b1216197189574b2f98094d1ea432c603f235223 /llvm/lib/IR | |
parent | 8a3680852e41a10d96fe301b29c856fb63904eda (diff) | |
download | bcm5719-llvm-71c7c43695f33b763b4a5c56b2c960dc4b28007c.tar.gz bcm5719-llvm-71c7c43695f33b763b4a5c56b2c960dc4b28007c.zip |
Fix DIExpression::ExprOperand::appendToVector
appendToVector used the wrong overload of SmallVector::append, resulting
in it appending the same element to a vector `getSize()` times. This did
not cause a problem when initially committed because appendToVector was
only used to append 1-element operands.
This changes appendToVector to use the correct overload of append().
Testing: ./unittests/IR/IRTests --gtest_filter='*DIExpressionTest*'
llvm-svn: 336466
Diffstat (limited to 'llvm/lib/IR')
-rw-r--r-- | llvm/lib/IR/DebugInfoMetadata.cpp | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/llvm/lib/IR/DebugInfoMetadata.cpp b/llvm/lib/IR/DebugInfoMetadata.cpp index 54062e2138b..db28d9a242b 100644 --- a/llvm/lib/IR/DebugInfoMetadata.cpp +++ b/llvm/lib/IR/DebugInfoMetadata.cpp @@ -834,9 +834,7 @@ DIExpression *DIExpression::prependOpcodes(const DIExpression *Expr, StackValue = false; } } - Ops.push_back(Op.getOp()); - for (unsigned I = 0; I < Op.getNumArgs(); ++I) - Ops.push_back(Op.getArg(I)); + Op.appendToVector(Ops); } if (StackValue) Ops.push_back(dwarf::DW_OP_stack_value); @@ -906,9 +904,7 @@ Optional<DIExpression *> DIExpression::createFragmentExpression( continue; } } - Ops.push_back(Op.getOp()); - for (unsigned I = 0; I < Op.getNumArgs(); ++I) - Ops.push_back(Op.getArg(I)); + Op.appendToVector(Ops); } } Ops.push_back(dwarf::DW_OP_LLVM_fragment); |