aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
diff options
context:
space:
mode:
authorMarcos Pividori <mpividori@google.com>2017-02-03 01:08:06 +0000
committerMarcos Pividori <mpividori@google.com>2017-02-03 01:08:06 +0000
commitdb5a5655141c70c31bdcbb92aec6104bc533b6ac (patch)
tree698bd4040f734fa47169451e38bf0db61719a01e /llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
parent37c22a3ecb3d5852c0d88ea69bc6ebe9637db27f (diff)
downloadllvm-db5a5655141c70c31bdcbb92aec6104bc533b6ac.zip
llvm-db5a5655141c70c31bdcbb92aec6104bc533b6ac.tar.gz
llvm-db5a5655141c70c31bdcbb92aec6104bc533b6ac.tar.bz2
[sanitizer coverage] Fix Instrumentation to work on Windows.
On Windows, the symbols "___stop___sancov_guards" and "___start___sancov_guards" are not defined automatically. So, we need to take a different approach. We define 3 sections: Section ".SCOV$A" will only hold a variable ___start___sancov_guard. Section ".SCOV$M" will hold the main data. Section ".SCOV$Z" will only hold a variable ___stop___sancov_guards. When linking, they will be merged sorted by the characters after the $, so we can use the pointers of the variables ___[start|stop]___sancov_guard to know the actual range of addresses of that section. In this diff, I updated instrumentation to include all the guard arrays in section ".SCOV$M". Differential Revision: https://reviews.llvm.org/D28434 llvm-svn: 293987
Diffstat (limited to 'llvm/lib/Bitcode/Writer/BitcodeWriter.cpp')
0 files changed, 0 insertions, 0 deletions