summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
diff options
context:
space:
mode:
authorMarcin Koscielnicki <koriakin@0x04.net>2016-05-05 20:13:17 +0000
committerMarcin Koscielnicki <koriakin@0x04.net>2016-05-05 20:13:17 +0000
commit60061c21cb664e63a565ee17c6b25d704af72ae5 (patch)
tree92ebfc47edc803e21127a1bf46409e4b4440dece /llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
parent6689abe632024f29d4c9d3c31fe0a740942a6e49 (diff)
downloadbcm5719-llvm-60061c21cb664e63a565ee17c6b25d704af72ae5.tar.gz
bcm5719-llvm-60061c21cb664e63a565ee17c6b25d704af72ae5.zip
[MSan] [MIPS64] Fix vararg helper for >1 fixed argument.
This fixes http://llvm.org/PR27646 on Mips64. Differential Revision: http://reviews.llvm.org/D19989 llvm-svn: 268673
Diffstat (limited to 'llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp')
-rw-r--r--llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp b/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
index 3596038ce2c..d69b8f678c4 100644
--- a/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
+++ b/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
@@ -3032,7 +3032,8 @@ struct VarArgMIPS64Helper : public VarArgHelper {
void visitCallSite(CallSite &CS, IRBuilder<> &IRB) override {
unsigned VAArgOffset = 0;
const DataLayout &DL = F.getParent()->getDataLayout();
- for (CallSite::arg_iterator ArgIt = CS.arg_begin() + 1, End = CS.arg_end();
+ for (CallSite::arg_iterator ArgIt = CS.arg_begin() +
+ CS.getFunctionType()->getNumParams(), End = CS.arg_end();
ArgIt != End; ++ArgIt) {
llvm::Triple TargetTriple(F.getParent()->getTargetTriple());
Value *A = *ArgIt;
OpenPOWER on IntegriCloud