diff options
author | Alexey Samsonov <samsonov@google.com> | 2013-08-06 10:32:39 +0000 |
---|---|---|
committer | Alexey Samsonov <samsonov@google.com> | 2013-08-06 10:32:39 +0000 |
commit | 749d35c593eb3238c5dcb7284f1e3aee60d57b9e (patch) | |
tree | 728270bec409941621593b81a9641f7f3a8b984c | |
parent | d113448c1dd5f40522c3c02db96e87a9eb59eaf4 (diff) | |
download | external_llvm-749d35c593eb3238c5dcb7284f1e3aee60d57b9e.zip external_llvm-749d35c593eb3238c5dcb7284f1e3aee60d57b9e.tar.gz external_llvm-749d35c593eb3238c5dcb7284f1e3aee60d57b9e.tar.bz2 |
Add LLVM-style RTTI to DIContext/DWARFContext classes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187790 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/DebugInfo/DIContext.h | 9 | ||||
-rw-r--r-- | lib/DebugInfo/DWARFContext.h | 7 |
2 files changed, 15 insertions, 1 deletions
diff --git a/include/llvm/DebugInfo/DIContext.h b/include/llvm/DebugInfo/DIContext.h index bdd8dce..4bb7c77 100644 --- a/include/llvm/DebugInfo/DIContext.h +++ b/include/llvm/DebugInfo/DIContext.h @@ -21,6 +21,7 @@ #include "llvm/ADT/StringRef.h" #include "llvm/Object/ObjectFile.h" #include "llvm/Object/RelocVisitor.h" +#include "llvm/Support/Casting.h" #include "llvm/Support/DataTypes.h" namespace llvm { @@ -122,6 +123,12 @@ typedef DenseMap<uint64_t, std::pair<uint8_t, int64_t> > RelocAddrMap; class DIContext { public: + enum DIContextKind { + CK_DWARF + }; + DIContextKind getKind() const { return Kind; } + + DIContext(DIContextKind K) : Kind(K) {} virtual ~DIContext(); /// getDWARFContext - get a context for binary DWARF data. @@ -135,6 +142,8 @@ public: uint64_t Size, DILineInfoSpecifier Specifier = DILineInfoSpecifier()) = 0; virtual DIInliningInfo getInliningInfoForAddress(uint64_t Address, DILineInfoSpecifier Specifier = DILineInfoSpecifier()) = 0; +private: + const DIContextKind Kind; }; } diff --git a/lib/DebugInfo/DWARFContext.h b/lib/DebugInfo/DWARFContext.h index 058476e..5d8f714 100644 --- a/lib/DebugInfo/DWARFContext.h +++ b/lib/DebugInfo/DWARFContext.h @@ -48,7 +48,12 @@ class DWARFContext : public DIContext { void parseDWOCompileUnits(); public: - DWARFContext() {} + DWARFContext() : DIContext(CK_DWARF) {} + + static bool classof(const DIContext *DICtx) { + return DICtx->getKind() == CK_DWARF; + } + virtual void dump(raw_ostream &OS, DIDumpType DumpType = DIDT_All); /// Get the number of compile units in this context. |