1 //===- DataFlowSanitizer.h - dynamic data flow analysis -------------------===// 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 #ifndef LLVM_TRANSFORMS_INSTRUMENTATION_DATAFLOWSANITIZER_H 9 #define LLVM_TRANSFORMS_INSTRUMENTATION_DATAFLOWSANITIZER_H 10 11 #include "llvm/IR/PassManager.h" 12 #include <string> 13 #include <vector> 14 15 namespace llvm { 16 class Module; 17 18 class DataFlowSanitizerPass : public PassInfoMixin<DataFlowSanitizerPass> { 19 private: 20 std::vector<std::string> ABIListFiles; 21 22 public: 23 DataFlowSanitizerPass( 24 const std::vector<std::string> &ABIListFiles = std::vector<std::string>()) ABIListFiles(ABIListFiles)25 : ABIListFiles(ABIListFiles) {} 26 PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM); isRequired()27 static bool isRequired() { return true; } 28 }; 29 30 } // namespace llvm 31 32 #endif 33