]> granicus.if.org Git - llvm/commit
[MSan] [AArch64] Fix vararg helper for >1 or non-int fixed arguments.
authorMarcin Koscielnicki <koriakin@0x04.net>
Mon, 9 May 2016 20:57:36 +0000 (20:57 +0000)
committerMarcin Koscielnicki <koriakin@0x04.net>
Mon, 9 May 2016 20:57:36 +0000 (20:57 +0000)
commit05b09ea28d65711f4e2eae9f6f9a07bed2ae68e8
treec79c6eb5938ad0c58aee56d647f2a2677ffce899
parentf68fb38629ac39d7ffced4d519069ed8c367fcbd
[MSan] [AArch64] Fix vararg helper for >1 or non-int fixed arguments.

This fixes http://llvm.org/PR27646 on AArch64.

There are three issues here:

- The GR save area is 7 words in size, instead of 8.  This is not enough
  if none of the fixed arguments is passed in GRs (they're all floats or
  aggregates).
- The first argument is ignored (which counteracts the above if it's passed
  in GR).
- Like x86_64, fixed arguments landing in the overflow area are wrongly
  counted towards the overflow offset.

Differential Revision: http://reviews.llvm.org/D20023

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268967 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Instrumentation/MemorySanitizer.cpp
test/Instrumentation/MemorySanitizer/AArch64/vararg.ll