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