Coverage Report

Created: 2018-09-23 03:40

/Users/buildslave/jenkins/workspace/clang-stage2-coverage-R/llvm/tools/clang/include/clang/AST/PrettyDeclStackTrace.h
Line
Count
Source
1
//===- PrettyDeclStackTrace.h - Stack trace for decl processing -*- 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
// This file defines an llvm::PrettyStackTraceEntry object for showing
11
// that a particular declaration was being processed when a crash
12
// occurred.
13
//
14
//===----------------------------------------------------------------------===//
15
16
#ifndef LLVM_CLANG_AST_PRETTYDECLSTACKTRACE_H
17
#define LLVM_CLANG_AST_PRETTYDECLSTACKTRACE_H
18
19
#include "clang/Basic/SourceLocation.h"
20
#include "llvm/Support/PrettyStackTrace.h"
21
22
namespace clang {
23
24
class ASTContext;
25
class Decl;
26
class SourceManager;
27
28
/// PrettyDeclStackTraceEntry - If a crash occurs in the parser while
29
/// parsing something related to a declaration, include that
30
/// declaration in the stack trace.
31
class PrettyDeclStackTraceEntry : public llvm::PrettyStackTraceEntry {
32
  ASTContext &Context;
33
  Decl *TheDecl;
34
  SourceLocation Loc;
35
  const char *Message;
36
37
public:
38
  PrettyDeclStackTraceEntry(ASTContext &Ctx, Decl *D, SourceLocation Loc,
39
                            const char *Msg)
40
5.66M
    : Context(Ctx), TheDecl(D), Loc(Loc), Message(Msg) {}
41
42
  void print(raw_ostream &OS) const override;
43
};
44
45
}
46
47
#endif