Index: include/clang/AST/DeclBase.h =================================================================== --- include/clang/AST/DeclBase.h +++ include/clang/AST/DeclBase.h @@ -1250,16 +1250,29 @@ /// that directly derive from DeclContext are mentioned, not their subclasses): /// /// TranslationUnitDecl +/// ExternCContext /// NamespaceDecl -/// FunctionDecl /// TagDecl +/// OMPDeclareReductionDecl +/// FunctionDecl /// ObjCMethodDecl /// ObjCContainerDecl /// LinkageSpecDecl /// ExportDecl /// BlockDecl -/// OMPDeclareReductionDecl +/// CapturedDecl class DeclContext { + /// For makeDeclVisibleInContextImpl + friend class ASTDeclReader; + /// For reconcileExternalVisibleStorage, CreateStoredDeclsMap, + /// hasNeedToReconcileExternalVisibleStorage + friend class ExternalASTSource; + /// For CreateStoredDeclsMap + friend class DependentDiagnostic; + /// For hasNeedToReconcileExternalVisibleStorage, + /// hasLazyLocalLexicalLookups, hasLazyExternalLexicalLookups + friend class ASTWriter; + // We use uint64_t in the bit-fields below since some bit-fields // cross the unsigned boundary and this breaks the packing. @@ -1716,10 +1729,6 @@ "BlockDeclBitfields is larger than 8 bytes!"); }; - friend class ASTDeclReader; - friend class ASTWriter; - friend class ExternalASTSource; - /// FirstDecl - The first declaration stored within this declaration /// context. mutable Decl *FirstDecl = nullptr; @@ -2398,8 +2407,6 @@ DeclContextBits.HasLazyExternalLexicalLookups = HasLELL; } - friend class DependentDiagnostic; - void reconcileExternalVisibleStorage() const; bool LoadLexicalDeclsFromExternalStorage() const;