1 //===- InstrumentationBindings.h - instrumentation bindings -----*- C++ -*-===// 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 // This file defines C bindings for the Transforms/Instrumentation component. 11 // 12 //===----------------------------------------------------------------------===// 13 14 #ifndef LLVM_BINDINGS_GO_LLVM_INSTRUMENTATIONBINDINGS_H 15 #define LLVM_BINDINGS_GO_LLVM_INSTRUMENTATIONBINDINGS_H 16 17 #include "llvm-c/Core.h" 18 19 #ifdef __cplusplus 20 extern "C" { 21 #endif 22 23 // FIXME: These bindings shouldn't be Go-specific and should eventually move to 24 // a (somewhat) less stable collection of C APIs for use in creating bindings of 25 // LLVM in other languages. 26 27 void LLVMAddAddressSanitizerFunctionPass(LLVMPassManagerRef PM); 28 void LLVMAddAddressSanitizerModulePass(LLVMPassManagerRef PM); 29 void LLVMAddThreadSanitizerPass(LLVMPassManagerRef PM); 30 void LLVMAddMemorySanitizerPass(LLVMPassManagerRef PM); 31 void LLVMAddDataFlowSanitizerPass(LLVMPassManagerRef PM, int ABIListFilesNum, 32 const char **ABIListFiles); 33 34 #ifdef __cplusplus 35 } 36 #endif 37 38 #endif 39