Coverage Report

Created: 2018-07-19 20:53

/Users/buildslave/jenkins/workspace/clang-stage2-coverage-R/llvm/tools/clang/include/clang/StaticAnalyzer/Frontend/FrontendActions.h
Line
Count
Source
1
//===-- FrontendActions.h - Useful Frontend Actions -------------*- C++ -*-===//
2
//
3
//                     The LLVM Compiler Infrastructure
4
//
5
// This file is distributed under the University of Illinois Open Source
6
// License. See LICENSE.TXT for details.
7
//
8
//===----------------------------------------------------------------------===//
9
10
#ifndef LLVM_CLANG_STATICANALYZER_FRONTEND_FRONTENDACTIONS_H
11
#define LLVM_CLANG_STATICANALYZER_FRONTEND_FRONTENDACTIONS_H
12
13
#include "clang/Frontend/FrontendAction.h"
14
#include "llvm/ADT/StringMap.h"
15
#include "llvm/ADT/StringRef.h"
16
17
namespace clang {
18
19
class Stmt;
20
class AnalyzerOptions;
21
22
namespace ento {
23
24
//===----------------------------------------------------------------------===//
25
// AST Consumer Actions
26
//===----------------------------------------------------------------------===//
27
28
class AnalysisAction : public ASTFrontendAction {
29
protected:
30
  std::unique_ptr<ASTConsumer> CreateASTConsumer(CompilerInstance &CI,
31
                                                 StringRef InFile) override;
32
};
33
34
/// Frontend action to parse model files.
35
///
36
/// This frontend action is responsible for parsing model files. Model files can
37
/// not be parsed on their own, they rely on type information that is available
38
/// in another translation unit. The parsing of model files is done by a
39
/// separate compiler instance that reuses the ASTContext and othen information
40
/// from the main translation unit that is being compiled. After a model file is
41
/// parsed, the function definitions will be collected into a StringMap.
42
class ParseModelFileAction : public ASTFrontendAction {
43
public:
44
  ParseModelFileAction(llvm::StringMap<Stmt *> &Bodies);
45
8
  bool isModelParsingAction() const override { return true; }
46
47
protected:
48
  std::unique_ptr<ASTConsumer> CreateASTConsumer(CompilerInstance &CI,
49
                                                 StringRef InFile) override;
50
51
private:
52
  llvm::StringMap<Stmt *> &Bodies;
53
};
54
55
void printCheckerHelp(raw_ostream &OS, ArrayRef<std::string> plugins);
56
void printEnabledCheckerList(raw_ostream &OS, ArrayRef<std::string> plugins,
57
                             const AnalyzerOptions &opts);
58
59
} // end GR namespace
60
61
} // end namespace clang
62
63
#endif