[msan] Fix handling of va_arg overflow area on x86_64.
authorEvgeniy Stepanov <eugeni.stepanov@gmail.com>
Fri, 23 Aug 2013 12:11:00 +0000 (12:11 +0000)
committerEvgeniy Stepanov <eugeni.stepanov@gmail.com>
Fri, 23 Aug 2013 12:11:00 +0000 (12:11 +0000)
commit7c7b8e57f8f3d20610cdbf1888e2f0101752f986
tree13f24a5d34d64194aa750cca2186c399d5c768c1
parenta0b2d332c114571716746ba90c815cfb6f68d4ab
[msan] Fix handling of va_arg overflow area on x86_64.

The code was erroneously reading overflow area shadow from the TLS slot,
bypassing the local copy. Reading shadow directly from TLS is wrong, because
it can be overwritten by a nested vararg call, if that happens before va_start.

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