add a virtual method to DiagnosticClient to get rid of some fragile
casting in clang-cc.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69377 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/clang-cc/clang-cc.cpp b/tools/clang-cc/clang-cc.cpp
index e9e5c37..81d1e39 100644
--- a/tools/clang-cc/clang-cc.cpp
+++ b/tools/clang-cc/clang-cc.cpp
@@ -2301,11 +2301,7 @@
     
     // Initialize language options, inferring file types from input filenames.
     LangOptions LangInfo;
-    
-    if (!VerifyDiagnostics)
-      static_cast<TextDiagnosticPrinter*>(TextDiagClient)
-        ->SetLangOpts(LangInfo);
-
+    TextDiagClient->setLangOptions(&LangInfo);
     
     InitializeBaseLanguage();
     LangKind LK = GetLanguage(InFile);
@@ -2346,7 +2342,8 @@
     // Process the source file.
     ProcessInputFile(*PP, PPFactory, InFile, ProgAction);
     
-    HeaderInfo.ClearFileInfo();      
+    HeaderInfo.ClearFileInfo();
+    TextDiagClient->setLangOptions(0);
   }
 
   if (Verbose)