Add dyn_cast<> support to YAML I/O's IO class

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194655 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Nick Kledzik
2013-11-14 02:38:07 +00:00
parent e2058ff5bd
commit 04fca67d6f
3 changed files with 80 additions and 5 deletions

View File

@@ -18,6 +18,7 @@
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/StringSwitch.h"
#include "llvm/ADT/Twine.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/SourceMgr.h"
#include "llvm/Support/YAMLParser.h"
@@ -317,7 +318,7 @@ public:
IO(void *Ctxt=NULL);
virtual ~IO();
virtual bool outputting() = 0;
virtual bool outputting() const = 0;
virtual unsigned beginSequence() = 0;
virtual bool preflightElement(unsigned, void *&) = 0;
@@ -694,8 +695,10 @@ public:
// To set alternate error reporting.
void setDiagHandler(llvm::SourceMgr::DiagHandlerTy Handler, void *Ctxt = 0);
static bool classof(const IO *io) { return !io->outputting(); }
private:
virtual bool outputting();
virtual bool outputting() const;
virtual bool mapTag(StringRef, bool);
virtual void beginMapping();
virtual void endMapping();
@@ -819,7 +822,9 @@ public:
Output(llvm::raw_ostream &, void *Ctxt=NULL);
virtual ~Output();
virtual bool outputting();
static bool classof(const IO *io) { return io->outputting(); }
virtual bool outputting() const;
virtual bool mapTag(StringRef, bool);
virtual void beginMapping();
virtual void endMapping();