1*760c2415Smrg //===-- ubsan_init_standalone_preinit.cc ---------------------------------===// 28dd4bdcdSmrg // 38dd4bdcdSmrg // This file is distributed under the University of Illinois Open Source 48dd4bdcdSmrg // License. See LICENSE.TXT for details. 58dd4bdcdSmrg // 68dd4bdcdSmrg //===----------------------------------------------------------------------===// 78dd4bdcdSmrg // 88dd4bdcdSmrg // Initialization of standalone UBSan runtime. 98dd4bdcdSmrg // 108dd4bdcdSmrg //===----------------------------------------------------------------------===// 118dd4bdcdSmrg 128dd4bdcdSmrg #include "ubsan_platform.h" 138dd4bdcdSmrg #if !CAN_SANITIZE_UB 148dd4bdcdSmrg #error "UBSan is not supported on this platform!" 158dd4bdcdSmrg #endif 168dd4bdcdSmrg 178dd4bdcdSmrg #include "sanitizer_common/sanitizer_internal_defs.h" 188dd4bdcdSmrg #include "ubsan_init.h" 198dd4bdcdSmrg #include "ubsan_signals_standalone.h" 208dd4bdcdSmrg 218dd4bdcdSmrg #if SANITIZER_CAN_USE_PREINIT_ARRAY 228dd4bdcdSmrg 238dd4bdcdSmrg namespace __ubsan { 248dd4bdcdSmrg PreInitAsStandalone()258dd4bdcdSmrgstatic void PreInitAsStandalone() { 268dd4bdcdSmrg InitAsStandalone(); 278dd4bdcdSmrg InitializeDeadlySignals(); 288dd4bdcdSmrg } 298dd4bdcdSmrg 308dd4bdcdSmrg } // namespace __ubsan 318dd4bdcdSmrg 328dd4bdcdSmrg __attribute__((section(".preinit_array"), used)) void (*__local_ubsan_preinit)( 338dd4bdcdSmrg void) = __ubsan::PreInitAsStandalone; 348dd4bdcdSmrg #endif // SANITIZER_CAN_USE_PREINIT_ARRAY 35