Add classof implementations to the raw_ostream classes.
[oota-llvm.git] / include / llvm / Support / FormattedStream.h
index 8137daaff1f810d05ed5ba81374c451d63bc217a..71120370a0221919b167eca755e10dfc294a4294 100644 (file)
@@ -84,15 +84,21 @@ public:
   /// so it doesn't want another layer of buffering to be happening
   /// underneath it.
   ///
-  formatted_raw_ostream(raw_ostream &Stream, bool Delete = false) 
-    : raw_ostream(), TheStream(nullptr), DeleteStream(false), Position(0, 0) {
+  formatted_raw_ostream(raw_ostream &Stream, bool Delete = false)
+      : raw_ostream(SK_FORMATTED), TheStream(nullptr), DeleteStream(false),
+        Position(0, 0) {
     setStream(Stream, Delete);
   }
   explicit formatted_raw_ostream()
-    : raw_ostream(), TheStream(nullptr), DeleteStream(false), Position(0, 0) {
+      : raw_ostream(SK_FORMATTED), TheStream(nullptr), DeleteStream(false),
+        Position(0, 0) {
     Scanned = nullptr;
   }
 
+  static bool classof(const raw_ostream *OS) {
+    return OS->getKind() == SK_FORMATTED;
+  }
+
   ~formatted_raw_ostream() {
     flush();
     releaseStream();