Move DIContext.h to common DebugInfo location.
[oota-llvm.git] / include / llvm / DebugInfo / PDB / PDBSymbolTypePointer.h
index ddf84138e674c43b49cd71a8f6eae3cc17835bf0..33578bad02458a5e139395a673b15f195f73afda 100644 (file)
 
 namespace llvm {
 
+class raw_ostream;
+
 class PDBSymbolTypePointer : public PDBSymbol {
 public:
-  PDBSymbolTypePointer(std::unique_ptr<IPDBRawSymbol> PointerTypeSymbol);
+  PDBSymbolTypePointer(const IPDBSession &PDBSession,
+                       std::unique_ptr<IPDBRawSymbol> Symbol);
+
+  DECLARE_PDB_SYMBOL_CONCRETE_TYPE(PDB_SymType::PointerType)
+
+  std::unique_ptr<PDBSymbol> getPointeeType() const;
+
+  void dump(PDBSymDumper &Dumper) const override;
 
   FORWARD_SYMBOL_METHOD(isConstType)
   FORWARD_SYMBOL_METHOD(getLength)
@@ -27,10 +36,6 @@ public:
   FORWARD_SYMBOL_METHOD(getTypeId)
   FORWARD_SYMBOL_METHOD(isUnalignedType)
   FORWARD_SYMBOL_METHOD(isVolatileType)
-
-  static bool classof(const PDBSymbol *S) {
-    return S->getSymTag() == PDB_SymType::PointerType;
-  }
 };
 
 } // namespace llvm