diff options
Diffstat (limited to 'compiler-rt/lib/asan/asan_premap_shadow.cc')
| -rw-r--r-- | compiler-rt/lib/asan/asan_premap_shadow.cc | 9 |
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" { |

