summaryrefslogtreecommitdiffstats
path: root/compiler-rt/lib/asan/asan_premap_shadow.cc
diff options
context:
space:
mode:
Diffstat (limited to 'compiler-rt/lib/asan/asan_premap_shadow.cc')
-rw-r--r--compiler-rt/lib/asan/asan_premap_shadow.cc9
1 files changed, 9 insertions, 0 deletions
diff --git a/compiler-rt/lib/asan/asan_premap_shadow.cc b/compiler-rt/lib/asan/asan_premap_shadow.cc
index 0e66eeef126..2d20c3b8ca0 100644
--- a/compiler-rt/lib/asan/asan_premap_shadow.cc
+++ b/compiler-rt/lib/asan/asan_premap_shadow.cc
@@ -50,6 +50,15 @@ uptr PremapShadow() {
return shadow_start;
}
+bool PremapShadowFailed() {
+ uptr shadow = reinterpret_cast<uptr>(&__asan_shadow);
+ uptr resolver = reinterpret_cast<uptr>(&__asan_premap_shadow);
+ // shadow == resolver is how Android KitKat and older handles ifunc.
+ // shadow == 0 just in case.
+ if (shadow == 0 || shadow == resolver)
+ return true;
+ return false;
+}
} // namespace __asan
extern "C" {
OpenPOWER on IntegriCloud