llvm-pdbdump: Add more comprehensive dumping of symbol types.
[oota-llvm.git] / include / llvm / DebugInfo / PDB / PDBSymbolTypeArray.h
index 92a02ea1811368894a877d5114e66c40a7a8e6ed..42d0f39341ba679bb2f4d0547f92e35b0993e9af 100644 (file)
 
 namespace llvm {
 
+class raw_ostream;
+
 class PDBSymbolTypeArray : public PDBSymbol {
 public:
-  PDBSymbolTypeArray(std::unique_ptr<IPDBRawSymbol> ArrayTypeSymbol);
+  PDBSymbolTypeArray(const IPDBSession &PDBSession,
+                     std::unique_ptr<IPDBRawSymbol> ArrayTypeSymbol);
+
+  DECLARE_PDB_SYMBOL_CONCRETE_TYPE(PDB_SymType::ArrayType)
+
+  void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const override;
 
   FORWARD_SYMBOL_METHOD(getArrayIndexTypeId)
   FORWARD_SYMBOL_METHOD(isConstType)
@@ -29,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::ArrayType;
-  }
 };
 
 } // namespace llvm