diff options
author | Chris Lattner <sabre@nondot.org> | 2009-03-05 07:24:28 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-03-05 07:24:28 +0000 |
commit | 0102c30896c83f70cf6b6519fd5c674cb981c0b5 (patch) | |
tree | edcb5708d29d96daee1d2a29cf94b5cdd7aec501 /lib/Parse/MinimalAction.cpp | |
parent | 741e73efbf2ef0b7187358e5f62d79ebd78d21e0 (diff) |
When the parser is live, print out the location and spelling of its current token.
For example:
Stack dump:
0. Program arguments: clang t.cpp
1. t.cpp:4:8: current parser token: ';'
2. t.cpp:3:1: parsing struct/union/class body 'x'
Abort
It is weird that the parser is always "underneath" any parse context
actions, but the parser is created first.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66148 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Parse/MinimalAction.cpp')
-rw-r--r-- | lib/Parse/MinimalAction.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/lib/Parse/MinimalAction.cpp b/lib/Parse/MinimalAction.cpp index 5238a89957..3b8694c5d7 100644 --- a/lib/Parse/MinimalAction.cpp +++ b/lib/Parse/MinimalAction.cpp @@ -19,6 +19,29 @@ #include "llvm/Support/raw_ostream.h" using namespace clang; +/// Out-of-line virtual destructor to provide home for Action class. +ActionBase::~ActionBase() {} + +/// Out-of-line virtual destructor to provide home for Action class. +Action::~Action() {} + +// Defined out-of-line here because of dependecy on AttributeList +Action::DeclTy *Action::ActOnUsingDirective(Scope *CurScope, + SourceLocation UsingLoc, + SourceLocation NamespcLoc, + const CXXScopeSpec &SS, + SourceLocation IdentLoc, + IdentifierInfo *NamespcName, + AttributeList *AttrList) { + + // FIXME: Parser seems to assume that Action::ActOn* takes ownership over + // passed AttributeList, however other actions don't free it, is it + // temporary state or bug? + delete AttrList; + return 0; +} + + void PrettyStackTraceDecl::print(llvm::raw_ostream &OS) const { if (Loc.isValid()) { Loc.print(OS, SM); |