move library-specific diagnostic headers into library private dirs.  Reduce
redundant #includes.  Patch by Anders Johnsen!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63271 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Driver/clang.cpp b/Driver/clang.cpp
index fba2df1..f5bb058 100644
--- a/Driver/clang.cpp
+++ b/Driver/clang.cpp
@@ -29,6 +29,7 @@
 #include "clang/Driver/InitHeaderSearch.h"
 #include "clang/Driver/TextDiagnosticBuffer.h"
 #include "clang/Driver/TextDiagnosticPrinter.h"
+#include "clang/Driver/DriverDiagnostic.h"
 #include "clang/Analysis/PathDiagnostic.h"
 #include "clang/AST/Decl.h"
 #include "clang/AST/TranslationUnit.h"
@@ -40,7 +41,6 @@
 #include "clang/Basic/FileManager.h"
 #include "clang/Basic/SourceManager.h"
 #include "clang/Basic/TargetInfo.h"
-#include "clang/Basic/DiagnosticDriver.h"
 #include "llvm/ADT/OwningPtr.h"
 #include "llvm/ADT/SmallPtrSet.h"
 #include "llvm/ADT/StringExtras.h"
diff --git a/include/clang/Basic/DiagnosticAST.h b/include/clang/AST/ASTDiagnostic.h
similarity index 81%
rename from include/clang/Basic/DiagnosticAST.h
rename to include/clang/AST/ASTDiagnostic.h
index 1a14016..8adc2cd 100644
--- a/include/clang/Basic/DiagnosticAST.h
+++ b/include/clang/AST/ASTDiagnostic.h
@@ -10,15 +10,15 @@
 #ifndef LLVM_CLANG_DIAGNOSTICAST_H
 #define LLVM_CLANG_DIAGNOSTICAST_H
 
-#include "clang/Basic/DiagnosticAST.h"
+#include "clang/Basic/Diagnostic.h"
 
 namespace clang {
   namespace diag { 
     enum {
 #define DIAG(ENUM,FLAGS,DESC) ENUM,
-#include "DiagnosticCommonKinds.def"
+#include "clang/Basic/DiagnosticCommonKinds.def"
 #define ASTSTART
-#include "DiagnosticASTKinds.def"
+#include "clang/Basic/DiagnosticASTKinds.def"
       NUM_BUILTIN_AST_DIAGNOSTICS
     };
   }  // end namespace diag
diff --git a/include/clang/Basic/DiagnosticAnalysis.h b/include/clang/Analysis/AnalysisDiagnostic.h
similarity index 86%
rename from include/clang/Basic/DiagnosticAnalysis.h
rename to include/clang/Analysis/AnalysisDiagnostic.h
index 9dc008e..75d39e1 100644
--- a/include/clang/Basic/DiagnosticAnalysis.h
+++ b/include/clang/Analysis/AnalysisDiagnostic.h
@@ -16,9 +16,9 @@
   namespace diag { 
     enum {
 #define DIAG(ENUM,FLAGS,DESC) ENUM,
-#include "DiagnosticCommonKinds.def"
+#include "clang/Basic/DiagnosticCommonKinds.def"
 #define ANALYSISSTART
-#include "DiagnosticAnalysisKinds.def"
+#include "clang/Basic/DiagnosticAnalysisKinds.def"
       NUM_BUILTIN_ANALYSIS_DIAGNOSTICS
     };
   }  // end namespace diag
diff --git a/include/clang/Basic/DiagnosticDriver.h b/include/clang/Basic/DiagnosticDriver.h
deleted file mode 100644
index 60cdfcd..0000000
--- a/include/clang/Basic/DiagnosticDriver.h
+++ /dev/null
@@ -1,57 +0,0 @@
-//===--- DiagnosticDriver.h - Diagnostics for the driver --------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_CLANG_DIAGNOSTICDRIVER_H
-#define LLVM_CLANG_DIAGNOSTICDRIVER_H
-
-#include "clang/Basic/Diagnostic.h"
-
-namespace clang {
-  namespace diag { 
-    enum {
-#define DIAG(ENUM,FLAGS,DESC) ENUM,
-#include "DiagnosticCommonKinds.def"
-      NUM_BUILTIN_DRIVER_DIAGNOSTICS
-    };
-  }  // end namespace diag
-}  // end namespace clang
-
-#endif
-#ifndef LLVM_CLANG_DIAGNOSTICDRIVER_H
-#define LLVM_CLANG_DIAGNOSTICDRIVER_H
-
-#include "clang/Basic/Diagnostic.h"
-
-namespace clang {
-  namespace diag { 
-    enum {
-#define DIAG(ENUM,FLAGS,DESC) ENUM,
-#include "DiagnosticCommonKinds.def"
-      NUM_BUILTIN_DRIVER_DIAGNOSTICS
-    };
-  }  // end namespace diag
-}  // end namespace clang
-
-#endif
-#ifndef LLVM_CLANG_DIAGNOSTICDRIVER_H
-#define LLVM_CLANG_DIAGNOSTICDRIVER_H
-
-#include "clang/Basic/Diagnostic.h"
-
-namespace clang {
-  namespace diag { 
-    enum {
-#define DIAG(ENUM,FLAGS,DESC) ENUM,
-#include "DiagnosticCommonKinds.def"
-      NUM_BUILTIN_DRIVER_DIAGNOSTICS
-    };
-  }  // end namespace diag
-}  // end namespace clang
-
-#endif
diff --git a/include/clang/Basic/DiagnosticLex.h b/include/clang/Driver/DriverDiagnostic.h
similarity index 64%
copy from include/clang/Basic/DiagnosticLex.h
copy to include/clang/Driver/DriverDiagnostic.h
index 5430b73..4afe5b2 100644
--- a/include/clang/Basic/DiagnosticLex.h
+++ b/include/clang/Driver/DriverDiagnostic.h
@@ -1,4 +1,4 @@
-//===--- DiagnosticLex.h - Diagnostics for liblex ---------------*- C++ -*-===//
+//===--- DiagnosticDriver.h - Diagnostics for the driver --------*- C++ -*-===//
 //
 //                     The LLVM Compiler Infrastructure
 //
@@ -7,8 +7,8 @@
 //
 //===----------------------------------------------------------------------===//
 
-#ifndef LLVM_CLANG_DIAGNOSTICLEX_H
-#define LLVM_CLANG_DIAGNOSTICLEX_H
+#ifndef LLVM_CLANG_DIAGNOSTICDRIVER_H
+#define LLVM_CLANG_DIAGNOSTICDRIVER_H
 
 #include "clang/Basic/Diagnostic.h"
 
@@ -16,12 +16,11 @@
   namespace diag { 
     enum {
 #define DIAG(ENUM,FLAGS,DESC) ENUM,
-#include "DiagnosticCommonKinds.def"
-#define LEXSTART
-#include "DiagnosticLexKinds.def"
-      NUM_BUILTIN_LEX_DIAGNOSTICS
+#include "clang/Basic/DiagnosticCommonKinds.def"
+      NUM_BUILTIN_DRIVER_DIAGNOSTICS
     };
   }  // end namespace diag
 }  // end namespace clang
 
 #endif
+
diff --git a/include/clang/Basic/DiagnosticLex.h b/include/clang/Lex/LexDiagnostic.h
similarity index 86%
rename from include/clang/Basic/DiagnosticLex.h
rename to include/clang/Lex/LexDiagnostic.h
index 5430b73..3d285cd 100644
--- a/include/clang/Basic/DiagnosticLex.h
+++ b/include/clang/Lex/LexDiagnostic.h
@@ -16,9 +16,9 @@
   namespace diag { 
     enum {
 #define DIAG(ENUM,FLAGS,DESC) ENUM,
-#include "DiagnosticCommonKinds.def"
+#include "clang/Basic/DiagnosticCommonKinds.def"
 #define LEXSTART
-#include "DiagnosticLexKinds.def"
+#include "clang/Basic/DiagnosticLexKinds.def"
       NUM_BUILTIN_LEX_DIAGNOSTICS
     };
   }  // end namespace diag
diff --git a/include/clang/Basic/DiagnosticParse.h b/include/clang/Parse/ParseDiagnostic.h
similarity index 86%
rename from include/clang/Basic/DiagnosticParse.h
rename to include/clang/Parse/ParseDiagnostic.h
index 272f6ef..12a4b25 100644
--- a/include/clang/Basic/DiagnosticParse.h
+++ b/include/clang/Parse/ParseDiagnostic.h
@@ -16,9 +16,9 @@
   namespace diag { 
     enum {
 #define DIAG(ENUM,FLAGS,DESC) ENUM,
-#include "DiagnosticCommonKinds.def"
+#include "clang/Basic/DiagnosticCommonKinds.def"
 #define PARSESTART
-#include "DiagnosticParseKinds.def"
+#include "clang/Basic/DiagnosticParseKinds.def"
       NUM_BUILTIN_PARSE_DIAGNOSTICS
     };
   }  // end namespace diag
diff --git a/include/clang/Basic/DiagnosticSema.h b/include/clang/Sema/SemaDiagnostic.h
similarity index 86%
rename from include/clang/Basic/DiagnosticSema.h
rename to include/clang/Sema/SemaDiagnostic.h
index c0644a1..52fa696 100644
--- a/include/clang/Basic/DiagnosticSema.h
+++ b/include/clang/Sema/SemaDiagnostic.h
@@ -16,9 +16,9 @@
   namespace diag { 
     enum {
 #define DIAG(ENUM,FLAGS,DESC) ENUM,
-#include "DiagnosticCommonKinds.def"
+#include "clang/Basic/DiagnosticCommonKinds.def"
 #define SEMASTART
-#include "DiagnosticSemaKinds.def"
+#include "clang/Basic/DiagnosticSemaKinds.def"
       NUM_BUILTIN_SEMA_DIAGNOSTICS
     };
   }  // end namespace diag
diff --git a/lib/AST/ExprConstant.cpp b/lib/AST/ExprConstant.cpp
index c444a19..f07df0a 100644
--- a/lib/AST/ExprConstant.cpp
+++ b/lib/AST/ExprConstant.cpp
@@ -15,7 +15,7 @@
 #include "clang/AST/ASTContext.h"
 #include "clang/AST/RecordLayout.h"
 #include "clang/AST/StmtVisitor.h"
-#include "clang/Basic/DiagnosticAST.h"
+#include "clang/AST/ASTDiagnostic.h"
 #include "clang/Basic/TargetInfo.h"
 #include "llvm/Support/Compiler.h"
 using namespace clang;
diff --git a/lib/Analysis/UninitializedValues.cpp b/lib/Analysis/UninitializedValues.cpp
index 3947803..9ff99f1 100644
--- a/lib/Analysis/UninitializedValues.cpp
+++ b/lib/Analysis/UninitializedValues.cpp
@@ -14,7 +14,7 @@
 #include "clang/Analysis/Analyses/UninitializedValues.h"
 #include "clang/Analysis/Visitors/CFGRecStmtDeclVisitor.h"
 #include "clang/Analysis/LocalCheckers.h"
-#include "clang/Basic/DiagnosticAnalysis.h"
+#include "clang/Analysis/AnalysisDiagnostic.h"
 #include "clang/AST/ASTContext.h"
 #include "clang/Analysis/FlowSensitive/DataflowSolver.h"
 #include "llvm/Support/Compiler.h"
diff --git a/lib/Lex/Lexer.cpp b/lib/Lex/Lexer.cpp
index 2bf9300..72715c9 100644
--- a/lib/Lex/Lexer.cpp
+++ b/lib/Lex/Lexer.cpp
@@ -26,7 +26,7 @@
 
 #include "clang/Lex/Lexer.h"
 #include "clang/Lex/Preprocessor.h"
-#include "clang/Basic/DiagnosticLex.h"
+#include "clang/Lex/LexDiagnostic.h"
 #include "clang/Basic/SourceManager.h"
 #include "llvm/Support/Compiler.h"
 #include "llvm/Support/MemoryBuffer.h"
diff --git a/lib/Lex/LiteralSupport.cpp b/lib/Lex/LiteralSupport.cpp
index b06f9a4..93b653a 100644
--- a/lib/Lex/LiteralSupport.cpp
+++ b/lib/Lex/LiteralSupport.cpp
@@ -14,7 +14,7 @@
 
 #include "clang/Lex/LiteralSupport.h"
 #include "clang/Lex/Preprocessor.h"
-#include "clang/Basic/DiagnosticLex.h"
+#include "clang/Lex/LexDiagnostic.h"
 #include "clang/Basic/TargetInfo.h"
 #include "llvm/ADT/StringExtras.h"
 using namespace clang;
diff --git a/lib/Lex/MacroArgs.cpp b/lib/Lex/MacroArgs.cpp
index 63086ad..2646a61 100644
--- a/lib/Lex/MacroArgs.cpp
+++ b/lib/Lex/MacroArgs.cpp
@@ -14,7 +14,7 @@
 #include "MacroArgs.h"
 #include "clang/Lex/MacroInfo.h"
 #include "clang/Lex/Preprocessor.h"
-#include "clang/Basic/DiagnosticLex.h"
+#include "clang/Lex/LexDiagnostic.h"
 using namespace clang;
 
 /// MacroArgs ctor function - This destroys the vector passed in.
diff --git a/lib/Lex/PPDirectives.cpp b/lib/Lex/PPDirectives.cpp
index 0ddd229..1ff469b 100644
--- a/lib/Lex/PPDirectives.cpp
+++ b/lib/Lex/PPDirectives.cpp
@@ -15,7 +15,7 @@
 #include "clang/Lex/LiteralSupport.h"
 #include "clang/Lex/HeaderSearch.h"
 #include "clang/Lex/MacroInfo.h"
-#include "clang/Basic/DiagnosticLex.h"
+#include "clang/Lex/LexDiagnostic.h"
 #include "clang/Basic/SourceManager.h"
 #include "llvm/ADT/APInt.h"
 using namespace clang;
diff --git a/lib/Lex/PPExpressions.cpp b/lib/Lex/PPExpressions.cpp
index 73d677f..3cba06f 100644
--- a/lib/Lex/PPExpressions.cpp
+++ b/lib/Lex/PPExpressions.cpp
@@ -20,7 +20,7 @@
 #include "clang/Lex/MacroInfo.h"
 #include "clang/Lex/LiteralSupport.h"
 #include "clang/Basic/TargetInfo.h"
-#include "clang/Basic/DiagnosticLex.h"
+#include "clang/Lex/LexDiagnostic.h"
 #include "llvm/ADT/APSInt.h"
 using namespace clang;
 
diff --git a/lib/Lex/PPLexerChange.cpp b/lib/Lex/PPLexerChange.cpp
index f00283b..3e02fbd 100644
--- a/lib/Lex/PPLexerChange.cpp
+++ b/lib/Lex/PPLexerChange.cpp
@@ -15,7 +15,7 @@
 #include "clang/Lex/Preprocessor.h"
 #include "clang/Lex/HeaderSearch.h"
 #include "clang/Lex/MacroInfo.h"
-#include "clang/Basic/DiagnosticLex.h"
+#include "clang/Lex/LexDiagnostic.h"
 #include "clang/Basic/SourceManager.h"
 #include "llvm/Support/MemoryBuffer.h"
 
diff --git a/lib/Lex/PPMacroExpansion.cpp b/lib/Lex/PPMacroExpansion.cpp
index fb7d22a..7767543 100644
--- a/lib/Lex/PPMacroExpansion.cpp
+++ b/lib/Lex/PPMacroExpansion.cpp
@@ -17,7 +17,7 @@
 #include "clang/Lex/MacroInfo.h"
 #include "clang/Basic/SourceManager.h"
 #include "clang/Basic/FileManager.h"
-#include "clang/Basic/DiagnosticLex.h"
+#include "clang/Lex/LexDiagnostic.h"
 #include <ctime>
 using namespace clang;
 
diff --git a/lib/Lex/Pragma.cpp b/lib/Lex/Pragma.cpp
index ad46763..87410f9 100644
--- a/lib/Lex/Pragma.cpp
+++ b/lib/Lex/Pragma.cpp
@@ -16,7 +16,7 @@
 #include "clang/Lex/HeaderSearch.h"
 #include "clang/Lex/LiteralSupport.h"
 #include "clang/Lex/Preprocessor.h"
-#include "clang/Basic/DiagnosticLex.h"
+#include "clang/Lex/LexDiagnostic.h"
 #include "clang/Basic/FileManager.h"
 #include "clang/Basic/SourceManager.h"
 using namespace clang;
diff --git a/lib/Lex/Preprocessor.cpp b/lib/Lex/Preprocessor.cpp
index c265c2c..3861e7d 100644
--- a/lib/Lex/Preprocessor.cpp
+++ b/lib/Lex/Preprocessor.cpp
@@ -30,7 +30,7 @@
 #include "clang/Lex/MacroInfo.h"
 #include "clang/Lex/Pragma.h"
 #include "clang/Lex/ScratchBuffer.h"
-#include "clang/Basic/DiagnosticLex.h"
+#include "clang/Lex/LexDiagnostic.h"
 #include "clang/Basic/SourceManager.h"
 #include "clang/Basic/TargetInfo.h"
 #include "llvm/ADT/APFloat.h"
diff --git a/lib/Lex/PreprocessorLexer.cpp b/lib/Lex/PreprocessorLexer.cpp
index f75ce42..f9dfad9 100644
--- a/lib/Lex/PreprocessorLexer.cpp
+++ b/lib/Lex/PreprocessorLexer.cpp
@@ -13,7 +13,7 @@
 
 #include "clang/Lex/PreprocessorLexer.h"
 #include "clang/Lex/Preprocessor.h"
-#include "clang/Basic/DiagnosticLex.h"
+#include "clang/Lex/LexDiagnostic.h"
 #include "clang/Basic/SourceManager.h"
 using namespace clang;
 
diff --git a/lib/Lex/TokenLexer.cpp b/lib/Lex/TokenLexer.cpp
index eaa49f3..3ca0fcf 100644
--- a/lib/Lex/TokenLexer.cpp
+++ b/lib/Lex/TokenLexer.cpp
@@ -16,7 +16,7 @@
 #include "clang/Lex/MacroInfo.h"
 #include "clang/Lex/Preprocessor.h"
 #include "clang/Basic/SourceManager.h"
-#include "clang/Basic/DiagnosticLex.h"
+#include "clang/Lex/LexDiagnostic.h"
 #include "llvm/ADT/SmallVector.h"
 using namespace clang;
 
diff --git a/lib/Parse/DeclSpec.cpp b/lib/Parse/DeclSpec.cpp
index f75e3ea..32b0011 100644
--- a/lib/Parse/DeclSpec.cpp
+++ b/lib/Parse/DeclSpec.cpp
@@ -12,7 +12,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "clang/Parse/DeclSpec.h"
-#include "clang/Basic/DiagnosticParse.h"
+#include "clang/Parse/ParseDiagnostic.h"
 #include "clang/Basic/LangOptions.h"
 #include "llvm/ADT/STLExtras.h"
 using namespace clang;
diff --git a/lib/Parse/ExtensionRAIIObject.h b/lib/Parse/ExtensionRAIIObject.h
index 4593dcf..928d443 100644
--- a/lib/Parse/ExtensionRAIIObject.h
+++ b/lib/Parse/ExtensionRAIIObject.h
@@ -14,7 +14,7 @@
 #ifndef LLVM_CLANG_PARSE_EXTENSION_RAII_OBJECT_H
 #define LLVM_CLANG_PARSE_EXTENSION_RAII_OBJECT_H
 
-#include "clang/Basic/DiagnosticParse.h"
+#include "clang/Parse/ParseDiagnostic.h"
 
 namespace clang {
 
diff --git a/lib/Parse/ParseCXXInlineMethods.cpp b/lib/Parse/ParseCXXInlineMethods.cpp
index bf9b3b2..4aa923c 100644
--- a/lib/Parse/ParseCXXInlineMethods.cpp
+++ b/lib/Parse/ParseCXXInlineMethods.cpp
@@ -11,7 +11,7 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include "clang/Basic/DiagnosticParse.h"
+#include "clang/Parse/ParseDiagnostic.h"
 #include "clang/Parse/Parser.h"
 #include "clang/Parse/DeclSpec.h"
 #include "clang/Parse/Scope.h"
diff --git a/lib/Parse/ParseDecl.cpp b/lib/Parse/ParseDecl.cpp
index eb5cedd..7b6d8f8 100644
--- a/lib/Parse/ParseDecl.cpp
+++ b/lib/Parse/ParseDecl.cpp
@@ -12,7 +12,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "clang/Parse/Parser.h"
-#include "clang/Basic/DiagnosticParse.h"
+#include "clang/Parse/ParseDiagnostic.h"
 #include "clang/Parse/Scope.h"
 #include "ExtensionRAIIObject.h"
 #include "AstGuard.h"
diff --git a/lib/Parse/ParseDeclCXX.cpp b/lib/Parse/ParseDeclCXX.cpp
index 27b2d74..628331f 100644
--- a/lib/Parse/ParseDeclCXX.cpp
+++ b/lib/Parse/ParseDeclCXX.cpp
@@ -12,7 +12,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "clang/Parse/Parser.h"
-#include "clang/Basic/DiagnosticParse.h"
+#include "clang/Parse/ParseDiagnostic.h"
 #include "clang/Parse/DeclSpec.h"
 #include "clang/Parse/Scope.h"
 #include "AstGuard.h"
diff --git a/lib/Parse/ParseExprCXX.cpp b/lib/Parse/ParseExprCXX.cpp
index 6a2ef36..f434cfb 100644
--- a/lib/Parse/ParseExprCXX.cpp
+++ b/lib/Parse/ParseExprCXX.cpp
@@ -11,7 +11,7 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include "clang/Basic/DiagnosticParse.h"
+#include "clang/Parse/ParseDiagnostic.h"
 #include "clang/Parse/Parser.h"
 #include "clang/Parse/DeclSpec.h"
 #include "AstGuard.h"
diff --git a/lib/Parse/ParseInit.cpp b/lib/Parse/ParseInit.cpp
index 1e14dd6..c654a75 100644
--- a/lib/Parse/ParseInit.cpp
+++ b/lib/Parse/ParseInit.cpp
@@ -14,7 +14,7 @@
 #include "clang/Parse/Designator.h"
 #include "clang/Parse/Parser.h"
 #include "AstGuard.h"
-#include "clang/Basic/DiagnosticParse.h"
+#include "clang/Parse/ParseDiagnostic.h"
 #include "llvm/ADT/SmallString.h"
 using namespace clang;
 
diff --git a/lib/Parse/ParseObjc.cpp b/lib/Parse/ParseObjc.cpp
index 2cbb564..5d7d7f1 100644
--- a/lib/Parse/ParseObjc.cpp
+++ b/lib/Parse/ParseObjc.cpp
@@ -15,7 +15,7 @@
 #include "clang/Parse/DeclSpec.h"
 #include "clang/Parse/Scope.h"
 #include "AstGuard.h"
-#include "clang/Basic/DiagnosticParse.h"
+#include "clang/Parse/ParseDiagnostic.h"
 #include "llvm/ADT/SmallVector.h"
 using namespace clang;
 
diff --git a/lib/Parse/ParsePragma.cpp b/lib/Parse/ParsePragma.cpp
index 279038c..01496b3 100644
--- a/lib/Parse/ParsePragma.cpp
+++ b/lib/Parse/ParsePragma.cpp
@@ -12,7 +12,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "ParsePragma.h"
-#include "clang/Basic/DiagnosticParse.h"
+#include "clang/Parse/ParseDiagnostic.h"
 #include "clang/Lex/Preprocessor.h"
 #include "clang/Parse/Action.h"
 using namespace clang;
diff --git a/lib/Parse/ParseTemplate.cpp b/lib/Parse/ParseTemplate.cpp
index ea54e7e..b9a5514 100644
--- a/lib/Parse/ParseTemplate.cpp
+++ b/lib/Parse/ParseTemplate.cpp
@@ -12,7 +12,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "clang/Parse/Parser.h"
-#include "clang/Basic/DiagnosticParse.h"
+#include "clang/Parse/ParseDiagnostic.h"
 #include "clang/Parse/DeclSpec.h"
 #include "clang/Parse/Scope.h"
 
diff --git a/lib/Parse/ParseTentative.cpp b/lib/Parse/ParseTentative.cpp
index 5b242d8..445dd8b 100644
--- a/lib/Parse/ParseTentative.cpp
+++ b/lib/Parse/ParseTentative.cpp
@@ -13,7 +13,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "clang/Parse/Parser.h"
-#include "clang/Basic/DiagnosticParse.h"
+#include "clang/Parse/ParseDiagnostic.h"
 using namespace clang;
 
 /// isCXXDeclarationStatement - C++-specialized function that disambiguates
diff --git a/lib/Parse/Parser.cpp b/lib/Parse/Parser.cpp
index 33ce08e..8685a59 100644
--- a/lib/Parse/Parser.cpp
+++ b/lib/Parse/Parser.cpp
@@ -12,7 +12,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "clang/Parse/Parser.h"
-#include "clang/Basic/DiagnosticParse.h"
+#include "clang/Parse/ParseDiagnostic.h"
 #include "clang/Parse/DeclSpec.h"
 #include "clang/Parse/Scope.h"
 #include "ExtensionRAIIObject.h"
diff --git a/lib/Sema/Sema.cpp b/lib/Sema/Sema.cpp
index 4f659b6..6041736 100644
--- a/lib/Sema/Sema.cpp
+++ b/lib/Sema/Sema.cpp
@@ -17,7 +17,6 @@
 #include "clang/AST/DeclObjC.h"
 #include "clang/AST/Expr.h"
 #include "clang/Lex/Preprocessor.h"
-#include "clang/Basic/DiagnosticSema.h"
 using namespace clang;
 
 /// ConvertQualTypeToStringFn - This function is used to pretty print the 
diff --git a/lib/Sema/Sema.h b/lib/Sema/Sema.h
index f14aba6..4a81f71 100644
--- a/lib/Sema/Sema.h
+++ b/lib/Sema/Sema.h
@@ -20,7 +20,7 @@
 #include "SemaOverload.h"
 #include "clang/AST/DeclBase.h"
 #include "clang/Parse/Action.h"
-#include "clang/Basic/DiagnosticSema.h"
+#include "clang/Sema/SemaDiagnostic.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/DenseSet.h"
 #include "llvm/ADT/SmallPtrSet.h"
diff --git a/lib/Sema/SemaCXXScopeSpec.cpp b/lib/Sema/SemaCXXScopeSpec.cpp
index 357dcd7..cf93571 100644
--- a/lib/Sema/SemaCXXScopeSpec.cpp
+++ b/lib/Sema/SemaCXXScopeSpec.cpp
@@ -14,7 +14,6 @@
 #include "Sema.h"

 #include "clang/AST/ASTContext.h"

 #include "clang/Parse/DeclSpec.h"

-#include "clang/Basic/DiagnosticSema.h"

 #include "llvm/ADT/STLExtras.h"

 using namespace clang;

 

diff --git a/lib/Sema/SemaChecking.cpp b/lib/Sema/SemaChecking.cpp
index 5b15a1a..92cad10 100644
--- a/lib/Sema/SemaChecking.cpp
+++ b/lib/Sema/SemaChecking.cpp
@@ -18,7 +18,6 @@
 #include "clang/AST/ExprCXX.h"
 #include "clang/AST/ExprObjC.h"
 #include "clang/Lex/Preprocessor.h"
-#include "clang/Basic/DiagnosticSema.h"
 #include "SemaUtil.h"
 using namespace clang;
 
diff --git a/lib/Sema/SemaDecl.cpp b/lib/Sema/SemaDecl.cpp
index 77f99e8..7572560 100644
--- a/lib/Sema/SemaDecl.cpp
+++ b/lib/Sema/SemaDecl.cpp
@@ -18,7 +18,6 @@
 #include "clang/AST/DeclObjC.h"
 #include "clang/AST/ExprCXX.h"
 #include "clang/Parse/DeclSpec.h"
-#include "clang/Basic/DiagnosticSema.h"
 #include "clang/Basic/TargetInfo.h"
 #include "clang/Basic/SourceManager.h"
 // FIXME: layering (ideally, Sema shouldn't be dependent on Lex API's)
diff --git a/lib/Sema/SemaDeclAttr.cpp b/lib/Sema/SemaDeclAttr.cpp
index c87483d..bf4549d 100644
--- a/lib/Sema/SemaDeclAttr.cpp
+++ b/lib/Sema/SemaDeclAttr.cpp
@@ -15,7 +15,6 @@
 #include "clang/AST/ASTContext.h"
 #include "clang/AST/DeclObjC.h"
 #include "clang/AST/Expr.h"
-#include "clang/Basic/DiagnosticSema.h"
 #include "clang/Basic/TargetInfo.h"
 #include "clang/Parse/DeclSpec.h"
 #include <llvm/ADT/StringExtras.h>
diff --git a/lib/Sema/SemaDeclCXX.cpp b/lib/Sema/SemaDeclCXX.cpp
index a61184f..1870a8f 100644
--- a/lib/Sema/SemaDeclCXX.cpp
+++ b/lib/Sema/SemaDeclCXX.cpp
@@ -18,7 +18,6 @@
 #include "clang/AST/TypeOrdering.h"
 #include "clang/AST/StmtVisitor.h"
 #include "clang/Lex/Preprocessor.h"
-#include "clang/Basic/DiagnosticSema.h"
 #include "clang/Parse/DeclSpec.h"
 #include "llvm/ADT/STLExtras.h"
 #include "llvm/Support/Compiler.h"
diff --git a/lib/Sema/SemaDeclObjC.cpp b/lib/Sema/SemaDeclObjC.cpp
index fcf9a92..3371e3e 100644
--- a/lib/Sema/SemaDeclObjC.cpp
+++ b/lib/Sema/SemaDeclObjC.cpp
@@ -14,7 +14,6 @@
 #include "Sema.h"
 #include "clang/AST/ASTContext.h"
 #include "clang/AST/DeclObjC.h"
-#include "clang/Basic/DiagnosticSema.h"
 #include "clang/Parse/DeclSpec.h"
 
 using namespace clang;
diff --git a/lib/Sema/SemaExpr.cpp b/lib/Sema/SemaExpr.cpp
index 2eb4605..5ebec02 100644
--- a/lib/Sema/SemaExpr.cpp
+++ b/lib/Sema/SemaExpr.cpp
@@ -18,7 +18,6 @@
 #include "clang/AST/ExprObjC.h"
 #include "clang/Lex/Preprocessor.h"
 #include "clang/Lex/LiteralSupport.h"
-#include "clang/Basic/DiagnosticSema.h"
 #include "clang/Basic/SourceManager.h"
 #include "clang/Basic/TargetInfo.h"
 #include "clang/Parse/DeclSpec.h"
diff --git a/lib/Sema/SemaExprCXX.cpp b/lib/Sema/SemaExprCXX.cpp
index 743fa12..d0ceb97 100644
--- a/lib/Sema/SemaExprCXX.cpp
+++ b/lib/Sema/SemaExprCXX.cpp
@@ -16,7 +16,6 @@
 #include "clang/AST/ASTContext.h"
 #include "clang/Parse/DeclSpec.h"
 #include "clang/Lex/Preprocessor.h"
-#include "clang/Basic/DiagnosticSema.h"
 #include "clang/Basic/TargetInfo.h"
 #include "llvm/ADT/STLExtras.h"
 using namespace clang;
diff --git a/lib/Sema/SemaExprObjC.cpp b/lib/Sema/SemaExprObjC.cpp
index a19a1d1..f436e61 100644
--- a/lib/Sema/SemaExprObjC.cpp
+++ b/lib/Sema/SemaExprObjC.cpp
@@ -15,7 +15,6 @@
 #include "clang/AST/ASTContext.h"
 #include "clang/AST/DeclObjC.h"
 #include "clang/AST/ExprObjC.h"
-#include "clang/Basic/DiagnosticSema.h"
 using namespace clang;
 
 Sema::ExprResult Sema::ParseObjCStringLiteral(SourceLocation *AtLocs, 
diff --git a/lib/Sema/SemaInherit.cpp b/lib/Sema/SemaInherit.cpp
index 307c527..cb58063 100644
--- a/lib/Sema/SemaInherit.cpp
+++ b/lib/Sema/SemaInherit.cpp
@@ -19,7 +19,6 @@
 #include "clang/AST/DeclCXX.h"
 #include "clang/AST/Type.h"
 #include "clang/AST/TypeOrdering.h"
-#include "clang/Basic/DiagnosticSema.h"
 #include <algorithm>
 #include <memory>
 #include <set>
diff --git a/lib/Sema/SemaInit.cpp b/lib/Sema/SemaInit.cpp
index bb523e1..5dc5775 100644
--- a/lib/Sema/SemaInit.cpp
+++ b/lib/Sema/SemaInit.cpp
@@ -18,7 +18,6 @@
 #include "clang/AST/ASTContext.h"
 #include "clang/AST/Expr.h"
 #include "clang/AST/ExprCXX.h"
-#include "clang/Basic/DiagnosticSema.h"
 #include <map>
 using namespace clang;
 
diff --git a/lib/Sema/SemaNamedCast.cpp b/lib/Sema/SemaNamedCast.cpp
index cac76b6..e2137b3 100644
--- a/lib/Sema/SemaNamedCast.cpp
+++ b/lib/Sema/SemaNamedCast.cpp
@@ -15,7 +15,6 @@
 #include "SemaInherit.h"
 #include "clang/AST/ExprCXX.h"
 #include "clang/AST/ASTContext.h"
-#include "clang/Basic/DiagnosticSema.h"
 #include "llvm/ADT/SmallVector.h"
 #include <set>
 using namespace clang;
diff --git a/lib/Sema/SemaStmt.cpp b/lib/Sema/SemaStmt.cpp
index c01eceb..cf26b90 100644
--- a/lib/Sema/SemaStmt.cpp
+++ b/lib/Sema/SemaStmt.cpp
@@ -17,7 +17,6 @@
 #include "clang/AST/DeclObjC.h"
 #include "clang/AST/Expr.h"
 #include "clang/Basic/TargetInfo.h"
-#include "clang/Basic/DiagnosticSema.h"
 using namespace clang;
 
 Sema::OwningStmtResult Sema::ActOnExprStmt(ExprArg expr) {
diff --git a/lib/Sema/SemaType.cpp b/lib/Sema/SemaType.cpp
index 5d54f46..43f8baa 100644
--- a/lib/Sema/SemaType.cpp
+++ b/lib/Sema/SemaType.cpp
@@ -15,7 +15,6 @@
 #include "clang/AST/ASTContext.h"
 #include "clang/AST/DeclObjC.h"
 #include "clang/AST/Expr.h"
-#include "clang/Basic/DiagnosticSema.h"
 #include "clang/Parse/DeclSpec.h"
 using namespace clang;