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
25namespace __ubsan {
26
27static 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