Coverage Report

Created: 2019-03-22 08:08

/Users/buildslave/jenkins/workspace/clang-stage2-coverage-R/llvm/tools/clang/include/clang/Sema/SemaConsumer.h
Line
Count
Source (jump to first uncovered line)
1
//===--- SemaConsumer.h - Abstract interface for AST semantics --*- 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 the SemaConsumer class, a subclass of
10
//  ASTConsumer that is used by AST clients that also require
11
//  additional semantic analysis.
12
//
13
//===----------------------------------------------------------------------===//
14
#ifndef LLVM_CLANG_SEMA_SEMACONSUMER_H
15
#define LLVM_CLANG_SEMA_SEMACONSUMER_H
16
17
#include "clang/AST/ASTConsumer.h"
18
19
namespace clang {
20
  class Sema;
21
22
  /// An abstract interface that should be implemented by
23
  /// clients that read ASTs and then require further semantic
24
  /// analysis of the entities in those ASTs.
25
  class SemaConsumer : public ASTConsumer {
26
    virtual void anchor();
27
  public:
28
9.04k
    SemaConsumer() {
29
9.04k
      ASTConsumer::SemaConsumer = true;
30
9.04k
    }
31
32
    /// Initialize the semantic consumer with the Sema instance
33
    /// being used to perform semantic analysis on the abstract syntax
34
    /// tree.
35
0
    virtual void InitializeSema(Sema &S) {}
36
37
    /// Inform the semantic consumer that Sema is no longer available.
38
3.48k
    virtual void ForgetSema() {}
39
40
    // isa/cast/dyn_cast support
41
89.6k
    static bool classof(const ASTConsumer *Consumer) {
42
89.6k
      return Consumer->SemaConsumer;
43
89.6k
    }
44
  };
45
}
46
47
#endif