diff options
author | Marcin Koscielnicki <koriakin@0x04.net> | 2016-05-05 20:13:17 +0000 |
---|---|---|
committer | Marcin Koscielnicki <koriakin@0x04.net> | 2016-05-05 20:13:17 +0000 |
commit | 60061c21cb664e63a565ee17c6b25d704af72ae5 (patch) | |
tree | 92ebfc47edc803e21127a1bf46409e4b4440dece /llvm/lib/Transforms/Instrumentation | |
parent | 6689abe632024f29d4c9d3c31fe0a740942a6e49 (diff) | |
download | bcm5719-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')
-rw-r--r-- | llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp | 3 |
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; |