clang 17.0.0git
NoopAnalysis.h
Go to the documentation of this file.
1//===-- NoopAnalysis.h ------------------------------------------*- C++ -*-===//
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//
9// This file defines a NoopAnalysis class that just uses the builtin transfer.
10//
11//===----------------------------------------------------------------------===//
12
13#ifndef LLVM_CLANG_ANALYSIS_FLOWSENSITIVE_NOOPANALYSIS_H
14#define LLVM_CLANG_ANALYSIS_FLOWSENSITIVE_NOOPANALYSIS_H
15
17#include "clang/Analysis/CFG.h"
21
22namespace clang {
23namespace dataflow {
24
25class NoopAnalysis : public DataflowAnalysis<NoopAnalysis, NoopLattice> {
26public:
27 /// Deprecated. Use the `DataflowAnalysisOptions` constructor instead.
28 NoopAnalysis(ASTContext &Context, bool ApplyBuiltinTransfer)
30 ApplyBuiltinTransfer) {}
31
32 /// `ApplyBuiltinTransfer` controls whether to run the built-in transfer
33 /// functions that model memory during the analysis. Their results are not
34 /// used by `NoopAnalysis`, but tests that need to inspect the environment
35 /// should enable them.
37 : DataflowAnalysis<NoopAnalysis, NoopLattice>(Context, Options) {}
38
39 static NoopLattice initialElement() { return {}; }
40
41 void transfer(const CFGElement &E, NoopLattice &L, Environment &Env) {}
42};
43
44} // namespace dataflow
45} // namespace clang
46
47#endif // LLVM_CLANG_ANALYSIS_FLOWSENSITIVE_NOOPANALYSIS_H
Defines the clang::ASTContext interface.
Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...
Definition: ASTContext.h:182
Represents a top-level expression in a basic block.
Definition: CFG.h:54
Base class template for dataflow analyses built on a single lattice type.
Holds the state of the program (store and heap) at a given program point.
NoopAnalysis(ASTContext &Context, DataflowAnalysisOptions Options)
ApplyBuiltinTransfer controls whether to run the built-in transfer functions that model memory during...
Definition: NoopAnalysis.h:36
NoopAnalysis(ASTContext &Context, bool ApplyBuiltinTransfer)
Deprecated. Use the DataflowAnalysisOptions constructor instead.
Definition: NoopAnalysis.h:28
void transfer(const CFGElement &E, NoopLattice &L, Environment &Env)
Definition: NoopAnalysis.h:41
static NoopLattice initialElement()
Definition: NoopAnalysis.h:39
Trivial lattice for dataflow analysis with exactly one element.
Definition: NoopLattice.h:25