//===-- FunctionBlackList.cpp - blacklist of functions ----------*- C++ -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. //===----------------------------------------------------------------------===// // // This is a utility class for instrumentation passes (like AddressSanitizer // or ThreadSanitizer) to avoid instrumenting some functions based on // user-supplied blacklist. // //===----------------------------------------------------------------------===// // #include namespace llvm { class Function; class Regex; // Blacklisted functions are not instrumented. // The blacklist file contains one or more lines like this: // --- // fun:FunctionWildCard // --- // This is similar to the "ignore" feature of ThreadSanitizer. // http://code.google.com/p/data-race-test/wiki/ThreadSanitizerIgnores class FunctionBlackList { public: FunctionBlackList(const std::string &Path); bool isIn(const Function &F); private: Regex *Functions; }; } // namespace llvm