diff options
Diffstat (limited to 'lib/ubsan/ubsan_init_standalone.cc')
-rw-r--r-- | lib/ubsan/ubsan_init_standalone.cc | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/ubsan/ubsan_init_standalone.cc b/lib/ubsan/ubsan_init_standalone.cc index 8e999e3ac..ff1a20efe 100644 --- a/lib/ubsan/ubsan_init_standalone.cc +++ b/lib/ubsan/ubsan_init_standalone.cc @@ -19,6 +19,11 @@ #include "sanitizer_common/sanitizer_internal_defs.h" #include "ubsan_init.h" +#if SANITIZER_CAN_USE_PREINIT_ARRAY +__attribute__((section(".preinit_array"), used)) +void (*__local_ubsan_preinit)(void) = __ubsan::InitAsStandalone; +#else +// Use a dynamic initializer. class UbsanStandaloneInitializer { public: UbsanStandaloneInitializer() { @@ -26,3 +31,5 @@ class UbsanStandaloneInitializer { } }; static UbsanStandaloneInitializer ubsan_standalone_initializer; +#endif // SANITIZER_CAN_USE_PREINIT_ARRAY + |