//===- AddressSanitizer.h - AddressSanitizer instrumentation ----*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // This file declares the AddressSanitizer class which is a port of the legacy // AddressSanitizer pass to use the new PassManager infrastructure. // //===----------------------------------------------------------------------===// #ifndef LLVM_TRANSFORMS_INSTRUMENTATION_ADDRESSSANITIZER_H #define LLVM_TRANSFORMS_INSTRUMENTATION_ADDRESSSANITIZER_H #include "llvm/IR/PassManager.h" #include "llvm/Transforms/Instrumentation/AddressSanitizerOptions.h" namespace llvm { class Module; class raw_ostream; struct AddressSanitizerOptions { … }; /// Public interface to the address sanitizer module pass for instrumenting code /// to check for various memory errors. /// /// This adds 'asan.module_ctor' to 'llvm.global_ctors'. This pass may also /// run intependently of the function address sanitizer. class AddressSanitizerPass : public PassInfoMixin<AddressSanitizerPass> { … }; struct ASanAccessInfo { … }; } // namespace llvm #endif