diff options
author | Marcos Pividori <mpividori@google.com> | 2017-02-03 01:08:06 +0000 |
---|---|---|
committer | Marcos Pividori <mpividori@google.com> | 2017-02-03 01:08:06 +0000 |
commit | db5a5655141c70c31bdcbb92aec6104bc533b6ac (patch) | |
tree | 698bd4040f734fa47169451e38bf0db61719a01e /llvm/lib/Bitcode/Writer/BitcodeWriter.cpp | |
parent | 37c22a3ecb3d5852c0d88ea69bc6ebe9637db27f (diff) | |
download | llvm-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