From 00bd44d5677783527d7517c1ffe45e4d75a0f56f Mon Sep 17 00:00:00 2001 From: Benjamin Kramer <benny.kra@googlemail.com> Date: Sat, 4 Feb 2012 12:31:12 +0000 Subject: [PATCH] Move various diagnostic operator<< overloads out of line and remove includes of Diagnostic.h. Fix all the files that depended on transitive includes of Diagnostic.h. With this patch in place changing a diagnostic no longer requires a full rebuild of the StaticAnalyzer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149781 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/AST/ASTContext.h | 1 - include/clang/AST/Decl.h | 23 ++++++++----------- include/clang/AST/DeclarationName.h | 19 ++++----------- include/clang/AST/Mangle.h | 2 ++ include/clang/AST/NestedNameSpecifier.h | 11 ++++----- include/clang/AST/Type.h | 17 +++----------- include/clang/Sema/CodeCompleteConsumer.h | 1 + include/clang/Sema/DelayedDiagnostic.h | 1 + include/clang/Sema/Sema.h | 1 + include/clang/Sema/SemaFixItUtils.h | 1 + include/clang/Serialization/ASTWriter.h | 1 + lib/AST/ASTContext.cpp | 1 + lib/AST/Decl.cpp | 15 ++++++++++++ lib/AST/DeclCXX.cpp | 1 + lib/AST/DeclarationName.cpp | 15 ++++++++++++ lib/AST/ExprConstant.cpp | 1 + lib/AST/ItaniumMangle.cpp | 1 + lib/AST/NestedNameSpecifier.cpp | 7 ++++++ lib/AST/Type.cpp | 15 ++++++++++++ lib/CodeGen/CGCXXABI.cpp | 1 + lib/CodeGen/CGDebugInfo.cpp | 3 ++- lib/CodeGen/CodeGenTBAA.cpp | 1 + lib/Sema/AnalysisBasedWarnings.cpp | 1 + lib/Serialization/ASTWriter.cpp | 1 + .../Checkers/ArrayBoundCheckerV2.cpp | 1 + .../Checkers/AttrNonNullChecker.cpp | 1 + .../Checkers/CStringChecker.cpp | 1 + .../Checkers/DivZeroChecker.cpp | 1 + lib/StaticAnalyzer/Checkers/MallocChecker.cpp | 1 + .../Checkers/ObjCAtSyncChecker.cpp | 1 + .../Checkers/PthreadLockChecker.cpp | 1 + lib/StaticAnalyzer/Checkers/StreamChecker.cpp | 1 + .../Checkers/UnixAPIChecker.cpp | 1 + .../Checkers/VLASizeChecker.cpp | 1 + lib/StaticAnalyzer/Core/AnalysisManager.cpp | 1 + lib/StaticAnalyzer/Core/BugReporter.cpp | 1 + lib/StaticAnalyzer/Core/CheckerRegistry.cpp | 1 + tools/libclang/IndexingContext.h | 2 ++ 38 files changed, 106 insertions(+), 50 deletions(-) diff --git a/include/clang/AST/ASTContext.h b/include/clang/AST/ASTContext.h index 870c8bb0405..fee8a0573fd 100644 --- a/include/clang/AST/ASTContext.h +++ b/include/clang/AST/ASTContext.h @@ -18,7 +18,6 @@ #include "clang/Basic/IdentifierTable.h" #include "clang/Basic/LangOptions.h" #include "clang/Basic/OperatorKinds.h" -#include "clang/Basic/PartialDiagnostic.h" #include "clang/Basic/VersionTuple.h" #include "clang/AST/Decl.h" #include "clang/AST/NestedNameSpecifier.h" diff --git a/include/clang/AST/Decl.h b/include/clang/AST/Decl.h index 022fcfa1b0f..b600e387148 100644 --- a/include/clang/AST/Decl.h +++ b/include/clang/AST/Decl.h @@ -41,7 +41,11 @@ class TypeLoc; class UnresolvedSetImpl; class LabelStmt; class Module; - + +// Forward declare PartialDiagnosticAt. +// FIXME: This shouldn't be here. +typedef std::pair<SourceLocation, PartialDiagnostic> PartialDiagnosticAt; + /// \brief A container of type source information. /// /// A client can read the relevant info using TypeLoc wrappers, e.g: @@ -3175,18 +3179,11 @@ public: /// Insertion operator for diagnostics. This allows sending NamedDecl's /// into a diagnostic with <<. -inline const DiagnosticBuilder &operator<<(const DiagnosticBuilder &DB, - const NamedDecl* ND) { - DB.AddTaggedVal(reinterpret_cast<intptr_t>(ND), - DiagnosticsEngine::ak_nameddecl); - return DB; -} -inline const PartialDiagnostic &operator<<(const PartialDiagnostic &PD, - const NamedDecl* ND) { - PD.AddTaggedVal(reinterpret_cast<intptr_t>(ND), - DiagnosticsEngine::ak_nameddecl); - return PD; -} +const DiagnosticBuilder &operator<<(const DiagnosticBuilder &DB, + const NamedDecl* ND); + +const PartialDiagnostic &operator<<(const PartialDiagnostic &PD, + const NamedDecl* ND); template<typename decl_type> void Redeclarable<decl_type>::setPreviousDeclaration(decl_type *PrevDecl) { diff --git a/include/clang/AST/DeclarationName.h b/include/clang/AST/DeclarationName.h index 2170f2b1ef7..0d87e2671c9 100644 --- a/include/clang/AST/DeclarationName.h +++ b/include/clang/AST/DeclarationName.h @@ -16,7 +16,6 @@ #include "clang/Basic/IdentifierTable.h" #include "clang/AST/Type.h" #include "clang/AST/CanonicalType.h" -#include "clang/Basic/PartialDiagnostic.h" namespace llvm { template <typename T> struct DenseMapInfo; @@ -517,24 +516,16 @@ public: /// Insertion operator for diagnostics. This allows sending DeclarationName's /// into a diagnostic with <<. -inline const DiagnosticBuilder &operator<<(const DiagnosticBuilder &DB, - DeclarationName N) { - DB.AddTaggedVal(N.getAsOpaqueInteger(), - DiagnosticsEngine::ak_declarationname); - return DB; -} +const DiagnosticBuilder &operator<<(const DiagnosticBuilder &DB, + DeclarationName N); /// Insertion operator for partial diagnostics. This allows binding /// DeclarationName's into a partial diagnostic with <<. -inline const PartialDiagnostic &operator<<(const PartialDiagnostic &PD, - DeclarationName N) { - PD.AddTaggedVal(N.getAsOpaqueInteger(), - DiagnosticsEngine::ak_declarationname); - return PD; -} +const PartialDiagnostic &operator<<(const PartialDiagnostic &PD, + DeclarationName N); inline raw_ostream &operator<<(raw_ostream &OS, - DeclarationNameInfo DNInfo) { + DeclarationNameInfo DNInfo) { DNInfo.printName(OS); return OS; } diff --git a/include/clang/AST/Mangle.h b/include/clang/AST/Mangle.h index 5a42aec0dc6..7c7495ee67c 100644 --- a/include/clang/AST/Mangle.h +++ b/include/clang/AST/Mangle.h @@ -27,6 +27,8 @@ namespace clang { class CXXConstructorDecl; class CXXDestructorDecl; class CXXMethodDecl; + class DeclContext; + class DiagnosticsEngine; class FunctionDecl; class NamedDecl; class ObjCMethodDecl; diff --git a/include/clang/AST/NestedNameSpecifier.h b/include/clang/AST/NestedNameSpecifier.h index bda2d31fd5a..8d4a53f23ea 100644 --- a/include/clang/AST/NestedNameSpecifier.h +++ b/include/clang/AST/NestedNameSpecifier.h @@ -14,13 +14,14 @@ #ifndef LLVM_CLANG_AST_NESTEDNAMESPECIFIER_H #define LLVM_CLANG_AST_NESTEDNAMESPECIFIER_H -#include "clang/Basic/Diagnostic.h" +#include "clang/Basic/SourceLocation.h" #include "llvm/ADT/FoldingSet.h" #include "llvm/ADT/PointerIntPair.h" namespace clang { class ASTContext; +class DiagnosticBuilder; class NamespaceAliasDecl; class NamespaceDecl; class IdentifierInfo; @@ -464,12 +465,8 @@ public: /// Insertion operator for diagnostics. This allows sending /// NestedNameSpecifiers into a diagnostic with <<. -inline const DiagnosticBuilder &operator<<(const DiagnosticBuilder &DB, - NestedNameSpecifier *NNS) { - DB.AddTaggedVal(reinterpret_cast<intptr_t>(NNS), - DiagnosticsEngine::ak_nestednamespec); - return DB; -} +const DiagnosticBuilder &operator<<(const DiagnosticBuilder &DB, + NestedNameSpecifier *NNS); } diff --git a/include/clang/AST/Type.h b/include/clang/AST/Type.h index 0fd9e51b3a3..0c0ef464776 100644 --- a/include/clang/AST/Type.h +++ b/include/clang/AST/Type.h @@ -14,11 +14,9 @@ #ifndef LLVM_CLANG_AST_TYPE_H #define LLVM_CLANG_AST_TYPE_H -#include "clang/Basic/Diagnostic.h" #include "clang/Basic/ExceptionSpecificationType.h" #include "clang/Basic/IdentifierTable.h" #include "clang/Basic/Linkage.h" -#include "clang/Basic/PartialDiagnostic.h" #include "clang/Basic/Visibility.h" #include "clang/AST/NestedNameSpecifier.h" #include "clang/AST/TemplateName.h" @@ -94,6 +92,7 @@ namespace clang { class ExtQuals; class ExtQualsTypeCommonBase; struct PrintingPolicy; + class PartialDiagnostic; template <typename> class CanQual; typedef CanQual<Type> CanQualType; @@ -4799,21 +4798,11 @@ inline const Type *Type::getBaseElementTypeUnsafe() const { /// Insertion operator for diagnostics. This allows sending QualType's into a /// diagnostic with <<. -inline const DiagnosticBuilder &operator<<(const DiagnosticBuilder &DB, - QualType T) { - DB.AddTaggedVal(reinterpret_cast<intptr_t>(T.getAsOpaquePtr()), - DiagnosticsEngine::ak_qualtype); - return DB; -} +const DiagnosticBuilder &operator<<(const DiagnosticBuilder &DB, QualType T); /// Insertion operator for partial diagnostics. This allows sending QualType's /// into a diagnostic with <<. -inline const PartialDiagnostic &operator<<(const PartialDiagnostic &PD, - QualType T) { - PD.AddTaggedVal(reinterpret_cast<intptr_t>(T.getAsOpaquePtr()), - DiagnosticsEngine::ak_qualtype); - return PD; -} +const PartialDiagnostic &operator<<(const PartialDiagnostic &PD, QualType T); // Helper class template that is used by Type::getAs to ensure that one does // not try to look through a qualified type to get to an array type. diff --git a/include/clang/Sema/CodeCompleteConsumer.h b/include/clang/Sema/CodeCompleteConsumer.h index c77b68f9da7..832c47d6afd 100644 --- a/include/clang/Sema/CodeCompleteConsumer.h +++ b/include/clang/Sema/CodeCompleteConsumer.h @@ -24,6 +24,7 @@ namespace clang { class Decl; +class Preprocessor; /// \brief Default priority values for code-completion results based /// on their kind. diff --git a/include/clang/Sema/DelayedDiagnostic.h b/include/clang/Sema/DelayedDiagnostic.h index dd2603dbc36..235f6343851 100644 --- a/include/clang/Sema/DelayedDiagnostic.h +++ b/include/clang/Sema/DelayedDiagnostic.h @@ -22,6 +22,7 @@ #define LLVM_CLANG_SEMA_DELAYED_DIAGNOSTIC_H #include "clang/AST/DeclCXX.h" +#include "clang/Basic/PartialDiagnostic.h" namespace clang { namespace sema { diff --git a/include/clang/Sema/Sema.h b/include/clang/Sema/Sema.h index c5915ca168a..99b1ed11bdb 100644 --- a/include/clang/Sema/Sema.h +++ b/include/clang/Sema/Sema.h @@ -30,6 +30,7 @@ #include "clang/AST/ExternalASTSource.h" #include "clang/AST/TypeLoc.h" #include "clang/Lex/ModuleLoader.h" +#include "clang/Basic/PartialDiagnostic.h" #include "clang/Basic/Specifiers.h" #include "clang/Basic/TemplateKinds.h" #include "clang/Basic/TypeTraits.h" diff --git a/include/clang/Sema/SemaFixItUtils.h b/include/clang/Sema/SemaFixItUtils.h index fffca679145..84e03d8242a 100644 --- a/include/clang/Sema/SemaFixItUtils.h +++ b/include/clang/Sema/SemaFixItUtils.h @@ -14,6 +14,7 @@ #define LLVM_CLANG_SEMA_FIXITUTILS_H #include "clang/AST/Expr.h" +#include "clang/Basic/Diagnostic.h" namespace clang { diff --git a/include/clang/Serialization/ASTWriter.h b/include/clang/Serialization/ASTWriter.h index f6a2c4817a5..e36f3a00a65 100644 --- a/include/clang/Serialization/ASTWriter.h +++ b/include/clang/Serialization/ASTWriter.h @@ -43,6 +43,7 @@ class ASTContext; class NestedNameSpecifier; class CXXBaseSpecifier; class CXXCtorInitializer; +class DiagnosticsEngine; class FPOptions; class HeaderSearch; class IdentifierResolver; diff --git a/lib/AST/ASTContext.cpp b/lib/AST/ASTContext.cpp index 8f9ab719b95..ca199c849f7 100644 --- a/lib/AST/ASTContext.cpp +++ b/lib/AST/ASTContext.cpp @@ -24,6 +24,7 @@ #include "clang/AST/RecordLayout.h" #include "clang/AST/Mangle.h" #include "clang/Basic/Builtins.h" +#include "clang/Basic/PartialDiagnostic.h" #include "clang/Basic/SourceManager.h" #include "clang/Basic/TargetInfo.h" #include "llvm/ADT/SmallString.h" diff --git a/lib/AST/Decl.cpp b/lib/AST/Decl.cpp index aa7bb0812a3..123b14c0560 100644 --- a/lib/AST/Decl.cpp +++ b/lib/AST/Decl.cpp @@ -25,6 +25,7 @@ #include "clang/Basic/Builtins.h" #include "clang/Basic/IdentifierTable.h" #include "clang/Basic/Module.h" +#include "clang/Basic/PartialDiagnostic.h" #include "clang/Basic/Specifiers.h" #include "clang/Basic/TargetInfo.h" #include "llvm/Support/ErrorHandling.h" @@ -2959,3 +2960,17 @@ SourceRange ImportDecl::getSourceRange() const { return SourceRange(getLocation(), getIdentifierLocs().back()); } + +const DiagnosticBuilder &clang::operator<<(const DiagnosticBuilder &DB, + const NamedDecl* ND) { + DB.AddTaggedVal(reinterpret_cast<intptr_t>(ND), + DiagnosticsEngine::ak_nameddecl); + return DB; +} + +const PartialDiagnostic &clang::operator<<(const PartialDiagnostic &PD, + const NamedDecl* ND) { + PD.AddTaggedVal(reinterpret_cast<intptr_t>(ND), + DiagnosticsEngine::ak_nameddecl); + return PD; +} diff --git a/lib/AST/DeclCXX.cpp b/lib/AST/DeclCXX.cpp index d5221031a54..d64385a5b98 100644 --- a/lib/AST/DeclCXX.cpp +++ b/lib/AST/DeclCXX.cpp @@ -20,6 +20,7 @@ #include "clang/AST/ExprCXX.h" #include "clang/AST/TypeLoc.h" #include "clang/Basic/IdentifierTable.h" +#include "clang/Basic/PartialDiagnostic.h" #include "llvm/ADT/STLExtras.h" #include "llvm/ADT/SmallPtrSet.h" using namespace clang; diff --git a/lib/AST/DeclarationName.cpp b/lib/AST/DeclarationName.cpp index a5488e67ca2..f550cf89089 100644 --- a/lib/AST/DeclarationName.cpp +++ b/lib/AST/DeclarationName.cpp @@ -18,6 +18,7 @@ #include "clang/AST/TypeLoc.h" #include "clang/AST/TypeOrdering.h" #include "clang/Basic/IdentifierTable.h" +#include "clang/Basic/PartialDiagnostic.h" #include "llvm/ADT/DenseMap.h" #include "llvm/ADT/FoldingSet.h" #include "llvm/Support/ErrorHandling.h" @@ -620,3 +621,17 @@ SourceLocation DeclarationNameInfo::getEndLoc() const { } llvm_unreachable("Unexpected declaration name kind"); } + +const DiagnosticBuilder &clang::operator<<(const DiagnosticBuilder &DB, + DeclarationName N) { + DB.AddTaggedVal(N.getAsOpaqueInteger(), + DiagnosticsEngine::ak_declarationname); + return DB; +} + +const PartialDiagnostic &clang::operator<<(const PartialDiagnostic &PD, + DeclarationName N) { + PD.AddTaggedVal(N.getAsOpaqueInteger(), + DiagnosticsEngine::ak_declarationname); + return PD; +} diff --git a/lib/AST/ExprConstant.cpp b/lib/AST/ExprConstant.cpp index 701e9ccd563..f84c6347cb0 100644 --- a/lib/AST/ExprConstant.cpp +++ b/lib/AST/ExprConstant.cpp @@ -42,6 +42,7 @@ #include "clang/AST/ASTDiagnostic.h" #include "clang/AST/Expr.h" #include "clang/Basic/Builtins.h" +#include "clang/Basic/PartialDiagnostic.h" #include "clang/Basic/TargetInfo.h" #include "llvm/ADT/SmallString.h" #include <cstring> diff --git a/lib/AST/ItaniumMangle.cpp b/lib/AST/ItaniumMangle.cpp index fabf8cf0030..5dbcf224cc2 100644 --- a/lib/AST/ItaniumMangle.cpp +++ b/lib/AST/ItaniumMangle.cpp @@ -24,6 +24,7 @@ #include "clang/AST/ExprObjC.h" #include "clang/AST/TypeLoc.h" #include "clang/Basic/ABI.h" +#include "clang/Basic/Diagnostic.h" #include "clang/Basic/SourceManager.h" #include "clang/Basic/TargetInfo.h" #include "llvm/ADT/StringExtras.h" diff --git a/lib/AST/NestedNameSpecifier.cpp b/lib/AST/NestedNameSpecifier.cpp index c59d40a8c2b..9b714ed7e88 100644 --- a/lib/AST/NestedNameSpecifier.cpp +++ b/lib/AST/NestedNameSpecifier.cpp @@ -18,6 +18,7 @@ #include "clang/AST/PrettyPrinter.h" #include "clang/AST/Type.h" #include "clang/AST/TypeLoc.h" +#include "clang/Basic/Diagnostic.h" #include "llvm/Support/raw_ostream.h" #include <cassert> @@ -639,3 +640,9 @@ NestedNameSpecifierLocBuilder::getWithLocInContext(ASTContext &Context) const { return NestedNameSpecifierLoc(Representation, Mem); } +const DiagnosticBuilder &clang::operator<<(const DiagnosticBuilder &DB, + NestedNameSpecifier *NNS) { + DB.AddTaggedVal(reinterpret_cast<intptr_t>(NNS), + DiagnosticsEngine::ak_nestednamespec); + return DB; +} diff --git a/lib/AST/Type.cpp b/lib/AST/Type.cpp index ebf5706ed03..1c5aa3194e7 100644 --- a/lib/AST/Type.cpp +++ b/lib/AST/Type.cpp @@ -20,6 +20,7 @@ #include "clang/AST/Expr.h" #include "clang/AST/PrettyPrinter.h" #include "clang/AST/TypeVisitor.h" +#include "clang/Basic/PartialDiagnostic.h" #include "clang/Basic/Specifiers.h" #include "llvm/ADT/APSInt.h" #include "llvm/ADT/StringExtras.h" @@ -2309,3 +2310,17 @@ bool QualType::hasTrivialAssignment(ASTContext &Context, bool Copying) const { return true; } + +const DiagnosticBuilder &clang::operator<<(const DiagnosticBuilder &DB, + QualType T) { + DB.AddTaggedVal(reinterpret_cast<intptr_t>(T.getAsOpaquePtr()), + DiagnosticsEngine::ak_qualtype); + return DB; +} + +const PartialDiagnostic &clang::operator<<(const PartialDiagnostic &PD, + QualType T) { + PD.AddTaggedVal(reinterpret_cast<intptr_t>(T.getAsOpaquePtr()), + DiagnosticsEngine::ak_qualtype); + return PD; +} diff --git a/lib/CodeGen/CGCXXABI.cpp b/lib/CodeGen/CGCXXABI.cpp index c1b20af799f..05f52a0b878 100644 --- a/lib/CodeGen/CGCXXABI.cpp +++ b/lib/CodeGen/CGCXXABI.cpp @@ -13,6 +13,7 @@ //===----------------------------------------------------------------------===// #include "CGCXXABI.h" +#include "clang/Basic/Diagnostic.h" using namespace clang; using namespace CodeGen; diff --git a/lib/CodeGen/CGDebugInfo.cpp b/lib/CodeGen/CGDebugInfo.cpp index 9f9d5c4b494..ed27f2d92e7 100644 --- a/lib/CodeGen/CGDebugInfo.cpp +++ b/lib/CodeGen/CGDebugInfo.cpp @@ -21,8 +21,9 @@ #include "clang/AST/DeclTemplate.h" #include "clang/AST/Expr.h" #include "clang/AST/RecordLayout.h" -#include "clang/Basic/SourceManager.h" +#include "clang/Basic/Diagnostic.h" #include "clang/Basic/FileManager.h" +#include "clang/Basic/SourceManager.h" #include "clang/Basic/Version.h" #include "clang/Frontend/CodeGenOptions.h" #include "llvm/Constants.h" diff --git a/lib/CodeGen/CodeGenTBAA.cpp b/lib/CodeGen/CodeGenTBAA.cpp index 887c1eabb0c..594c6c474c3 100644 --- a/lib/CodeGen/CodeGenTBAA.cpp +++ b/lib/CodeGen/CodeGenTBAA.cpp @@ -22,6 +22,7 @@ #include "llvm/Metadata.h" #include "llvm/Constants.h" #include "llvm/Type.h" +#include "llvm/ADT/STLExtras.h" using namespace clang; using namespace CodeGen; diff --git a/lib/Sema/AnalysisBasedWarnings.cpp b/lib/Sema/AnalysisBasedWarnings.cpp index 71bf3359ea9..447250a2aa5 100644 --- a/lib/Sema/AnalysisBasedWarnings.cpp +++ b/lib/Sema/AnalysisBasedWarnings.cpp @@ -16,6 +16,7 @@ #include "clang/Sema/AnalysisBasedWarnings.h" #include "clang/Sema/SemaInternal.h" #include "clang/Sema/ScopeInfo.h" +#include "clang/Basic/PartialDiagnostic.h" #include "clang/Basic/SourceManager.h" #include "clang/Basic/SourceLocation.h" #include "clang/Lex/Preprocessor.h" diff --git a/lib/Serialization/ASTWriter.cpp b/lib/Serialization/ASTWriter.cpp index b715d6ce3f6..507f7a017fc 100644 --- a/lib/Serialization/ASTWriter.cpp +++ b/lib/Serialization/ASTWriter.cpp @@ -29,6 +29,7 @@ #include "clang/Lex/PreprocessingRecord.h" #include "clang/Lex/Preprocessor.h" #include "clang/Lex/HeaderSearch.h" +#include "clang/Basic/Diagnostic.h" #include "clang/Basic/FileManager.h" #include "clang/Basic/FileSystemStatCache.h" #include "clang/Basic/OnDiskHashTable.h" diff --git a/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp b/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp index 288b4a0cd8c..158a7cdfe47 100644 --- a/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp +++ b/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp @@ -19,6 +19,7 @@ #include "clang/StaticAnalyzer/Core/BugReporter/BugType.h" #include "clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h" #include "clang/AST/CharUnits.h" +#include "llvm/ADT/STLExtras.h" using namespace clang; using namespace ento; diff --git a/lib/StaticAnalyzer/Checkers/AttrNonNullChecker.cpp b/lib/StaticAnalyzer/Checkers/AttrNonNullChecker.cpp index 4dcf9a1f224..4011024aeeb 100644 --- a/lib/StaticAnalyzer/Checkers/AttrNonNullChecker.cpp +++ b/lib/StaticAnalyzer/Checkers/AttrNonNullChecker.cpp @@ -17,6 +17,7 @@ #include "clang/StaticAnalyzer/Core/CheckerManager.h" #include "clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h" #include "clang/StaticAnalyzer/Core/BugReporter/BugType.h" +#include "llvm/ADT/STLExtras.h" using namespace clang; using namespace ento; diff --git a/lib/StaticAnalyzer/Checkers/CStringChecker.cpp b/lib/StaticAnalyzer/Checkers/CStringChecker.cpp index 247e34b4063..8a868bddc86 100644 --- a/lib/StaticAnalyzer/Checkers/CStringChecker.cpp +++ b/lib/StaticAnalyzer/Checkers/CStringChecker.cpp @@ -18,6 +18,7 @@ #include "clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h" #include "clang/StaticAnalyzer/Core/BugReporter/BugType.h" #include "clang/StaticAnalyzer/Core/PathSensitive/ProgramStateTrait.h" +#include "llvm/ADT/STLExtras.h" #include "llvm/ADT/StringSwitch.h" using namespace clang; diff --git a/lib/StaticAnalyzer/Checkers/DivZeroChecker.cpp b/lib/StaticAnalyzer/Checkers/DivZeroChecker.cpp index 9740cde0110..5f4add1a592 100644 --- a/lib/StaticAnalyzer/Checkers/DivZeroChecker.cpp +++ b/lib/StaticAnalyzer/Checkers/DivZeroChecker.cpp @@ -17,6 +17,7 @@ #include "clang/StaticAnalyzer/Core/CheckerManager.h" #include "clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h" #include "clang/StaticAnalyzer/Core/BugReporter/BugType.h" +#include "llvm/ADT/STLExtras.h" using namespace clang; using namespace ento; diff --git a/lib/StaticAnalyzer/Checkers/MallocChecker.cpp b/lib/StaticAnalyzer/Checkers/MallocChecker.cpp index 0fd81b4b77e..4035c7a544e 100644 --- a/lib/StaticAnalyzer/Checkers/MallocChecker.cpp +++ b/lib/StaticAnalyzer/Checkers/MallocChecker.cpp @@ -21,6 +21,7 @@ #include "clang/StaticAnalyzer/Core/PathSensitive/ProgramStateTrait.h" #include "clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h" #include "llvm/ADT/ImmutableMap.h" +#include "llvm/ADT/STLExtras.h" using namespace clang; using namespace ento; diff --git a/lib/StaticAnalyzer/Checkers/ObjCAtSyncChecker.cpp b/lib/StaticAnalyzer/Checkers/ObjCAtSyncChecker.cpp index fb7ae2c76f2..eac630400da 100644 --- a/lib/StaticAnalyzer/Checkers/ObjCAtSyncChecker.cpp +++ b/lib/StaticAnalyzer/Checkers/ObjCAtSyncChecker.cpp @@ -20,6 +20,7 @@ #include "clang/StaticAnalyzer/Core/BugReporter/BugType.h" #include "clang/StaticAnalyzer/Checkers/DereferenceChecker.h" #include "clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h" +#include "llvm/ADT/STLExtras.h" using namespace clang; using namespace ento; diff --git a/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp b/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp index 85975208af4..2f276a294c2 100644 --- a/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp +++ b/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp @@ -19,6 +19,7 @@ #include "clang/StaticAnalyzer/Core/BugReporter/BugType.h" #include "clang/StaticAnalyzer/Core/PathSensitive/ProgramStateTrait.h" #include "llvm/ADT/ImmutableList.h" +#include "llvm/ADT/STLExtras.h" using namespace clang; using namespace ento; diff --git a/lib/StaticAnalyzer/Checkers/StreamChecker.cpp b/lib/StaticAnalyzer/Checkers/StreamChecker.cpp index e571e858c6b..f05e9a9d0f7 100644 --- a/lib/StaticAnalyzer/Checkers/StreamChecker.cpp +++ b/lib/StaticAnalyzer/Checkers/StreamChecker.cpp @@ -20,6 +20,7 @@ #include "clang/StaticAnalyzer/Core/PathSensitive/ProgramStateTrait.h" #include "clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h" #include "llvm/ADT/ImmutableMap.h" +#include "llvm/ADT/STLExtras.h" using namespace clang; using namespace ento; diff --git a/lib/StaticAnalyzer/Checkers/UnixAPIChecker.cpp b/lib/StaticAnalyzer/Checkers/UnixAPIChecker.cpp index 74dd26ba3d1..375dc82b5a7 100644 --- a/lib/StaticAnalyzer/Checkers/UnixAPIChecker.cpp +++ b/lib/StaticAnalyzer/Checkers/UnixAPIChecker.cpp @@ -19,6 +19,7 @@ #include "clang/StaticAnalyzer/Core/BugReporter/BugType.h" #include "clang/Basic/TargetInfo.h" #include "llvm/ADT/Optional.h" +#include "llvm/ADT/STLExtras.h" #include "llvm/ADT/StringSwitch.h" #include <fcntl.h> diff --git a/lib/StaticAnalyzer/Checkers/VLASizeChecker.cpp b/lib/StaticAnalyzer/Checkers/VLASizeChecker.cpp index d5db8508ca1..c386df9f797 100644 --- a/lib/StaticAnalyzer/Checkers/VLASizeChecker.cpp +++ b/lib/StaticAnalyzer/Checkers/VLASizeChecker.cpp @@ -20,6 +20,7 @@ #include "clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h" #include "clang/StaticAnalyzer/Core/BugReporter/BugType.h" #include "clang/AST/CharUnits.h" +#include "llvm/ADT/STLExtras.h" using namespace clang; using namespace ento; diff --git a/lib/StaticAnalyzer/Core/AnalysisManager.cpp b/lib/StaticAnalyzer/Core/AnalysisManager.cpp index af18eff8991..4d73b9d9610 100644 --- a/lib/StaticAnalyzer/Core/AnalysisManager.cpp +++ b/lib/StaticAnalyzer/Core/AnalysisManager.cpp @@ -10,6 +10,7 @@ #include "clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h" #include "clang/Index/Entity.h" #include "clang/Index/Indexer.h" +#include "llvm/ADT/STLExtras.h" using namespace clang; using namespace ento; diff --git a/lib/StaticAnalyzer/Core/BugReporter.cpp b/lib/StaticAnalyzer/Core/BugReporter.cpp index 9bd9d5a59c0..b10a62ca495 100644 --- a/lib/StaticAnalyzer/Core/BugReporter.cpp +++ b/lib/StaticAnalyzer/Core/BugReporter.cpp @@ -21,6 +21,7 @@ #include "clang/AST/Expr.h" #include "clang/AST/ParentMap.h" #include "clang/AST/StmtObjC.h" +#include "clang/Basic/Diagnostic.h" #include "clang/Basic/SourceManager.h" #include "clang/Analysis/ProgramPoint.h" #include "clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h" diff --git a/lib/StaticAnalyzer/Core/CheckerRegistry.cpp b/lib/StaticAnalyzer/Core/CheckerRegistry.cpp index 9791e2ecbf9..b87a7547c0b 100644 --- a/lib/StaticAnalyzer/Core/CheckerRegistry.cpp +++ b/lib/StaticAnalyzer/Core/CheckerRegistry.cpp @@ -10,6 +10,7 @@ #include "clang/StaticAnalyzer/Core/CheckerRegistry.h" #include "clang/StaticAnalyzer/Core/CheckerOptInfo.h" #include "llvm/ADT/SetVector.h" +#include "llvm/ADT/STLExtras.h" using namespace clang; using namespace ento; diff --git a/tools/libclang/IndexingContext.h b/tools/libclang/IndexingContext.h index bc33005e89d..24afaea290d 100644 --- a/tools/libclang/IndexingContext.h +++ b/tools/libclang/IndexingContext.h @@ -13,12 +13,14 @@ #include "clang/AST/DeclObjC.h" #include "clang/AST/DeclGroup.h" #include "llvm/ADT/DenseSet.h" +#include "llvm/ADT/IntrusiveRefCntPtr.h" namespace clang { class FileEntry; class ObjCPropertyDecl; class ClassTemplateDecl; class FunctionTemplateDecl; + class Preprocessor; class TypeAliasTemplateDecl; namespace cxindex { -- GitLab