Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
14 pmbaty 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
    : Context(Ctx), TheDecl(D), Loc(Loc), Message(Msg) {}
39
 
40
  void print(raw_ostream &OS) const override;
41
};
42
 
43
}
44
 
45
#endif