Coverage Report

Created: 2022-01-18 06:27

/Users/buildslave/jenkins/workspace/coverage/llvm-project/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
26
/// PrettyDeclStackTraceEntry - If a crash occurs in the parser while
27
/// parsing something related to a declaration, include that
28
/// declaration in the stack trace.
29
class PrettyDeclStackTraceEntry : public llvm::PrettyStackTraceEntry {
30
  ASTContext &Context;
31
  Decl *TheDecl;
32
  SourceLocation Loc;
33
  const char *Message;
34
35
public:
36
  PrettyDeclStackTraceEntry(ASTContext &Ctx, Decl *D, SourceLocation Loc,
37
                            const char *Msg)
38
8.75M
    : Context(Ctx), TheDecl(D), Loc(Loc), Message(Msg) {}
39
40
  void print(raw_ostream &OS) const override;
41
};
42
43
}
44
45
#endif