1 //===-- ubsan_init.h --------------------------------------------*- C++ -*-===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 // 9 // Initialization function for UBSan runtime. 10 // 11 //===----------------------------------------------------------------------===// 12 #ifndef UBSAN_INIT_H 13 #define UBSAN_INIT_H 14 15 namespace __ubsan { 16 17 // Get the full tool name for UBSan. 18 const char *GetSanititizerToolName(); 19 20 // Initialize UBSan as a standalone tool. Typically should be called early 21 // during initialization. 22 void InitAsStandalone(); 23 24 // Initialize UBSan as a standalone tool, if it hasn't been initialized before. 25 void InitAsStandaloneIfNecessary(); 26 27 // Initializes UBSan as a plugin tool. This function should be called once 28 // from "parent tool" (e.g. ASan) initialization. 29 void InitAsPlugin(); 30 31 } // namespace __ubsan 32 33 #endif // UBSAN_INIT_H 34