diff options
author | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2012-01-11 08:17:19 +0000 |
---|---|---|
committer | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2012-01-11 08:17:19 +0000 |
commit | 837fe5bcc9beceab86c50d2ca25a159f32e9d792 (patch) | |
tree | 923f5eab6424cfdfc392cc60e09e5bc05b3a3651 | |
parent | 940e00f2991a31f75d9bd04517b863c23b87511d (diff) | |
download | bcm5719-llvm-837fe5bcc9beceab86c50d2ca25a159f32e9d792.tar.gz bcm5719-llvm-837fe5bcc9beceab86c50d2ca25a159f32e9d792.zip |
Call asan_init from .preinit_array.
Protected by an #ifdef, disabled by default.
llvm-svn: 147932
-rw-r--r-- | compiler-rt/lib/asan/asan_rtl.cc | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/compiler-rt/lib/asan/asan_rtl.cc b/compiler-rt/lib/asan/asan_rtl.cc index 57dfa2e3fff..89442468db2 100644 --- a/compiler-rt/lib/asan/asan_rtl.cc +++ b/compiler-rt/lib/asan/asan_rtl.cc @@ -494,3 +494,11 @@ void __asan_init() { Report("AddressSanitizer Init done\n"); } } + +#if defined(ASAN_USE_PREINIT_ARRAY) +// On Linux, we force __asan_init to be called before anyone else +// by placing it into .preinit_array section. +// FIXME: do we have anything like this on Mac? +__attribute__((section(".preinit_array"))) + typeof(__asan_init) *__asan_preinit =__asan_init; +#endif |