1*ff6d591cSmrg //===-- ubsan_init_standalone.cpp -----------------------------------------===// 2*ff6d591cSmrg // 3*ff6d591cSmrg // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*ff6d591cSmrg // See https://llvm.org/LICENSE.txt for license information. 5*ff6d591cSmrg // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*ff6d591cSmrg // 7*ff6d591cSmrg //===----------------------------------------------------------------------===// 8*ff6d591cSmrg // 9*ff6d591cSmrg // Initialization of standalone UBSan runtime. 10*ff6d591cSmrg // 11*ff6d591cSmrg //===----------------------------------------------------------------------===// 12*ff6d591cSmrg 13*ff6d591cSmrg #include "ubsan_platform.h" 14*ff6d591cSmrg #if !CAN_SANITIZE_UB 15*ff6d591cSmrg # error "UBSan is not supported on this platform!" 16*ff6d591cSmrg #endif 17*ff6d591cSmrg 18*ff6d591cSmrg #include "sanitizer_common/sanitizer_internal_defs.h" 19*ff6d591cSmrg #include "ubsan_init.h" 20*ff6d591cSmrg #include "ubsan_signals_standalone.h" 21*ff6d591cSmrg 22*ff6d591cSmrg namespace __ubsan { 23*ff6d591cSmrg 24*ff6d591cSmrg class UbsanStandaloneInitializer { 25*ff6d591cSmrg public: UbsanStandaloneInitializer()26*ff6d591cSmrg UbsanStandaloneInitializer() { 27*ff6d591cSmrg InitAsStandalone(); 28*ff6d591cSmrg InitializeDeadlySignals(); 29*ff6d591cSmrg } 30*ff6d591cSmrg }; 31*ff6d591cSmrg static UbsanStandaloneInitializer ubsan_standalone_initializer; 32*ff6d591cSmrg 33*ff6d591cSmrg } // namespace __ubsan 34