[msan] Fix bad interaction between with-calls mode and chained origin tracking.
authorEvgeniy Stepanov <eugeni.stepanov@gmail.com>
Wed, 25 Jun 2014 14:41:57 +0000 (14:41 +0000)
committerEvgeniy Stepanov <eugeni.stepanov@gmail.com>
Wed, 25 Jun 2014 14:41:57 +0000 (14:41 +0000)
commit6ce4a9f175830e7e981b885e4dc80bc53bda3d77
tree5c91c8c978a757f9941e3611fa195613849c94b5
parent95be6a7c3d841e2d30a96579d4fe8457748477fa
[msan] Fix bad interaction between with-calls mode and chained origin tracking.

Origin history should only be recorded for uninitialized values, because it is
meaningless otherwise. This change moves __msan_chain_origin to the runtime
library side and makes it conditional on the corresponding shadow value.

Previous code was correct, but _very_ inefficient.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211700 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Instrumentation/MemorySanitizer.cpp
test/Instrumentation/MemorySanitizer/instrumentation-with-call-threshold.ll