summaryrefslogtreecommitdiffstats
path: root/llvm/lib/IR
diff options
context:
space:
mode:
authorVedant Kumar <vsk@apple.com>2018-07-06 21:06:21 +0000
committerVedant Kumar <vsk@apple.com>2018-07-06 21:06:21 +0000
commit71c7c43695f33b763b4a5c56b2c960dc4b28007c (patch)
treeb1216197189574b2f98094d1ea432c603f235223 /llvm/lib/IR
parent8a3680852e41a10d96fe301b29c856fb63904eda (diff)
downloadbcm5719-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.cpp8
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);
OpenPOWER on IntegriCloud