clang: include/clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14#ifndef LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_ANALYSISMANAGER_H

15#define LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_ANALYSISMANAGER_H

16

23

25

26class CodeInjector;

27

28namespace ento {

29 class CheckerManager;

30

32 virtual void anchor();

34

39

40

43

45

46public:

48

55

57

59 AnaCtxMgr.clear();

60 }

61

63 return AnaCtxMgr;

64 }

65

67

69 return CreateStoreMgr;

70 }

71

74 }

75

77 return CreateConstraintMgr;

78 }

79

81

83 return Ctx;

84 }

85

88 }

89

91 return LangOpts;

92 }

93

95 return PathConsumers;

96 }

97

99

102 }

103

106 }

107

110 }

111

112 template

115 }

116

119 }

120

123 }

124

126 if (SM.isInMainFile(SL))

127 return true;

128

129

130

131

132

134 if (!IL.isValid() || SM.isInMainFile(IL))

135 return false;

136

137

138 if (SM.getFilename(IL).contains("UnifiedSource")) {

139

140

141 return llvm::StringSwitch(SM.getFilename(SL).rsplit('.').second)

142 .Cases("c", "m", "mm", "C", "cc", "cp", true)

143 .Cases("cpp", "CPP", "c++", "cxx", "cppm", true)

144 .Default(false);

145 }

146

147 return false;

148 }

149

153 }

154};

155

156}

157

158}

159

160#endif

This file defines AnalysisDeclContext, a class that manages the analysis context data for context sen...

Defines the clang::Preprocessor interface.

Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...

SourceManager & getSourceManager()

void clear()

Discard all previously created AnalysisDeclContexts.

AnalysisDeclContext * getContext(const Decl *D)

AnalysisDeclContext contains the context data for the function, method or block under analysis.

ParentMap & getParentMap()

Stores options for the analyzer from the command line.

unsigned visualizeExplodedGraphWithGraphViz

IPAKind getIPAMode() const

Returns the inter-procedural analysis mode.

Represents a source-level, intra-procedural CFG that represents the control-flow of a Stmt.

CodeInjector is an interface which is responsible for injecting AST of function definitions that may ...

Decl - This represents one declaration (or definition), e.g.

Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...

Engages in a tight little dance with the lexer to efficiently preprocess tokens.

Encodes a location in the source.

bool isValid() const

Return true if this is a valid SourceLocation object.

This class handles loading and caching of source files into memory.

const LangOptions & getLangOpts() const

ConstraintManagerCreator getConstraintManagerCreator()

ASTContext & getASTContext() override

ArrayRef< PathDiagnosticConsumer * > getPathDiagnosticConsumers() override

Preprocessor & getPreprocessor() override

static bool isInCodeFile(SourceLocation SL, const SourceManager &SM)

bool isInCodeFile(SourceLocation SL)

AnalysisDeclContext * getAnalysisDeclContext(const Decl *D)

AnalysisDeclContextManager & getAnalysisDeclContextManager()

SourceManager & getSourceManager() override

T * getAnalysis(Decl const *D)

bool shouldVisualize() const

StoreManagerCreator getStoreManagerCreator()

AnalyzerOptions & options

~AnalysisManager() override

ParentMap & getParentMap(Decl const *D)

bool shouldInlineCall() const

CheckerManager * getCheckerManager() const

CFG * getCFG(Decl const *D)

AnalyzerOptions & getAnalyzerOptions() override

std::unique_ptr< ConstraintManager >(* ConstraintManagerCreator)(ProgramStateManager &, ExprEngine *)

std::vector< PathDiagnosticConsumer * > PathDiagnosticConsumers

std::unique_ptr< StoreManager >(* StoreManagerCreator)(ProgramStateManager &)

The JSON file list parser is used to communicate input to InstallAPI.

@ IPAK_None

Perform only intra-procedural analysis.

const FunctionProtoType * T