Coverage Report

Created: 2019-07-24 05:18

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