From 27d37ee4d067f42e9a46a0871d3cb961323e5c85 Mon Sep 17 00:00:00 2001 From: Vlad Serebrennikov Date: Sat, 17 Aug 2024 03:32:07 +0300 Subject: [clang][NFC] Clean up `Sema` headers When various `Sema*.h` and `Sema*.cpp` files were created, cleanup of `Sema.h` includes and forward declarations was left for the later. Now's the time. This commit touches `Sema.h` and Sema components: 1. Unused includes are removed. 2. Unused forward declarations are removed. 3. Missing includes are added (those files are largely IWYU-clean now). 4. Includes were converted into forward declarations where possible. As this commit focuses on headers, all changes to `.cpp` files were minimal, and were aiming at keeping everything buildable. --- clang/include/clang/AST/Attr.h | 2 +- clang/include/clang/Sema/Sema.h | 156 +++++++++---------------- clang/include/clang/Sema/SemaAMDGPU.h | 9 +- clang/include/clang/Sema/SemaARM.h | 19 +-- clang/include/clang/Sema/SemaAVR.h | 2 +- clang/include/clang/Sema/SemaBPF.h | 4 +- clang/include/clang/Sema/SemaCUDA.h | 20 +++- clang/include/clang/Sema/SemaCodeCompletion.h | 10 +- clang/include/clang/Sema/SemaHLSL.h | 11 +- clang/include/clang/Sema/SemaHexagon.h | 2 +- clang/include/clang/Sema/SemaLoongArch.h | 5 +- clang/include/clang/Sema/SemaM68k.h | 2 +- clang/include/clang/Sema/SemaMIPS.h | 5 +- clang/include/clang/Sema/SemaMSP430.h | 2 +- clang/include/clang/Sema/SemaNVPTX.h | 5 +- clang/include/clang/Sema/SemaObjC.h | 16 +-- clang/include/clang/Sema/SemaOpenACC.h | 6 + clang/include/clang/Sema/SemaOpenCL.h | 2 +- clang/include/clang/Sema/SemaOpenMP.h | 19 +-- clang/include/clang/Sema/SemaPPC.h | 5 +- clang/include/clang/Sema/SemaPseudoObject.h | 4 +- clang/include/clang/Sema/SemaRISCV.h | 13 ++- clang/include/clang/Sema/SemaSYCL.h | 2 +- clang/include/clang/Sema/SemaSwift.h | 4 +- clang/include/clang/Sema/SemaSystemZ.h | 2 +- clang/include/clang/Sema/SemaWasm.h | 9 +- clang/include/clang/Sema/SemaX86.h | 5 +- clang/lib/Parse/ParseExpr.cpp | 2 + clang/lib/Parse/ParseObjc.cpp | 1 + clang/lib/Sema/Sema.cpp | 1 + clang/lib/Sema/SemaARM.cpp | 1 + clang/lib/Sema/SemaDecl.cpp | 1 + clang/lib/Sema/SemaExpr.cpp | 1 + clang/lib/Sema/SemaExprObjC.cpp | 1 + clang/lib/Sema/SemaLambda.cpp | 1 + clang/lib/Sema/SemaMIPS.cpp | 1 + clang/lib/Sema/SemaObjC.cpp | 1 + clang/lib/Sema/SemaPPC.cpp | 1 + clang/lib/Sema/SemaSYCL.cpp | 1 + clang/lib/Sema/SemaTemplateDeduction.cpp | 1 + clang/lib/Sema/SemaTemplateInstantiateDecl.cpp | 1 + clang/lib/Sema/SemaType.cpp | 2 + clang/lib/Sema/SemaX86.cpp | 1 + 43 files changed, 178 insertions(+), 181 deletions(-) diff --git a/clang/include/clang/AST/Attr.h b/clang/include/clang/AST/Attr.h index 8e9b7ad..bd1851a 100644 --- a/clang/include/clang/AST/Attr.h +++ b/clang/include/clang/AST/Attr.h @@ -372,7 +372,7 @@ public: static_assert(sizeof(ParamIdx) == sizeof(ParamIdx::SerialType), "ParamIdx does not fit its serialization type"); -#include "clang/AST/Attrs.inc" +#include "clang/AST/Attrs.inc" // IWYU pragma: export inline const StreamingDiagnostic &operator<<(const StreamingDiagnostic &DB, const Attr *At) { diff --git a/clang/include/clang/Sema/Sema.h b/clang/include/clang/Sema/Sema.h index ea29778..299a916 100644 --- a/clang/include/clang/Sema/Sema.h +++ b/clang/include/clang/Sema/Sema.h @@ -15,36 +15,42 @@ #define LLVM_CLANG_SEMA_SEMA_H #include "clang/APINotes/APINotesManager.h" -#include "clang/AST/ASTConcept.h" #include "clang/AST/ASTFwd.h" #include "clang/AST/Attr.h" -#include "clang/AST/Availability.h" -#include "clang/AST/ComparisonCategories.h" +#include "clang/AST/AttrIterator.h" +#include "clang/AST/CharUnits.h" +#include "clang/AST/DeclBase.h" +#include "clang/AST/DeclCXX.h" #include "clang/AST/DeclTemplate.h" #include "clang/AST/DeclarationName.h" #include "clang/AST/Expr.h" #include "clang/AST/ExprCXX.h" #include "clang/AST/ExprConcepts.h" -#include "clang/AST/ExprObjC.h" #include "clang/AST/ExternalASTSource.h" -#include "clang/AST/LocInfoType.h" -#include "clang/AST/MangleNumberingContext.h" -#include "clang/AST/NSAPI.h" -#include "clang/AST/PrettyPrinter.h" +#include "clang/AST/NestedNameSpecifier.h" +#include "clang/AST/OperationKinds.h" #include "clang/AST/StmtCXX.h" +#include "clang/AST/Type.h" #include "clang/AST/TypeLoc.h" -#include "clang/AST/TypeOrdering.h" -#include "clang/Basic/BitmaskEnum.h" +#include "clang/Basic/AttrSubjectMatchRules.h" #include "clang/Basic/Builtins.h" +#include "clang/Basic/CapturedStmt.h" #include "clang/Basic/Cuda.h" -#include "clang/Basic/DarwinSDKInfo.h" +#include "clang/Basic/DiagnosticSema.h" +#include "clang/Basic/ExceptionSpecificationType.h" #include "clang/Basic/ExpressionTraits.h" -#include "clang/Basic/IdentifierTable.h" +#include "clang/Basic/LLVM.h" +#include "clang/Basic/Lambda.h" +#include "clang/Basic/LangOptions.h" #include "clang/Basic/Module.h" #include "clang/Basic/OpenCLOptions.h" +#include "clang/Basic/OperatorKinds.h" +#include "clang/Basic/PartialDiagnostic.h" #include "clang/Basic/PragmaKinds.h" +#include "clang/Basic/SourceLocation.h" #include "clang/Basic/Specifiers.h" #include "clang/Basic/TemplateKinds.h" +#include "clang/Basic/TokenKinds.h" #include "clang/Basic/TypeTraits.h" #include "clang/Sema/AnalysisBasedWarnings.h" #include "clang/Sema/Attr.h" @@ -52,124 +58,100 @@ #include "clang/Sema/DeclSpec.h" #include "clang/Sema/ExternalSemaSource.h" #include "clang/Sema/IdentifierResolver.h" -#include "clang/Sema/ObjCMethodList.h" #include "clang/Sema/Ownership.h" +#include "clang/Sema/ParsedAttr.h" #include "clang/Sema/Redeclaration.h" #include "clang/Sema/Scope.h" #include "clang/Sema/SemaBase.h" -#include "clang/Sema/SemaConcept.h" -#include "clang/Sema/SemaDiagnostic.h" #include "clang/Sema/TypoCorrection.h" #include "clang/Sema/Weak.h" +#include "llvm/ADT/APInt.h" #include "llvm/ADT/ArrayRef.h" +#include "llvm/ADT/BitmaskEnum.h" +#include "llvm/ADT/DenseMap.h" +#include "llvm/ADT/DenseSet.h" +#include "llvm/ADT/FloatingPointMode.h" +#include "llvm/ADT/FoldingSet.h" +#include "llvm/ADT/MapVector.h" +#include "llvm/ADT/PointerIntPair.h" +#include "llvm/ADT/PointerUnion.h" +#include "llvm/ADT/STLExtras.h" #include "llvm/ADT/STLForwardCompat.h" +#include "llvm/ADT/STLFunctionalExtras.h" #include "llvm/ADT/SetVector.h" #include "llvm/ADT/SmallBitVector.h" #include "llvm/ADT/SmallPtrSet.h" #include "llvm/ADT/SmallSet.h" #include "llvm/ADT/SmallVector.h" #include "llvm/ADT/StringExtras.h" +#include "llvm/ADT/StringMap.h" #include "llvm/ADT/TinyPtrVector.h" +#include "llvm/Support/Allocator.h" +#include "llvm/Support/Compiler.h" +#include "llvm/Support/Error.h" +#include "llvm/Support/ErrorHandling.h" +#include +#include +#include +#include #include +#include +#include #include #include #include #include +#include +#include #include namespace llvm { -class APSInt; -template class DenseSet; -class SmallBitVector; struct InlineAsmIdentifierInfo; } // namespace llvm namespace clang { class ADLResult; +class APValue; +struct ASTConstraintSatisfaction; class ASTConsumer; class ASTContext; +class ASTDeclReader; class ASTMutationListener; class ASTReader; class ASTWriter; -class ArrayType; -class ParsedAttr; -class BindingDecl; -class BlockDecl; -class CapturedDecl; class CXXBasePath; class CXXBasePaths; -class CXXBindTemporaryExpr; -typedef SmallVector CXXCastPath; -class CXXConstructorDecl; -class CXXConversionDecl; -class CXXDeleteExpr; -class CXXDestructorDecl; class CXXFieldCollector; -class CXXMemberCallExpr; -class CXXMethodDecl; -class CXXScopeSpec; -class CXXTemporary; -class CXXTryStmt; -class CallExpr; -class ClassTemplateDecl; -class ClassTemplatePartialSpecializationDecl; -class ClassTemplateSpecializationDecl; -class VarTemplatePartialSpecializationDecl; class CodeCompleteConsumer; -class CodeCompletionAllocator; -class CodeCompletionTUInfo; -class CodeCompletionResult; -class CoroutineBodyStmt; -class Decl; -class DeclAccessPair; -class DeclContext; -class DeclRefExpr; -class DeclaratorDecl; +enum class ComparisonCategoryType : unsigned char; +class ConstraintSatisfaction; +class DarwinSDKInfo; +class DeclGroupRef; class DeducedTemplateArgument; +struct DeductionFailureInfo; class DependentDiagnostic; -class DesignatedInitExpr; class Designation; -class EnableIfAttr; -class EnumConstantDecl; -class Expr; -class ExtVectorType; -class FormatAttr; -class FriendDecl; -class FunctionDecl; -class FunctionProtoType; -class FunctionTemplateDecl; +class IdentifierInfo; class ImplicitConversionSequence; typedef MutableArrayRef ConversionSequenceList; -class InitListExpr; class InitializationKind; class InitializationSequence; class InitializedEntity; -class IntegerLiteral; -class LabelStmt; -class LambdaExpr; -class LangOptions; +enum class LangAS : unsigned int; class LocalInstantiationScope; class LookupResult; -class MacroInfo; +class MangleNumberingContext; typedef ArrayRef> ModuleIdPath; class ModuleLoader; class MultiLevelTemplateArgumentList; -class NamedDecl; -class ObjCImplementationDecl; +struct NormalizedConstraint; class ObjCInterfaceDecl; class ObjCMethodDecl; -class ObjCProtocolDecl; struct OverloadCandidate; enum class OverloadCandidateParamOrder : char; enum OverloadCandidateRewriteKind : unsigned; class OverloadCandidateSet; -class OverloadExpr; -class ParenListExpr; -class ParmVarDecl; class Preprocessor; -class PseudoDestructorTypeStorage; -class PseudoObjectExpr; -class QualType; class SemaAMDGPU; class SemaARM; class SemaAVR; @@ -196,41 +178,19 @@ class SemaSystemZ; class SemaWasm; class SemaX86; class StandardConversionSequence; -class Stmt; -class StringLiteral; -class SwitchStmt; class TemplateArgument; -class TemplateArgumentList; class TemplateArgumentLoc; -class TemplateDecl; class TemplateInstantiationCallback; -class TemplateParameterList; class TemplatePartialOrderingContext; -class TemplateTemplateParmDecl; +class TemplateSpecCandidateSet; class Token; -class TypeAliasDecl; -class TypedefDecl; -class TypedefNameDecl; -class TypeLoc; +class TypeConstraint; class TypoCorrectionConsumer; -class UnqualifiedId; -class UnresolvedLookupExpr; -class UnresolvedMemberExpr; class UnresolvedSetImpl; class UnresolvedSetIterator; -class UsingDecl; -class UsingShadowDecl; -class ValueDecl; -class VarDecl; -class VarTemplateSpecializationDecl; -class VisibilityAttr; class VisibleDeclConsumer; -class IndirectFieldDecl; -struct DeductionFailureInfo; -class TemplateSpecCandidateSet; namespace sema { -class AccessedEntity; class BlockScopeInfo; class Capture; class CapturedRegionScopeInfo; @@ -240,8 +200,6 @@ class DelayedDiagnostic; class DelayedDiagnosticPool; class FunctionScopeInfo; class LambdaScopeInfo; -class PossiblyUnreachableDiag; -class RISCVIntrinsicManager; class SemaPPCallbacks; class TemplateDeductionInfo; } // namespace sema diff --git a/clang/include/clang/Sema/SemaAMDGPU.h b/clang/include/clang/Sema/SemaAMDGPU.h index 969078f..3fdb392 100644 --- a/clang/include/clang/Sema/SemaAMDGPU.h +++ b/clang/include/clang/Sema/SemaAMDGPU.h @@ -13,14 +13,13 @@ #ifndef LLVM_CLANG_SEMA_SEMAAMDGPU_H #define LLVM_CLANG_SEMA_SEMAAMDGPU_H -#include "clang/AST/Attr.h" -#include "clang/AST/DeclBase.h" -#include "clang/AST/Expr.h" -#include "clang/Basic/AttributeCommonInfo.h" -#include "clang/Sema/ParsedAttr.h" +#include "clang/AST/ASTFwd.h" #include "clang/Sema/SemaBase.h" namespace clang { +class AttributeCommonInfo; +class ParsedAttr; + class SemaAMDGPU : public SemaBase { public: SemaAMDGPU(Sema &S); diff --git a/clang/include/clang/Sema/SemaARM.h b/clang/include/clang/Sema/SemaARM.h index fedc7df..b8196a3 100644 --- a/clang/include/clang/Sema/SemaARM.h +++ b/clang/include/clang/Sema/SemaARM.h @@ -13,15 +13,18 @@ #ifndef LLVM_CLANG_SEMA_SEMAARM_H #define LLVM_CLANG_SEMA_SEMAARM_H -#include "clang/AST/DeclBase.h" -#include "clang/AST/Expr.h" -#include "clang/Basic/TargetInfo.h" +#include "clang/AST/ASTFwd.h" #include "clang/Sema/SemaBase.h" -#include "llvm/ADT/SmallVector.h" +#include "llvm/ADT/StringRef.h" #include +namespace llvm { +template class SmallVector; +} // namespace llvm + namespace clang { class ParsedAttr; +class TargetInfo; class SemaARM : public SemaBase { public: @@ -60,10 +63,10 @@ public: unsigned ExpectedFieldNum, bool AllowName); bool BuiltinARMMemoryTaggingCall(unsigned BuiltinID, CallExpr *TheCall); - bool MveAliasValid(unsigned BuiltinID, StringRef AliasName); - bool CdeAliasValid(unsigned BuiltinID, StringRef AliasName); - bool SveAliasValid(unsigned BuiltinID, StringRef AliasName); - bool SmeAliasValid(unsigned BuiltinID, StringRef AliasName); + bool MveAliasValid(unsigned BuiltinID, llvm::StringRef AliasName); + bool CdeAliasValid(unsigned BuiltinID, llvm::StringRef AliasName); + bool SveAliasValid(unsigned BuiltinID, llvm::StringRef AliasName); + bool SmeAliasValid(unsigned BuiltinID, llvm::StringRef AliasName); void handleBuiltinAliasAttr(Decl *D, const ParsedAttr &AL); void handleNewAttr(Decl *D, const ParsedAttr &AL); void handleCmseNSEntryAttr(Decl *D, const ParsedAttr &AL); diff --git a/clang/include/clang/Sema/SemaAVR.h b/clang/include/clang/Sema/SemaAVR.h index 708da3a..d89ce05 100644 --- a/clang/include/clang/Sema/SemaAVR.h +++ b/clang/include/clang/Sema/SemaAVR.h @@ -13,10 +13,10 @@ #ifndef LLVM_CLANG_SEMA_SEMAAVR_H #define LLVM_CLANG_SEMA_SEMAAVR_H +#include "clang/AST/ASTFwd.h" #include "clang/Sema/SemaBase.h" namespace clang { -class Decl; class ParsedAttr; class SemaAVR : public SemaBase { diff --git a/clang/include/clang/Sema/SemaBPF.h b/clang/include/clang/Sema/SemaBPF.h index 0182ccf..d7577ae 100644 --- a/clang/include/clang/Sema/SemaBPF.h +++ b/clang/include/clang/Sema/SemaBPF.h @@ -13,9 +13,7 @@ #ifndef LLVM_CLANG_SEMA_SEMABPF_H #define LLVM_CLANG_SEMA_SEMABPF_H -#include "clang/AST/Decl.h" -#include "clang/AST/DeclBase.h" -#include "clang/AST/Expr.h" +#include "clang/AST/ASTFwd.h" #include "clang/Sema/SemaBase.h" namespace clang { diff --git a/clang/include/clang/Sema/SemaCUDA.h b/clang/include/clang/Sema/SemaCUDA.h index 63dc3f4..71f05e8 100644 --- a/clang/include/clang/Sema/SemaCUDA.h +++ b/clang/include/clang/Sema/SemaCUDA.h @@ -13,24 +13,34 @@ #ifndef LLVM_CLANG_SEMA_SEMACUDA_H #define LLVM_CLANG_SEMA_SEMACUDA_H -#include "clang/AST/Decl.h" -#include "clang/AST/DeclCXX.h" +#include "clang/AST/ASTFwd.h" +#include "clang/AST/DeclAccessPair.h" #include "clang/AST/Redeclarable.h" #include "clang/Basic/Cuda.h" +#include "clang/Basic/LLVM.h" #include "clang/Basic/SourceLocation.h" #include "clang/Sema/Lookup.h" #include "clang/Sema/Ownership.h" -#include "clang/Sema/ParsedAttr.h" -#include "clang/Sema/Scope.h" -#include "clang/Sema/ScopeInfo.h" #include "clang/Sema/SemaBase.h" #include "llvm/ADT/DenseMap.h" +#include "llvm/ADT/DenseMapInfo.h" +#include "llvm/ADT/DenseSet.h" +#include "llvm/ADT/Hashing.h" #include "llvm/ADT/SmallVector.h" #include +#include namespace clang { +namespace sema { +class Capture; +} // namespace sema +class ASTReader; +class ASTWriter; enum class CUDAFunctionTarget; +enum class CXXSpecialMemberKind; +class ParsedAttributesView; +class Scope; class SemaCUDA : public SemaBase { public: diff --git a/clang/include/clang/Sema/SemaCodeCompletion.h b/clang/include/clang/Sema/SemaCodeCompletion.h index 6bf0f24..50409439 100644 --- a/clang/include/clang/Sema/SemaCodeCompletion.h +++ b/clang/include/clang/Sema/SemaCodeCompletion.h @@ -13,26 +13,26 @@ #ifndef LLVM_CLANG_SEMA_SEMACODECOMPLETION_H #define LLVM_CLANG_SEMA_SEMACODECOMPLETION_H -#include "clang/AST/Decl.h" -#include "clang/AST/DeclCXX.h" -#include "clang/AST/Expr.h" +#include "clang/AST/ASTFwd.h" #include "clang/AST/Type.h" #include "clang/Basic/AttributeCommonInfo.h" #include "clang/Basic/IdentifierTable.h" #include "clang/Basic/LLVM.h" #include "clang/Basic/SourceLocation.h" -#include "clang/Lex/MacroInfo.h" #include "clang/Lex/ModuleLoader.h" #include "clang/Sema/CodeCompleteConsumer.h" #include "clang/Sema/DeclSpec.h" #include "clang/Sema/Designator.h" #include "clang/Sema/Ownership.h" -#include "clang/Sema/Scope.h" #include "clang/Sema/SemaBase.h" #include "llvm/ADT/StringRef.h" #include namespace clang { +class DeclGroupRef; +class MacroInfo; +class Scope; +class TemplateName; class SemaCodeCompletion : public SemaBase { public: diff --git a/clang/include/clang/Sema/SemaHLSL.h b/clang/include/clang/Sema/SemaHLSL.h index d60cb2a..3aae338 100644 --- a/clang/include/clang/Sema/SemaHLSL.h +++ b/clang/include/clang/Sema/SemaHLSL.h @@ -13,19 +13,18 @@ #ifndef LLVM_CLANG_SEMA_SEMAHLSL_H #define LLVM_CLANG_SEMA_SEMAHLSL_H +#include "clang/AST/ASTFwd.h" #include "clang/AST/Attr.h" -#include "clang/AST/Decl.h" -#include "clang/AST/DeclBase.h" -#include "clang/AST/Expr.h" -#include "clang/Basic/AttributeCommonInfo.h" -#include "clang/Basic/IdentifierTable.h" #include "clang/Basic/SourceLocation.h" -#include "clang/Sema/Scope.h" #include "clang/Sema/SemaBase.h" +#include "llvm/TargetParser/Triple.h" #include namespace clang { +class AttributeCommonInfo; +class IdentifierInfo; class ParsedAttr; +class Scope; class SemaHLSL : public SemaBase { public: diff --git a/clang/include/clang/Sema/SemaHexagon.h b/clang/include/clang/Sema/SemaHexagon.h index 2d4a04f..82e811d 100644 --- a/clang/include/clang/Sema/SemaHexagon.h +++ b/clang/include/clang/Sema/SemaHexagon.h @@ -13,7 +13,7 @@ #ifndef LLVM_CLANG_SEMA_SEMAHEXAGON_H #define LLVM_CLANG_SEMA_SEMAHEXAGON_H -#include "clang/AST/Expr.h" +#include "clang/AST/ASTFwd.h" #include "clang/Sema/SemaBase.h" namespace clang { diff --git a/clang/include/clang/Sema/SemaLoongArch.h b/clang/include/clang/Sema/SemaLoongArch.h index aef0df9..98a7e99 100644 --- a/clang/include/clang/Sema/SemaLoongArch.h +++ b/clang/include/clang/Sema/SemaLoongArch.h @@ -13,11 +13,12 @@ #ifndef LLVM_CLANG_SEMA_SEMALOONGARCH_H #define LLVM_CLANG_SEMA_SEMALOONGARCH_H -#include "clang/AST/Expr.h" -#include "clang/Basic/TargetInfo.h" +#include "clang/AST/ASTFwd.h" #include "clang/Sema/SemaBase.h" namespace clang { +class TargetInfo; + class SemaLoongArch : public SemaBase { public: SemaLoongArch(Sema &S); diff --git a/clang/include/clang/Sema/SemaM68k.h b/clang/include/clang/Sema/SemaM68k.h index 5a9767d..dece033 100644 --- a/clang/include/clang/Sema/SemaM68k.h +++ b/clang/include/clang/Sema/SemaM68k.h @@ -13,10 +13,10 @@ #ifndef LLVM_CLANG_SEMA_SEMAM68K_H #define LLVM_CLANG_SEMA_SEMAM68K_H +#include "clang/AST/ASTFwd.h" #include "clang/Sema/SemaBase.h" namespace clang { -class Decl; class ParsedAttr; class SemaM68k : public SemaBase { diff --git a/clang/include/clang/Sema/SemaMIPS.h b/clang/include/clang/Sema/SemaMIPS.h index 6366dce..41feeb6 100644 --- a/clang/include/clang/Sema/SemaMIPS.h +++ b/clang/include/clang/Sema/SemaMIPS.h @@ -13,13 +13,12 @@ #ifndef LLVM_CLANG_SEMA_SEMAMIPS_H #define LLVM_CLANG_SEMA_SEMAMIPS_H -#include "clang/AST/DeclBase.h" -#include "clang/AST/Expr.h" -#include "clang/Basic/TargetInfo.h" +#include "clang/AST/ASTFwd.h" #include "clang/Sema/SemaBase.h" namespace clang { class ParsedAttr; +class TargetInfo; class SemaMIPS : public SemaBase { public: diff --git a/clang/include/clang/Sema/SemaMSP430.h b/clang/include/clang/Sema/SemaMSP430.h index e1034ae..30eb8ea 100644 --- a/clang/include/clang/Sema/SemaMSP430.h +++ b/clang/include/clang/Sema/SemaMSP430.h @@ -13,10 +13,10 @@ #ifndef LLVM_CLANG_SEMA_SEMAMSP430_H #define LLVM_CLANG_SEMA_SEMAMSP430_H +#include "clang/AST/ASTFwd.h" #include "clang/Sema/SemaBase.h" namespace clang { -class Decl; class ParsedAttr; class SemaMSP430 : public SemaBase { diff --git a/clang/include/clang/Sema/SemaNVPTX.h b/clang/include/clang/Sema/SemaNVPTX.h index a663c694..de47997 100644 --- a/clang/include/clang/Sema/SemaNVPTX.h +++ b/clang/include/clang/Sema/SemaNVPTX.h @@ -13,11 +13,12 @@ #ifndef LLVM_CLANG_SEMA_SEMANVPTX_H #define LLVM_CLANG_SEMA_SEMANVPTX_H -#include "clang/AST/Expr.h" -#include "clang/Basic/TargetInfo.h" +#include "clang/AST/ASTFwd.h" #include "clang/Sema/SemaBase.h" namespace clang { +class TargetInfo; + class SemaNVPTX : public SemaBase { public: SemaNVPTX(Sema &S); diff --git a/clang/include/clang/Sema/SemaObjC.h b/clang/include/clang/Sema/SemaObjC.h index 07c3c1a..213c37b 100644 --- a/clang/include/clang/Sema/SemaObjC.h +++ b/clang/include/clang/Sema/SemaObjC.h @@ -13,11 +13,8 @@ #ifndef LLVM_CLANG_SEMA_SEMAOBJC_H #define LLVM_CLANG_SEMA_SEMAOBJC_H -#include "clang/AST/Decl.h" -#include "clang/AST/DeclBase.h" +#include "clang/AST/ASTFwd.h" #include "clang/AST/DeclObjC.h" -#include "clang/AST/Expr.h" -#include "clang/AST/ExprObjC.h" #include "clang/AST/NSAPI.h" #include "clang/AST/OperationKinds.h" #include "clang/AST/Type.h" @@ -27,24 +24,29 @@ #include "clang/Basic/Specifiers.h" #include "clang/Basic/TokenKinds.h" #include "clang/Sema/DeclSpec.h" -#include "clang/Sema/Lookup.h" #include "clang/Sema/ObjCMethodList.h" #include "clang/Sema/Ownership.h" #include "clang/Sema/Redeclaration.h" -#include "clang/Sema/Scope.h" +#include "clang/Sema/Sema.h" #include "clang/Sema/SemaBase.h" #include "llvm/ADT/DenseMap.h" #include "llvm/ADT/MapVector.h" #include "llvm/ADT/SmallPtrSet.h" #include #include -#include #include namespace clang { +class AttributeCommonInfo; +class AvailabilitySpec; enum class CheckedConversionKind; +class DeclGroupRef; +class LookupResult; +struct ObjCDictionaryElement; class ParsedAttr; +class ParsedAttributesView; +class Scope; struct SkipBodyInfo; class SemaObjC : public SemaBase { diff --git a/clang/include/clang/Sema/SemaOpenACC.h b/clang/include/clang/Sema/SemaOpenACC.h index a5f2a8b..0ca7684 100644 --- a/clang/include/clang/Sema/SemaOpenACC.h +++ b/clang/include/clang/Sema/SemaOpenACC.h @@ -16,13 +16,19 @@ #include "clang/AST/DeclGroup.h" #include "clang/AST/StmtOpenACC.h" +#include "clang/Basic/LLVM.h" #include "clang/Basic/OpenACCKinds.h" #include "clang/Basic/SourceLocation.h" #include "clang/Sema/Ownership.h" #include "clang/Sema/SemaBase.h" +#include "llvm/ADT/SmallVector.h" +#include +#include +#include #include namespace clang { +class IdentifierInfo; class OpenACCClause; class SemaOpenACC : public SemaBase { diff --git a/clang/include/clang/Sema/SemaOpenCL.h b/clang/include/clang/Sema/SemaOpenCL.h index 7d6b4b0..04b2b61 100644 --- a/clang/include/clang/Sema/SemaOpenCL.h +++ b/clang/include/clang/Sema/SemaOpenCL.h @@ -13,10 +13,10 @@ #ifndef LLVM_CLANG_SEMA_SEMAOPENCL_H #define LLVM_CLANG_SEMA_SEMAOPENCL_H +#include "clang/AST/ASTFwd.h" #include "clang/Sema/SemaBase.h" namespace clang { -class Decl; class ParsedAttr; class SemaOpenCL : public SemaBase { diff --git a/clang/include/clang/Sema/SemaOpenMP.h b/clang/include/clang/Sema/SemaOpenMP.h index e557312..53191e7 100644 --- a/clang/include/clang/Sema/SemaOpenMP.h +++ b/clang/include/clang/Sema/SemaOpenMP.h @@ -14,17 +14,12 @@ #ifndef LLVM_CLANG_SEMA_SEMAOPENMP_H #define LLVM_CLANG_SEMA_SEMAOPENMP_H +#include "clang/AST/ASTFwd.h" #include "clang/AST/Attr.h" -#include "clang/AST/Decl.h" -#include "clang/AST/DeclBase.h" -#include "clang/AST/DeclOpenMP.h" #include "clang/AST/DeclarationName.h" -#include "clang/AST/Expr.h" #include "clang/AST/ExprOpenMP.h" #include "clang/AST/OpenMPClause.h" -#include "clang/AST/Stmt.h" #include "clang/AST/StmtOpenMP.h" -#include "clang/AST/Type.h" #include "clang/Basic/IdentifierTable.h" #include "clang/Basic/LLVM.h" #include "clang/Basic/OpenMPKinds.h" @@ -32,17 +27,23 @@ #include "clang/Basic/Specifiers.h" #include "clang/Sema/DeclSpec.h" #include "clang/Sema/Ownership.h" -#include "clang/Sema/Scope.h" -#include "clang/Sema/ScopeInfo.h" #include "clang/Sema/SemaBase.h" #include "llvm/ADT/DenseMap.h" -#include "llvm/ADT/PointerUnion.h" +#include "llvm/Frontend/OpenMP/OMP.h.inc" +#include "llvm/Frontend/OpenMP/OMPConstants.h" #include #include #include namespace clang { +namespace sema { +class FunctionScopeInfo; +} // namespace sema + +class DeclContext; +class DeclGroupRef; class ParsedAttr; +class Scope; class SemaOpenMP : public SemaBase { public: diff --git a/clang/include/clang/Sema/SemaPPC.h b/clang/include/clang/Sema/SemaPPC.h index 3e8929d..f8edecc 100644 --- a/clang/include/clang/Sema/SemaPPC.h +++ b/clang/include/clang/Sema/SemaPPC.h @@ -13,13 +13,14 @@ #ifndef LLVM_CLANG_SEMA_SEMAPPC_H #define LLVM_CLANG_SEMA_SEMAPPC_H -#include "clang/AST/Expr.h" +#include "clang/AST/ASTFwd.h" #include "clang/AST/Type.h" #include "clang/Basic/SourceLocation.h" -#include "clang/Basic/TargetInfo.h" #include "clang/Sema/SemaBase.h" namespace clang { +class TargetInfo; + class SemaPPC : public SemaBase { public: SemaPPC(Sema &S); diff --git a/clang/include/clang/Sema/SemaPseudoObject.h b/clang/include/clang/Sema/SemaPseudoObject.h index 22d8be2..4753987 100644 --- a/clang/include/clang/Sema/SemaPseudoObject.h +++ b/clang/include/clang/Sema/SemaPseudoObject.h @@ -14,14 +14,14 @@ #ifndef LLVM_CLANG_SEMA_SEMAPSEUDOOBJECT_H #define LLVM_CLANG_SEMA_SEMAPSEUDOOBJECT_H -#include "clang/AST/Expr.h" +#include "clang/AST/ASTFwd.h" #include "clang/AST/OperationKinds.h" #include "clang/Basic/SourceLocation.h" #include "clang/Sema/Ownership.h" -#include "clang/Sema/Scope.h" #include "clang/Sema/SemaBase.h" namespace clang { +class Scope; class SemaPseudoObject : public SemaBase { public: diff --git a/clang/include/clang/Sema/SemaRISCV.h b/clang/include/clang/Sema/SemaRISCV.h index 48d15c4..d62fca8 100644 --- a/clang/include/clang/Sema/SemaRISCV.h +++ b/clang/include/clang/Sema/SemaRISCV.h @@ -13,18 +13,21 @@ #ifndef LLVM_CLANG_SEMA_SEMARISCV_H #define LLVM_CLANG_SEMA_SEMARISCV_H -#include "clang/AST/DeclBase.h" -#include "clang/AST/Expr.h" +#include "clang/AST/ASTFwd.h" #include "clang/AST/Type.h" #include "clang/Basic/SourceLocation.h" -#include "clang/Basic/TargetInfo.h" -#include "clang/Sema/RISCVIntrinsicManager.h" #include "clang/Sema/SemaBase.h" #include "llvm/ADT/StringMap.h" +#include "llvm/ADT/StringRef.h" #include namespace clang { +namespace sema { +class RISCVIntrinsicManager; +} // namespace sema + class ParsedAttr; +class TargetInfo; class SemaRISCV : public SemaBase { public: @@ -39,7 +42,7 @@ public: bool isValidRVVBitcast(QualType srcType, QualType destType); void handleInterruptAttr(Decl *D, const ParsedAttr &AL); - bool isAliasValid(unsigned BuiltinID, StringRef AliasName); + bool isAliasValid(unsigned BuiltinID, llvm::StringRef AliasName); /// Indicate RISC-V vector builtin functions enabled or not. bool DeclareRVVBuiltins = false; diff --git a/clang/include/clang/Sema/SemaSYCL.h b/clang/include/clang/Sema/SemaSYCL.h index 3631785..27c42b5 100644 --- a/clang/include/clang/Sema/SemaSYCL.h +++ b/clang/include/clang/Sema/SemaSYCL.h @@ -13,7 +13,7 @@ #ifndef LLVM_CLANG_SEMA_SEMASYCL_H #define LLVM_CLANG_SEMA_SEMASYCL_H -#include "clang/AST/Decl.h" +#include "clang/AST/ASTFwd.h" #include "clang/AST/Type.h" #include "clang/Basic/SourceLocation.h" #include "clang/Sema/Ownership.h" diff --git a/clang/include/clang/Sema/SemaSwift.h b/clang/include/clang/Sema/SemaSwift.h index a5561d7..8d8f146 100644 --- a/clang/include/clang/Sema/SemaSwift.h +++ b/clang/include/clang/Sema/SemaSwift.h @@ -13,15 +13,15 @@ #ifndef LLVM_CLANG_SEMA_SEMASWIFT_H #define LLVM_CLANG_SEMA_SEMASWIFT_H -#include "clang/AST/Attr.h" +#include "clang/AST/ASTFwd.h" #include "clang/Basic/LLVM.h" #include "clang/Basic/SourceLocation.h" #include "clang/Sema/SemaBase.h" -#include "llvm/ADT/StringRef.h" namespace clang { class AttributeCommonInfo; class Decl; +enum class ParameterABI; class ParsedAttr; class SwiftNameAttr; diff --git a/clang/include/clang/Sema/SemaSystemZ.h b/clang/include/clang/Sema/SemaSystemZ.h index 8945471..1a3e29f 100644 --- a/clang/include/clang/Sema/SemaSystemZ.h +++ b/clang/include/clang/Sema/SemaSystemZ.h @@ -13,7 +13,7 @@ #ifndef LLVM_CLANG_SEMA_SEMASYSTEMZ_H #define LLVM_CLANG_SEMA_SEMASYSTEMZ_H -#include "clang/AST/Expr.h" +#include "clang/AST/ASTFwd.h" #include "clang/Sema/SemaBase.h" namespace clang { diff --git a/clang/include/clang/Sema/SemaWasm.h b/clang/include/clang/Sema/SemaWasm.h index c3c7815..8841fdf 100644 --- a/clang/include/clang/Sema/SemaWasm.h +++ b/clang/include/clang/Sema/SemaWasm.h @@ -13,14 +13,13 @@ #ifndef LLVM_CLANG_SEMA_SEMAWASM_H #define LLVM_CLANG_SEMA_SEMAWASM_H -#include "clang/AST/Attr.h" -#include "clang/AST/DeclBase.h" -#include "clang/AST/Expr.h" -#include "clang/Basic/TargetInfo.h" -#include "clang/Sema/ParsedAttr.h" +#include "clang/AST/ASTFwd.h" #include "clang/Sema/SemaBase.h" namespace clang { +class ParsedAttr; +class TargetInfo; + class SemaWasm : public SemaBase { public: SemaWasm(Sema &S); diff --git a/clang/include/clang/Sema/SemaX86.h b/clang/include/clang/Sema/SemaX86.h index e53aaf2..b5a23f1 100644 --- a/clang/include/clang/Sema/SemaX86.h +++ b/clang/include/clang/Sema/SemaX86.h @@ -13,14 +13,13 @@ #ifndef LLVM_CLANG_SEMA_SEMAX86_H #define LLVM_CLANG_SEMA_SEMAX86_H -#include "clang/AST/DeclBase.h" -#include "clang/AST/Expr.h" +#include "clang/AST/ASTFwd.h" #include "clang/Basic/LLVM.h" -#include "clang/Basic/TargetInfo.h" #include "clang/Sema/SemaBase.h" namespace clang { class ParsedAttr; +class TargetInfo; class SemaX86 : public SemaBase { public: diff --git a/clang/lib/Parse/ParseExpr.cpp b/clang/lib/Parse/ParseExpr.cpp index b8e15b1..1405aef 100644 --- a/clang/lib/Parse/ParseExpr.cpp +++ b/clang/lib/Parse/ParseExpr.cpp @@ -21,7 +21,9 @@ //===----------------------------------------------------------------------===// #include "clang/AST/ASTContext.h" +#include "clang/AST/Availability.h" #include "clang/AST/ExprCXX.h" +#include "clang/AST/LocInfoType.h" #include "clang/Basic/PrettyStackTrace.h" #include "clang/Lex/LiteralSupport.h" #include "clang/Parse/Parser.h" diff --git a/clang/lib/Parse/ParseObjc.cpp b/clang/lib/Parse/ParseObjc.cpp index 6a2088a..dad39d8 100644 --- a/clang/lib/Parse/ParseObjc.cpp +++ b/clang/lib/Parse/ParseObjc.cpp @@ -11,6 +11,7 @@ //===----------------------------------------------------------------------===// #include "clang/AST/ASTContext.h" +#include "clang/AST/ExprObjC.h" #include "clang/AST/ODRDiagsEmitter.h" #include "clang/AST/PrettyDeclStackTrace.h" #include "clang/Basic/CharInfo.h" diff --git a/clang/lib/Sema/Sema.cpp b/clang/lib/Sema/Sema.cpp index 633b822..29acd06 100644 --- a/clang/lib/Sema/Sema.cpp +++ b/clang/lib/Sema/Sema.cpp @@ -22,6 +22,7 @@ #include "clang/AST/ExprCXX.h" #include "clang/AST/PrettyDeclStackTrace.h" #include "clang/AST/StmtCXX.h" +#include "clang/AST/TypeOrdering.h" #include "clang/Basic/DarwinSDKInfo.h" #include "clang/Basic/DiagnosticOptions.h" #include "clang/Basic/PartialDiagnostic.h" diff --git a/clang/lib/Sema/SemaARM.cpp b/clang/lib/Sema/SemaARM.cpp index d8dd4fe..e18872f 100644 --- a/clang/lib/Sema/SemaARM.cpp +++ b/clang/lib/Sema/SemaARM.cpp @@ -13,6 +13,7 @@ #include "clang/Sema/SemaARM.h" #include "clang/Basic/DiagnosticSema.h" #include "clang/Basic/TargetBuiltins.h" +#include "clang/Basic/TargetInfo.h" #include "clang/Sema/Initialization.h" #include "clang/Sema/ParsedAttr.h" #include "clang/Sema/Sema.h" diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp index 1d85341..9c15b5f 100644 --- a/clang/lib/Sema/SemaDecl.cpp +++ b/clang/lib/Sema/SemaDecl.cpp @@ -25,6 +25,7 @@ #include "clang/AST/Expr.h" #include "clang/AST/ExprCXX.h" #include "clang/AST/NonTrivialTypeVisitor.h" +#include "clang/AST/MangleNumberingContext.h" #include "clang/AST/Randstruct.h" #include "clang/AST/StmtCXX.h" #include "clang/AST/Type.h" diff --git a/clang/lib/Sema/SemaExpr.cpp b/clang/lib/Sema/SemaExpr.cpp index 0f58eb2..f495658 100644 --- a/clang/lib/Sema/SemaExpr.cpp +++ b/clang/lib/Sema/SemaExpr.cpp @@ -25,6 +25,7 @@ #include "clang/AST/ExprCXX.h" #include "clang/AST/ExprObjC.h" #include "clang/AST/ExprOpenMP.h" +#include "clang/AST/MangleNumberingContext.h" #include "clang/AST/OperationKinds.h" #include "clang/AST/ParentMapContext.h" #include "clang/AST/RecursiveASTVisitor.h" diff --git a/clang/lib/Sema/SemaExprObjC.cpp b/clang/lib/Sema/SemaExprObjC.cpp index 2751c7c..2f914ddc 100644 --- a/clang/lib/Sema/SemaExprObjC.cpp +++ b/clang/lib/Sema/SemaExprObjC.cpp @@ -11,6 +11,7 @@ //===----------------------------------------------------------------------===// #include "clang/AST/ASTContext.h" +#include "clang/AST/Availability.h" #include "clang/AST/DeclObjC.h" #include "clang/AST/ExprObjC.h" #include "clang/AST/StmtVisitor.h" diff --git a/clang/lib/Sema/SemaLambda.cpp b/clang/lib/Sema/SemaLambda.cpp index 05d406a..a8461a7 100644 --- a/clang/lib/Sema/SemaLambda.cpp +++ b/clang/lib/Sema/SemaLambda.cpp @@ -14,6 +14,7 @@ #include "clang/AST/ASTLambda.h" #include "clang/AST/CXXInheritance.h" #include "clang/AST/ExprCXX.h" +#include "clang/AST/MangleNumberingContext.h" #include "clang/Basic/TargetInfo.h" #include "clang/Sema/DeclSpec.h" #include "clang/Sema/Initialization.h" diff --git a/clang/lib/Sema/SemaMIPS.cpp b/clang/lib/Sema/SemaMIPS.cpp index 269d927..50d210e 100644 --- a/clang/lib/Sema/SemaMIPS.cpp +++ b/clang/lib/Sema/SemaMIPS.cpp @@ -13,6 +13,7 @@ #include "clang/Sema/SemaMIPS.h" #include "clang/Basic/DiagnosticSema.h" #include "clang/Basic/TargetBuiltins.h" +#include "clang/Basic/TargetInfo.h" #include "clang/Sema/Attr.h" #include "clang/Sema/ParsedAttr.h" #include "clang/Sema/Sema.h" diff --git a/clang/lib/Sema/SemaObjC.cpp b/clang/lib/Sema/SemaObjC.cpp index 7523368..0359d18 100644 --- a/clang/lib/Sema/SemaObjC.cpp +++ b/clang/lib/Sema/SemaObjC.cpp @@ -17,6 +17,7 @@ #include "clang/Basic/DiagnosticSema.h" #include "clang/Lex/Preprocessor.h" #include "clang/Sema/Attr.h" +#include "clang/Sema/Lookup.h" #include "clang/Sema/ParsedAttr.h" #include "clang/Sema/ScopeInfo.h" #include "clang/Sema/Sema.h" diff --git a/clang/lib/Sema/SemaPPC.cpp b/clang/lib/Sema/SemaPPC.cpp index e0a978e..b6802d6 100644 --- a/clang/lib/Sema/SemaPPC.cpp +++ b/clang/lib/Sema/SemaPPC.cpp @@ -19,6 +19,7 @@ #include "clang/Basic/DiagnosticSema.h" #include "clang/Basic/SourceLocation.h" #include "clang/Basic/TargetBuiltins.h" +#include "clang/Basic/TargetInfo.h" #include "clang/Sema/Sema.h" #include "llvm/ADT/APSInt.h" diff --git a/clang/lib/Sema/SemaSYCL.cpp b/clang/lib/Sema/SemaSYCL.cpp index 2b55c59..f2d13d4 100644 --- a/clang/lib/Sema/SemaSYCL.cpp +++ b/clang/lib/Sema/SemaSYCL.cpp @@ -10,6 +10,7 @@ #include "clang/Sema/SemaSYCL.h" #include "clang/AST/Mangle.h" +#include "clang/AST/TypeOrdering.h" #include "clang/Sema/Attr.h" #include "clang/Sema/ParsedAttr.h" #include "clang/Sema/Sema.h" diff --git a/clang/lib/Sema/SemaTemplateDeduction.cpp b/clang/lib/Sema/SemaTemplateDeduction.cpp index fc883e4..35bc8cd 100644 --- a/clang/lib/Sema/SemaTemplateDeduction.cpp +++ b/clang/lib/Sema/SemaTemplateDeduction.cpp @@ -28,6 +28,7 @@ #include "clang/AST/TemplateName.h" #include "clang/AST/Type.h" #include "clang/AST/TypeLoc.h" +#include "clang/AST/TypeOrdering.h" #include "clang/AST/UnresolvedSet.h" #include "clang/Basic/AddressSpaces.h" #include "clang/Basic/ExceptionSpecificationType.h" diff --git a/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp b/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp index 14ca29f..a58854a 100644 --- a/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp +++ b/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp @@ -19,6 +19,7 @@ #include "clang/AST/Expr.h" #include "clang/AST/ExprCXX.h" #include "clang/AST/PrettyDeclStackTrace.h" +#include "clang/AST/TypeOrdering.h" #include "clang/AST/TypeLoc.h" #include "clang/Basic/SourceManager.h" #include "clang/Basic/TargetInfo.h" diff --git a/clang/lib/Sema/SemaType.cpp b/clang/lib/Sema/SemaType.cpp index 08020f9..4b1bb05 100644 --- a/clang/lib/Sema/SemaType.cpp +++ b/clang/lib/Sema/SemaType.cpp @@ -20,6 +20,8 @@ #include "clang/AST/DeclObjC.h" #include "clang/AST/DeclTemplate.h" #include "clang/AST/Expr.h" +#include "clang/AST/ExprObjC.h" +#include "clang/AST/LocInfoType.h" #include "clang/AST/Type.h" #include "clang/AST/TypeLoc.h" #include "clang/AST/TypeLocVisitor.h" diff --git a/clang/lib/Sema/SemaX86.cpp b/clang/lib/Sema/SemaX86.cpp index a0756f1..45c4a1c 100644 --- a/clang/lib/Sema/SemaX86.cpp +++ b/clang/lib/Sema/SemaX86.cpp @@ -13,6 +13,7 @@ #include "clang/Sema/SemaX86.h" #include "clang/Basic/DiagnosticSema.h" #include "clang/Basic/TargetBuiltins.h" +#include "clang/Basic/TargetInfo.h" #include "clang/Sema/Attr.h" #include "clang/Sema/ParsedAttr.h" #include "clang/Sema/Sema.h" -- cgit v1.1