//===-- Logger.h ------------------------------------------------*- 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 // //===----------------------------------------------------------------------===// #ifndef LLVM_CLANG_ANALYSIS_FLOWSENSITIVE_LOGGER_H #define LLVM_CLANG_ANALYSIS_FLOWSENSITIVE_LOGGER_H #include "clang/Analysis/CFG.h" #include "llvm/Support/raw_ostream.h" #include <memory> namespace clang::dataflow { // Forward declarations so we can use Logger anywhere in the framework. class AdornedCFG; class TypeErasedDataflowAnalysis; struct TypeErasedDataflowAnalysisState; /// A logger is notified as the analysis progresses. /// It can produce a report of the analysis's findings and how it came to them. /// /// The framework reports key structural events (e.g. traversal of blocks). /// The specific analysis can add extra details to be presented in context. class Logger { … }; } // namespace clang::dataflow #endif