2018-11-16 Richard Biener <rguenther@suse.de>
[official-gcc.git] / libsanitizer / ubsan / ubsan_init_standalone_preinit.cc
blobfd26b49e4e711709f320d2a35247ff411f76f103
1 //===-- ubsan_init_standalone_preinit.cc ---------------------------------===//
2 //
3 // This file is distributed under the University of Illinois Open Source
4 // License. See LICENSE.TXT for details.
5 //
6 //===----------------------------------------------------------------------===//
7 //
8 // Initialization of standalone UBSan runtime.
9 //
10 //===----------------------------------------------------------------------===//
12 #include "ubsan_platform.h"
13 #if !CAN_SANITIZE_UB
14 #error "UBSan is not supported on this platform!"
15 #endif
17 #include "sanitizer_common/sanitizer_internal_defs.h"
18 #include "ubsan_init.h"
19 #include "ubsan_signals_standalone.h"
21 #if SANITIZER_CAN_USE_PREINIT_ARRAY
23 namespace __ubsan {
25 static void PreInitAsStandalone() {
26 InitAsStandalone();
27 InitializeDeadlySignals();
30 } // namespace __ubsan
32 __attribute__((section(".preinit_array"), used)) void (*__local_ubsan_preinit)(
33 void) = __ubsan::PreInitAsStandalone;
34 #endif // SANITIZER_CAN_USE_PREINIT_ARRAY