Add support for warning flag processing.

BUG=5714569

Change-Id: I96567325df605c5eb0f0bf2f2371a1cea9718a5b
diff --git a/slang.h b/slang.h
index 1350a95..2029e7a 100644
--- a/slang.h
+++ b/slang.h
@@ -79,19 +79,13 @@
   // Diagnostics Mediator (An interface for both Producer and Consumer)
   llvm::OwningPtr<clang::Diagnostic> mDiag;
 
-  // Diagnostics ID
-  llvm::IntrusiveRefCntPtr<clang::DiagnosticIDs> mDiagIDs;
-
   // Diagnostics Engine (Producer and Diagnostics Reporter)
-  llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine> mDiagEngine;
+  clang::DiagnosticsEngine *mDiagEngine;
 
   // Diagnostics Consumer
   // NOTE: The ownership is taken by mDiagEngine after creation.
   DiagnosticBuffer *mDiagClient;
 
-  void createDiagnostic();
-
-
   // The target being compiled for
   clang::TargetOptions mTargetOpts;
   llvm::OwningPtr<clang::TargetInfo> mTarget;
@@ -173,7 +167,9 @@
   Slang();
 
   void init(const std::string &Triple, const std::string &CPU,
-            const std::vector<std::string> &Features);
+            const std::vector<std::string> &Features,
+            clang::DiagnosticsEngine *DiagEngine,
+            DiagnosticBuffer *DiagClient);
 
   virtual clang::ModuleKey loadModule(clang::SourceLocation ImportLoc,
                                       clang::IdentifierInfo &ModuleName,