summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Collingbourne <peter@pcc.me.uk>2015-09-12 00:08:28 +0000
committerPeter Collingbourne <peter@pcc.me.uk>2015-09-12 00:08:28 +0000
commite299bc51b64a0ac346f8fea0f703b62be468a719 (patch)
tree29d0e8a5922283b00313c394c8f31ff9c2656e61
parent62cfd01270536bf865b4f3da42627832848d212c (diff)
downloadbcm5719-llvm-e299bc51b64a0ac346f8fea0f703b62be468a719.tar.gz
bcm5719-llvm-e299bc51b64a0ac346f8fea0f703b62be468a719.zip
ubsan: Disable vptr validation on powerpc64.
Should fix sanitizer-ppc64-linux1 bot. llvm-svn: 247493
-rw-r--r--compiler-rt/lib/ubsan/ubsan_type_hash_itanium.cc4
-rw-r--r--compiler-rt/test/ubsan/lit.common.cfg2
2 files changed, 3 insertions, 3 deletions
diff --git a/compiler-rt/lib/ubsan/ubsan_type_hash_itanium.cc b/compiler-rt/lib/ubsan/ubsan_type_hash_itanium.cc
index 170da2cdb84..3687c533e99 100644
--- a/compiler-rt/lib/ubsan/ubsan_type_hash_itanium.cc
+++ b/compiler-rt/lib/ubsan/ubsan_type_hash_itanium.cc
@@ -193,7 +193,7 @@ struct VtablePrefix {
std::type_info *TypeInfo;
};
-#if SANITIZER_LINUX
+#if SANITIZER_LINUX && !defined(__powerpc64__)
bool isValidVptr(void *Vtable) {
// Validate the memory permissions of the vtable pointer and the first
// function pointer in the vtable. They should be r-- or r-x and r-x
@@ -218,7 +218,7 @@ bool isValidVptr(void *Vtable) {
}
return false;
}
-#else // !SANITIZER_LINUX
+#else // !SANITIZER_LINUX || __powerpc64__
bool isValidVptr(void *Vtable) {
return true;
}
diff --git a/compiler-rt/test/ubsan/lit.common.cfg b/compiler-rt/test/ubsan/lit.common.cfg
index 2e0a0bc77c9..92d998b8ba8 100644
--- a/compiler-rt/test/ubsan/lit.common.cfg
+++ b/compiler-rt/test/ubsan/lit.common.cfg
@@ -78,5 +78,5 @@ if config.host_os == 'Windows':
if config.target_arch.startswith('arm') == False:
config.available_features.add('stable-runtime')
-if config.host_os == 'Linux':
+if config.host_os == 'Linux' and config.target_arch != 'powerpc64':
config.available_features.add('vptr-validation')
OpenPOWER on IntegriCloud