summaryrefslogtreecommitdiff
path: root/compiler/common_compiler_test.cc
diff options
context:
space:
mode:
authorDavid Srbecky <dsrbecky@google.com>2020-05-16 01:38:49 +0100
committerDavid Srbecky <dsrbecky@google.com>2020-05-20 13:24:47 +0000
commit2acd1ec12ab6b81a7e870ab11085c24ae51faf6d (patch)
treeae9f2fc872cc3ca9ae456df13e7d5057e6fc1254 /compiler/common_compiler_test.cc
parent4d55215d8b4bd0efb65b3a84a7dd041a6b097a96 (diff)
HWASan fixes for ART tests
Bug: 156593692 Test: SANITIZE_TARGET=hwaddress art/tools/run-gtests.sh Test: SANITIZE_TARGET=hwaddress art/test.py -r --target --64 Change-Id: I24c5afdb4fed5ac94ce3a7b54a10c592f529191f
Diffstat (limited to 'compiler/common_compiler_test.cc')
-rw-r--r--compiler/common_compiler_test.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/compiler/common_compiler_test.cc b/compiler/common_compiler_test.cc
index 6b4dbed03b..4b6a557455 100644
--- a/compiler/common_compiler_test.cc
+++ b/compiler/common_compiler_test.cc
@@ -107,7 +107,9 @@ void CommonCompilerTest::MakeExecutable(const void* code_start, size_t code_leng
uintptr_t base = RoundDown(data, kPageSize);
uintptr_t limit = RoundUp(data + code_length, kPageSize);
uintptr_t len = limit - base;
- int result = mprotect(reinterpret_cast<void*>(base), len, PROT_READ | PROT_WRITE | PROT_EXEC);
+ // Remove hwasan tag. This is done in kernel in newer versions. This supports older kernels.
+ void* base_ptr = HWASanUntag(reinterpret_cast<void*>(base));
+ int result = mprotect(base_ptr, len, PROT_READ | PROT_WRITE | PROT_EXEC);
CHECK_EQ(result, 0);
CHECK(FlushCpuCaches(reinterpret_cast<void*>(base), reinterpret_cast<void*>(base + len)));