xref: /netbsd-src/sys/external/bsd/compiler_rt/dist/lib/ubsan/ubsan_init.h (revision a7c257b03e4462df2b1020128fb82716512d7856)
1*a7c257b0Skamil //===-- ubsan_init.h --------------------------------------------*- C++ -*-===//
2*a7c257b0Skamil //
3*a7c257b0Skamil //                     The LLVM Compiler Infrastructure
4*a7c257b0Skamil //
5*a7c257b0Skamil // This file is distributed under the University of Illinois Open Source
6*a7c257b0Skamil // License. See LICENSE.TXT for details.
7*a7c257b0Skamil //
8*a7c257b0Skamil //===----------------------------------------------------------------------===//
9*a7c257b0Skamil //
10*a7c257b0Skamil // Initialization function for UBSan runtime.
11*a7c257b0Skamil //
12*a7c257b0Skamil //===----------------------------------------------------------------------===//
13*a7c257b0Skamil #ifndef UBSAN_INIT_H
14*a7c257b0Skamil #define UBSAN_INIT_H
15*a7c257b0Skamil 
16*a7c257b0Skamil namespace __ubsan {
17*a7c257b0Skamil 
18*a7c257b0Skamil // Get the full tool name for UBSan.
19*a7c257b0Skamil const char *GetSanititizerToolName();
20*a7c257b0Skamil 
21*a7c257b0Skamil // Initialize UBSan as a standalone tool. Typically should be called early
22*a7c257b0Skamil // during initialization.
23*a7c257b0Skamil void InitAsStandalone();
24*a7c257b0Skamil 
25*a7c257b0Skamil // Initialize UBSan as a standalone tool, if it hasn't been initialized before.
26*a7c257b0Skamil void InitAsStandaloneIfNecessary();
27*a7c257b0Skamil 
28*a7c257b0Skamil // Initializes UBSan as a plugin tool. This function should be called once
29*a7c257b0Skamil // from "parent tool" (e.g. ASan) initialization.
30*a7c257b0Skamil void InitAsPlugin();
31*a7c257b0Skamil 
32*a7c257b0Skamil }  // namespace __ubsan
33*a7c257b0Skamil 
34*a7c257b0Skamil #endif  // UBSAN_INIT_H
35