Home | History | Annotate | Line # | Download | only in ubsan
      1 //===-- ubsan_init_standalone_preinit.cc ---------------------------------===//
      2 //
      3 //                     The LLVM Compiler Infrastructure
      4 //
      5 // This file is distributed under the University of Illinois Open Source
      6 // License. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 //
     10 // Initialization of standalone UBSan runtime.
     11 //
     12 //===----------------------------------------------------------------------===//
     13 
     14 #include "ubsan_platform.h"
     15 #if !CAN_SANITIZE_UB
     16 #error "UBSan is not supported on this platform!"
     17 #endif
     18 
     19 #include "sanitizer_common/sanitizer_internal_defs.h"
     20 #include "ubsan_init.h"
     21 #include "ubsan_signals_standalone.h"
     22 
     23 #if SANITIZER_CAN_USE_PREINIT_ARRAY
     24 
     25 namespace __ubsan {
     26 
     27 static void PreInitAsStandalone() {
     28   InitAsStandalone();
     29   InitializeDeadlySignals();
     30 }
     31 
     32 } // namespace __ubsan
     33 
     34 __attribute__((section(".preinit_array"), used)) void (*__local_ubsan_preinit)(
     35     void) = __ubsan::PreInitAsStandalone;
     36 #endif // SANITIZER_CAN_USE_PREINIT_ARRAY
     37