[clang] [clang-tools-extra] [libcxx] [lldb] [llvm] Add clang basic module directory (PR #93388)
ldionne wrote: For tidying up the libc++ review queue, please remove the `libc++` tag once you rebase this (the small changes in `libcxx` will go away). https://github.com/llvm/llvm-project/pull/93388 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [clang-tools-extra] [libcxx] [lldb] [llvm] Add clang basic module directory (PR #93388)
ChuanqiXu9 wrote: BTW, I tried to split `Module` class into `ModuleBase`, `ClangModule` and `Cpp20Modules` (and HeaderUnits) classes to improve the readability. But it showed too hard and too many things get changes then I stopped. https://github.com/llvm/llvm-project/pull/93388 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [clang-tools-extra] [libcxx] [lldb] [llvm] Add clang basic module directory (PR #93388)
davidstone wrote: To give a little more detail about my plans as of right now: * Move `VisibleModuleSet` into its own file * Move `ASTFileSignature` into its own file * Take some of the related members of `Module`, group them together into their own class, and move the resulting classes into their own headers That last one is the most vague, because until I actually do some of the work I won't really know what the proper divisions are. But even if that last bullet ends up being two things split out, the `Module` directory ends up with 6 files in it, which is a much more reasonable organizational structure than the 2 files in this commit. https://github.com/llvm/llvm-project/pull/93388 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [clang-tools-extra] [libcxx] [lldb] [llvm] Add clang basic module directory (PR #93388)
davidstone wrote: > I don't like the PR since I don't feel it makes the code cleaner and it may > make the downstream suffering backporting. > > If there are deeper reasons or following patches, we can discuss them > seperately. On its own, I would agree. My goal is to split several more things out of `Module.h` but still keep all the module things together. I'm fine letting this sit until I get some of those other changes together and we can look over a broader set of changes and see if the direction is good. https://github.com/llvm/llvm-project/pull/93388 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [clang-tools-extra] [libcxx] [lldb] [llvm] Add clang basic module directory (PR #93388)
https://github.com/davidstone edited https://github.com/llvm/llvm-project/pull/93388 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [clang-tools-extra] [libcxx] [lldb] [llvm] Add clang basic module directory (PR #93388)
https://github.com/davidstone updated https://github.com/llvm/llvm-project/pull/93388 >From f4b9852b0c11a9b5087c5fdb7794b5cab7f4d22c Mon Sep 17 00:00:00 2001 From: David Stone Date: Sun, 26 May 2024 10:34:09 -0600 Subject: [PATCH 1/3] [clang][Modules] Remove unnecessary includes of `Module.h` --- .../clangd/unittests/ReplayPeambleTests.cpp | 10 +- .../include/clang/APINotes/APINotesManager.h | 5 +- .../Serialization/SymbolGraphSerializer.h | 1 - clang/include/clang/Serialization/ASTWriter.h | 32 ++--- .../clang/Serialization/ModuleManager.h | 14 +- clang/lib/APINotes/APINotesManager.cpp| 1 + clang/lib/AST/ASTDumper.cpp | 12 +- clang/lib/CodeGen/CodeGenModule.h | 126 -- clang/lib/ExtractAPI/API.cpp | 1 - .../header_exportable_declarations.cpp| 2 - 10 files changed, 93 insertions(+), 111 deletions(-) diff --git a/clang-tools-extra/clangd/unittests/ReplayPeambleTests.cpp b/clang-tools-extra/clangd/unittests/ReplayPeambleTests.cpp index 147d9abe69137..32942e6bbfdc8 100644 --- a/clang-tools-extra/clangd/unittests/ReplayPeambleTests.cpp +++ b/clang-tools-extra/clangd/unittests/ReplayPeambleTests.cpp @@ -25,7 +25,6 @@ #include "clang/AST/DeclTemplate.h" #include "clang/Basic/FileEntry.h" #include "clang/Basic/LLVM.h" -#include "clang/Basic/Module.h" #include "clang/Basic/SourceLocation.h" #include "clang/Basic/SourceManager.h" #include "clang/Basic/TokenKinds.h" @@ -42,7 +41,11 @@ #include #include -namespace clang::clangd { +namespace clang { + +class Module; + +namespace clangd { namespace { struct Inclusion { Inclusion(const SourceManager , SourceLocation HashLoc, @@ -170,4 +173,5 @@ TEST(ReplayPreambleTest, IncludesAndSkippedFiles) { } } } // namespace -} // namespace clang::clangd +} // namespace clangd +} // namespace clang diff --git a/clang/include/clang/APINotes/APINotesManager.h b/clang/include/clang/APINotes/APINotesManager.h index 18375c9e51a17..40c6328319dbd 100644 --- a/clang/include/clang/APINotes/APINotesManager.h +++ b/clang/include/clang/APINotes/APINotesManager.h @@ -9,7 +9,6 @@ #ifndef LLVM_CLANG_APINOTES_APINOTESMANAGER_H #define LLVM_CLANG_APINOTES_APINOTESMANAGER_H -#include "clang/Basic/Module.h" #include "clang/Basic/SourceLocation.h" #include "llvm/ADT/ArrayRef.h" #include "llvm/ADT/DenseMap.h" @@ -24,6 +23,7 @@ namespace clang { class DirectoryEntry; class FileEntry; class LangOptions; +class Module; class SourceManager; namespace api_notes { @@ -159,7 +159,8 @@ class APINotesManager { ArrayRef getCurrentModuleReaders() const { bool HasPublic = CurrentModuleReaders[ReaderKind::Public]; bool HasPrivate = CurrentModuleReaders[ReaderKind::Private]; -assert((!HasPrivate || HasPublic) && "private module requires public module"); +assert((!HasPrivate || HasPublic) && + "private module requires public module"); if (!HasPrivate && !HasPublic) return {}; return ArrayRef(CurrentModuleReaders).slice(0, HasPrivate ? 2 : 1); diff --git a/clang/include/clang/ExtractAPI/Serialization/SymbolGraphSerializer.h b/clang/include/clang/ExtractAPI/Serialization/SymbolGraphSerializer.h index 27e9167ca1ad0..f8759bf2d8f25 100644 --- a/clang/include/clang/ExtractAPI/Serialization/SymbolGraphSerializer.h +++ b/clang/include/clang/ExtractAPI/Serialization/SymbolGraphSerializer.h @@ -17,7 +17,6 @@ #ifndef LLVM_CLANG_EXTRACTAPI_SERIALIZATION_SYMBOLGRAPHSERIALIZER_H #define LLVM_CLANG_EXTRACTAPI_SERIALIZATION_SYMBOLGRAPHSERIALIZER_H -#include "clang/Basic/Module.h" #include "clang/ExtractAPI/API.h" #include "clang/ExtractAPI/APIIgnoresList.h" #include "clang/ExtractAPI/Serialization/APISetVisitor.h" diff --git a/clang/include/clang/Serialization/ASTWriter.h b/clang/include/clang/Serialization/ASTWriter.h index 88192e439a3f0..ddd3514b3c2db 100644 --- a/clang/include/clang/Serialization/ASTWriter.h +++ b/clang/include/clang/Serialization/ASTWriter.h @@ -18,7 +18,6 @@ #include "clang/AST/Decl.h" #include "clang/AST/Type.h" #include "clang/Basic/LLVM.h" -#include "clang/Basic/Module.h" #include "clang/Basic/SourceLocation.h" #include "clang/Sema/Sema.h" #include "clang/Sema/SemaConsumer.h" @@ -277,7 +276,8 @@ class ASTWriter : public ASTDeserializationListener, std::vector TypeOffsets; /// The first ID number we can use for our own identifiers. - serialization::IdentifierID FirstIdentID = serialization::NUM_PREDEF_IDENT_IDS; + serialization::IdentifierID FirstIdentID = + serialization::NUM_PREDEF_IDENT_IDS; /// The identifier ID that will be assigned to the next new identifier. serialization::IdentifierID NextIdentID = FirstIdentID; @@ -288,7 +288,8 @@ class ASTWriter : public ASTDeserializationListener, /// The ID numbers for identifiers are consecutive (in order of /// discovery), starting at 1. An ID of zero refers to a NULL /// IdentifierInfo. - llvm::MapVector
[clang] [clang-tools-extra] [libcxx] [lldb] [llvm] Add clang basic module directory (PR #93388)
@@ -11,7 +11,7 @@ // s-barannikov wrote: I guess this file should've been removed. https://github.com/llvm/llvm-project/pull/93388 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [clang-tools-extra] [libcxx] [lldb] [llvm] Add clang basic module directory (PR #93388)
https://github.com/ChuanqiXu9 edited https://github.com/llvm/llvm-project/pull/93388 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [clang-tools-extra] [libcxx] [lldb] [llvm] Add clang basic module directory (PR #93388)
https://github.com/ChuanqiXu9 requested changes to this pull request. I don't like the PR since I don't feel it makes the code cleaner and it may make the downstream suffering backporting. https://github.com/llvm/llvm-project/pull/93388 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [clang-tools-extra] [libcxx] [lldb] [llvm] Add clang basic module directory (PR #93388)
https://github.com/davidstone updated https://github.com/llvm/llvm-project/pull/93388 >From 0933b8e0f3161c0037516f677f1de2e72811d921 Mon Sep 17 00:00:00 2001 From: David Stone Date: Sat, 25 May 2024 14:13:30 -0600 Subject: [PATCH 1/5] [clang][Modules] Move `ASTSourceDescriptor` into its own file --- .../include/clang/Basic/ASTSourceDescriptor.h | 52 +++ clang/include/clang/Basic/Module.h| 26 -- clang/lib/AST/ExternalASTSource.cpp | 2 +- clang/lib/Basic/ASTSourceDescriptor.cpp | 33 clang/lib/Basic/CMakeLists.txt| 1 + clang/lib/Basic/Module.cpp| 15 -- clang/lib/CodeGen/CGDebugInfo.h | 3 +- clang/lib/Serialization/ASTReader.cpp | 1 + .../Plugins/ExpressionParser/Clang/ASTUtils.h | 8 ++- .../Clang/ClangExternalASTSourceCallbacks.cpp | 1 + .../Clang/ClangExternalASTSourceCallbacks.h | 8 ++- 11 files changed, 105 insertions(+), 45 deletions(-) create mode 100644 clang/include/clang/Basic/ASTSourceDescriptor.h create mode 100644 clang/lib/Basic/ASTSourceDescriptor.cpp diff --git a/clang/include/clang/Basic/ASTSourceDescriptor.h b/clang/include/clang/Basic/ASTSourceDescriptor.h new file mode 100644 index 0..175e0551db765 --- /dev/null +++ b/clang/include/clang/Basic/ASTSourceDescriptor.h @@ -0,0 +1,52 @@ +//===- ASTSourceDescriptor.h -*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===--===// +// +/// \file +/// Defines the clang::ASTSourceDescriptor class, which abstracts clang modules +/// and precompiled header files +// +//===--===// + +#ifndef LLVM_CLANG_BASIC_ASTSOURCEDESCRIPTOR_H +#define LLVM_CLANG_BASIC_ASTSOURCEDESCRIPTOR_H + +#include "clang/Basic/Module.h" +#include "llvm/ADT/StringRef.h" +#include +#include + +namespace clang { + +/// Abstracts clang modules and precompiled header files and holds +/// everything needed to generate debug info for an imported module +/// or PCH. +class ASTSourceDescriptor { + StringRef PCHModuleName; + StringRef Path; + StringRef ASTFile; + ASTFileSignature Signature; + Module *ClangModule = nullptr; + +public: + ASTSourceDescriptor() = default; + ASTSourceDescriptor(StringRef Name, StringRef Path, StringRef ASTFile, + ASTFileSignature Signature) + : PCHModuleName(std::move(Name)), Path(std::move(Path)), +ASTFile(std::move(ASTFile)), Signature(Signature) {} + ASTSourceDescriptor(Module ); + + std::string getModuleName() const; + StringRef getPath() const { return Path; } + StringRef getASTFile() const { return ASTFile; } + ASTFileSignature getSignature() const { return Signature; } + Module *getModuleOrNull() const { return ClangModule; } +}; + +} // namespace clang + +#endif // LLVM_CLANG_BASIC_ASTSOURCEDESCRIPTOR_H diff --git a/clang/include/clang/Basic/Module.h b/clang/include/clang/Basic/Module.h index 2d62d05cd9190..e86f4303d732b 100644 --- a/clang/include/clang/Basic/Module.h +++ b/clang/include/clang/Basic/Module.h @@ -868,32 +868,6 @@ class VisibleModuleSet { unsigned Generation = 0; }; -/// Abstracts clang modules and precompiled header files and holds -/// everything needed to generate debug info for an imported module -/// or PCH. -class ASTSourceDescriptor { - StringRef PCHModuleName; - StringRef Path; - StringRef ASTFile; - ASTFileSignature Signature; - Module *ClangModule = nullptr; - -public: - ASTSourceDescriptor() = default; - ASTSourceDescriptor(StringRef Name, StringRef Path, StringRef ASTFile, - ASTFileSignature Signature) - : PCHModuleName(std::move(Name)), Path(std::move(Path)), -ASTFile(std::move(ASTFile)), Signature(Signature) {} - ASTSourceDescriptor(Module ); - - std::string getModuleName() const; - StringRef getPath() const { return Path; } - StringRef getASTFile() const { return ASTFile; } - ASTFileSignature getSignature() const { return Signature; } - Module *getModuleOrNull() const { return ClangModule; } -}; - - } // namespace clang #endif // LLVM_CLANG_BASIC_MODULE_H diff --git a/clang/lib/AST/ExternalASTSource.cpp b/clang/lib/AST/ExternalASTSource.cpp index e96a474968511..a5b6f80bde694 100644 --- a/clang/lib/AST/ExternalASTSource.cpp +++ b/clang/lib/AST/ExternalASTSource.cpp @@ -15,10 +15,10 @@ #include "clang/AST/ExternalASTSource.h" #include "clang/AST/ASTContext.h" #include "clang/AST/DeclarationName.h" +#include "clang/Basic/ASTSourceDescriptor.h" #include "clang/Basic/FileManager.h" #include "clang/Basic/IdentifierTable.h" #include "clang/Basic/LLVM.h" -#include "clang/Basic/Module.h" #include
[clang] [clang-tools-extra] [libcxx] [lldb] [llvm] Add clang basic module directory (PR #93388)
https://github.com/davidstone updated https://github.com/llvm/llvm-project/pull/93388 >From 0933b8e0f3161c0037516f677f1de2e72811d921 Mon Sep 17 00:00:00 2001 From: David Stone Date: Sat, 25 May 2024 14:13:30 -0600 Subject: [PATCH 1/4] [clang][Modules] Move `ASTSourceDescriptor` into its own file --- .../include/clang/Basic/ASTSourceDescriptor.h | 52 +++ clang/include/clang/Basic/Module.h| 26 -- clang/lib/AST/ExternalASTSource.cpp | 2 +- clang/lib/Basic/ASTSourceDescriptor.cpp | 33 clang/lib/Basic/CMakeLists.txt| 1 + clang/lib/Basic/Module.cpp| 15 -- clang/lib/CodeGen/CGDebugInfo.h | 3 +- clang/lib/Serialization/ASTReader.cpp | 1 + .../Plugins/ExpressionParser/Clang/ASTUtils.h | 8 ++- .../Clang/ClangExternalASTSourceCallbacks.cpp | 1 + .../Clang/ClangExternalASTSourceCallbacks.h | 8 ++- 11 files changed, 105 insertions(+), 45 deletions(-) create mode 100644 clang/include/clang/Basic/ASTSourceDescriptor.h create mode 100644 clang/lib/Basic/ASTSourceDescriptor.cpp diff --git a/clang/include/clang/Basic/ASTSourceDescriptor.h b/clang/include/clang/Basic/ASTSourceDescriptor.h new file mode 100644 index 0..175e0551db765 --- /dev/null +++ b/clang/include/clang/Basic/ASTSourceDescriptor.h @@ -0,0 +1,52 @@ +//===- ASTSourceDescriptor.h -*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===--===// +// +/// \file +/// Defines the clang::ASTSourceDescriptor class, which abstracts clang modules +/// and precompiled header files +// +//===--===// + +#ifndef LLVM_CLANG_BASIC_ASTSOURCEDESCRIPTOR_H +#define LLVM_CLANG_BASIC_ASTSOURCEDESCRIPTOR_H + +#include "clang/Basic/Module.h" +#include "llvm/ADT/StringRef.h" +#include +#include + +namespace clang { + +/// Abstracts clang modules and precompiled header files and holds +/// everything needed to generate debug info for an imported module +/// or PCH. +class ASTSourceDescriptor { + StringRef PCHModuleName; + StringRef Path; + StringRef ASTFile; + ASTFileSignature Signature; + Module *ClangModule = nullptr; + +public: + ASTSourceDescriptor() = default; + ASTSourceDescriptor(StringRef Name, StringRef Path, StringRef ASTFile, + ASTFileSignature Signature) + : PCHModuleName(std::move(Name)), Path(std::move(Path)), +ASTFile(std::move(ASTFile)), Signature(Signature) {} + ASTSourceDescriptor(Module ); + + std::string getModuleName() const; + StringRef getPath() const { return Path; } + StringRef getASTFile() const { return ASTFile; } + ASTFileSignature getSignature() const { return Signature; } + Module *getModuleOrNull() const { return ClangModule; } +}; + +} // namespace clang + +#endif // LLVM_CLANG_BASIC_ASTSOURCEDESCRIPTOR_H diff --git a/clang/include/clang/Basic/Module.h b/clang/include/clang/Basic/Module.h index 2d62d05cd9190..e86f4303d732b 100644 --- a/clang/include/clang/Basic/Module.h +++ b/clang/include/clang/Basic/Module.h @@ -868,32 +868,6 @@ class VisibleModuleSet { unsigned Generation = 0; }; -/// Abstracts clang modules and precompiled header files and holds -/// everything needed to generate debug info for an imported module -/// or PCH. -class ASTSourceDescriptor { - StringRef PCHModuleName; - StringRef Path; - StringRef ASTFile; - ASTFileSignature Signature; - Module *ClangModule = nullptr; - -public: - ASTSourceDescriptor() = default; - ASTSourceDescriptor(StringRef Name, StringRef Path, StringRef ASTFile, - ASTFileSignature Signature) - : PCHModuleName(std::move(Name)), Path(std::move(Path)), -ASTFile(std::move(ASTFile)), Signature(Signature) {} - ASTSourceDescriptor(Module ); - - std::string getModuleName() const; - StringRef getPath() const { return Path; } - StringRef getASTFile() const { return ASTFile; } - ASTFileSignature getSignature() const { return Signature; } - Module *getModuleOrNull() const { return ClangModule; } -}; - - } // namespace clang #endif // LLVM_CLANG_BASIC_MODULE_H diff --git a/clang/lib/AST/ExternalASTSource.cpp b/clang/lib/AST/ExternalASTSource.cpp index e96a474968511..a5b6f80bde694 100644 --- a/clang/lib/AST/ExternalASTSource.cpp +++ b/clang/lib/AST/ExternalASTSource.cpp @@ -15,10 +15,10 @@ #include "clang/AST/ExternalASTSource.h" #include "clang/AST/ASTContext.h" #include "clang/AST/DeclarationName.h" +#include "clang/Basic/ASTSourceDescriptor.h" #include "clang/Basic/FileManager.h" #include "clang/Basic/IdentifierTable.h" #include "clang/Basic/LLVM.h" -#include "clang/Basic/Module.h" #include
[clang] [clang-tools-extra] [libcxx] [lldb] [llvm] Add clang basic module directory (PR #93388)
github-actions[bot] wrote: :warning: C/C++ code formatter, clang-format found issues in your code. :warning: You can test this locally with the following command: ``bash git-clang-format --diff faef8b4aa245a671e2013319e8073a9fc52ae12e 9be7409d8d246a24432faf7d5c238d6c0e1763d9 -- clang/include/clang/Basic/ASTSourceDescriptor.h clang/include/clang/Basic/Module/ASTSourceDescriptor.h clang/lib/Basic/Module/ASTSourceDescriptor.cpp clang/lib/Basic/Module/Module.cpp clang-tools-extra/clangd/unittests/ReplayPeambleTests.cpp clang/include/clang/APINotes/APINotesManager.h clang/include/clang/ExtractAPI/ExtractAPIVisitor.h clang/include/clang/ExtractAPI/Serialization/SymbolGraphSerializer.h clang/include/clang/Lex/ModuleLoader.h clang/include/clang/Lex/ModuleMap.h clang/include/clang/Lex/Preprocessor.h clang/include/clang/Sema/Sema.h clang/include/clang/Serialization/ASTWriter.h clang/include/clang/Serialization/ModuleFile.h clang/include/clang/Serialization/ModuleManager.h clang/include/clang/Serialization/PCHContainerOperations.h clang/lib/AST/ASTContext.cpp clang/lib/AST/ASTDumper.cpp clang/lib/AST/Decl.cpp clang/lib/AST/DeclBase.cpp clang/lib/AST/DeclPrinter.cpp clang/lib/AST/ExternalASTSource.cpp clang/lib/AST/ItaniumMangle.cpp clang/lib/AST/ODRDiagsEmitter.cpp clang/lib/AST/TextNodeDumper.cpp clang/lib/Basic/Module.cpp clang/lib/CodeGen/CGDebugInfo.h clang/lib/CodeGen/CodeGenModule.cpp clang/lib/CodeGen/CodeGenModule.h clang/lib/ExtractAPI/API.cpp clang/lib/ExtractAPI/TypedefUnderlyingTypeResolver.cpp clang/lib/Frontend/ASTUnit.cpp clang/lib/Frontend/FrontendActions.cpp clang/lib/Lex/HeaderSearch.cpp clang/lib/Lex/ModuleMap.cpp clang/lib/Lex/PPDirectives.cpp clang/lib/Lex/Pragma.cpp clang/lib/Lex/Preprocessor.cpp clang/lib/Serialization/ASTReader.cpp clang/lib/Serialization/ASTReaderDecl.cpp clang/lib/Serialization/ASTWriter.cpp libcxx/test/tools/clang_tidy_checks/header_exportable_declarations.cpp lldb/source/Plugins/ExpressionParser/Clang/ASTUtils.h lldb/source/Plugins/ExpressionParser/Clang/ClangExternalASTSourceCallbacks.cpp lldb/source/Plugins/ExpressionParser/Clang/ClangExternalASTSourceCallbacks.h clang/include/clang/Basic/Module/Module.h `` View the diff from clang-format here. ``diff diff --git a/clang/include/clang/Basic/Module/Module.h b/clang/include/clang/Basic/Module/Module.h index e86f4303d7..f71595c23b 100644 --- a/clang/include/clang/Basic/Module/Module.h +++ b/clang/include/clang/Basic/Module/Module.h @@ -230,7 +230,7 @@ private: std::vector TopHeaderNames; /// Cache of modules visible to lookup in this module. - mutable llvm::DenseSet VisibleModulesCache; + mutable llvm::DenseSet VisibleModulesCache; /// The ID used when referencing this module within a VisibleModuleSet. unsigned VisibilityID; @@ -545,10 +545,8 @@ public: /// /// \param ShadowingModule If this module is unavailable because it is /// shadowed, this parameter will be set to the shadowing module. - bool isAvailable(const LangOptions , - const TargetInfo , - Requirement , - UnresolvedHeaderDirective , + bool isAvailable(const LangOptions , const TargetInfo , + Requirement , UnresolvedHeaderDirective , Module *) const; /// Determine whether this module is a submodule. @@ -665,7 +663,7 @@ public: /// be this module. Module *getTopLevelModule() { return const_cast( - const_cast(this)->getTopLevelModule()); +const_cast(this)->getTopLevelModule()); } /// Retrieve the top-level module for this (sub)module, which may @@ -673,9 +671,7 @@ public: const Module *getTopLevelModule() const; /// Retrieve the name of the top-level module. - StringRef getTopLevelModuleName() const { -return getTopLevelModule()->Name; - } + StringRef getTopLevelModuleName() const { return getTopLevelModule()->Name; } /// The serialized AST file for this module, if one was created. OptionalFileEntryRef getASTFile() const { @@ -739,8 +735,7 @@ public: /// \param Target The target options that will be used to evaluate the /// availability of this feature. void addRequirement(StringRef Feature, bool RequiredState, - const LangOptions , - const TargetInfo ); + const LangOptions , const TargetInfo ); /// Mark this module and all of its submodules as unavailable. void markUnavailable(bool Unimportable); @@ -793,9 +788,7 @@ public: /// directly exported), not the complete set of exported modules. void getExportedModules(SmallVectorImpl ) const; - static StringRef getModuleInputBufferName() { -return ""; - } + static StringRef getModuleInputBufferName() { return ""; } /// Print the module map for this module to the given stream. void print(raw_ostream , unsigned Indent = 0, bool Dump = false) const; @@ -832,9
[clang] [clang-tools-extra] [libcxx] [lldb] [llvm] Add clang basic module directory (PR #93388)
https://github.com/davidstone updated https://github.com/llvm/llvm-project/pull/93388 >From 0933b8e0f3161c0037516f677f1de2e72811d921 Mon Sep 17 00:00:00 2001 From: David Stone Date: Sat, 25 May 2024 14:13:30 -0600 Subject: [PATCH 1/3] [clang][Modules] Move `ASTSourceDescriptor` into its own file --- .../include/clang/Basic/ASTSourceDescriptor.h | 52 +++ clang/include/clang/Basic/Module.h| 26 -- clang/lib/AST/ExternalASTSource.cpp | 2 +- clang/lib/Basic/ASTSourceDescriptor.cpp | 33 clang/lib/Basic/CMakeLists.txt| 1 + clang/lib/Basic/Module.cpp| 15 -- clang/lib/CodeGen/CGDebugInfo.h | 3 +- clang/lib/Serialization/ASTReader.cpp | 1 + .../Plugins/ExpressionParser/Clang/ASTUtils.h | 8 ++- .../Clang/ClangExternalASTSourceCallbacks.cpp | 1 + .../Clang/ClangExternalASTSourceCallbacks.h | 8 ++- 11 files changed, 105 insertions(+), 45 deletions(-) create mode 100644 clang/include/clang/Basic/ASTSourceDescriptor.h create mode 100644 clang/lib/Basic/ASTSourceDescriptor.cpp diff --git a/clang/include/clang/Basic/ASTSourceDescriptor.h b/clang/include/clang/Basic/ASTSourceDescriptor.h new file mode 100644 index 0..175e0551db765 --- /dev/null +++ b/clang/include/clang/Basic/ASTSourceDescriptor.h @@ -0,0 +1,52 @@ +//===- ASTSourceDescriptor.h -*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===--===// +// +/// \file +/// Defines the clang::ASTSourceDescriptor class, which abstracts clang modules +/// and precompiled header files +// +//===--===// + +#ifndef LLVM_CLANG_BASIC_ASTSOURCEDESCRIPTOR_H +#define LLVM_CLANG_BASIC_ASTSOURCEDESCRIPTOR_H + +#include "clang/Basic/Module.h" +#include "llvm/ADT/StringRef.h" +#include +#include + +namespace clang { + +/// Abstracts clang modules and precompiled header files and holds +/// everything needed to generate debug info for an imported module +/// or PCH. +class ASTSourceDescriptor { + StringRef PCHModuleName; + StringRef Path; + StringRef ASTFile; + ASTFileSignature Signature; + Module *ClangModule = nullptr; + +public: + ASTSourceDescriptor() = default; + ASTSourceDescriptor(StringRef Name, StringRef Path, StringRef ASTFile, + ASTFileSignature Signature) + : PCHModuleName(std::move(Name)), Path(std::move(Path)), +ASTFile(std::move(ASTFile)), Signature(Signature) {} + ASTSourceDescriptor(Module ); + + std::string getModuleName() const; + StringRef getPath() const { return Path; } + StringRef getASTFile() const { return ASTFile; } + ASTFileSignature getSignature() const { return Signature; } + Module *getModuleOrNull() const { return ClangModule; } +}; + +} // namespace clang + +#endif // LLVM_CLANG_BASIC_ASTSOURCEDESCRIPTOR_H diff --git a/clang/include/clang/Basic/Module.h b/clang/include/clang/Basic/Module.h index 2d62d05cd9190..e86f4303d732b 100644 --- a/clang/include/clang/Basic/Module.h +++ b/clang/include/clang/Basic/Module.h @@ -868,32 +868,6 @@ class VisibleModuleSet { unsigned Generation = 0; }; -/// Abstracts clang modules and precompiled header files and holds -/// everything needed to generate debug info for an imported module -/// or PCH. -class ASTSourceDescriptor { - StringRef PCHModuleName; - StringRef Path; - StringRef ASTFile; - ASTFileSignature Signature; - Module *ClangModule = nullptr; - -public: - ASTSourceDescriptor() = default; - ASTSourceDescriptor(StringRef Name, StringRef Path, StringRef ASTFile, - ASTFileSignature Signature) - : PCHModuleName(std::move(Name)), Path(std::move(Path)), -ASTFile(std::move(ASTFile)), Signature(Signature) {} - ASTSourceDescriptor(Module ); - - std::string getModuleName() const; - StringRef getPath() const { return Path; } - StringRef getASTFile() const { return ASTFile; } - ASTFileSignature getSignature() const { return Signature; } - Module *getModuleOrNull() const { return ClangModule; } -}; - - } // namespace clang #endif // LLVM_CLANG_BASIC_MODULE_H diff --git a/clang/lib/AST/ExternalASTSource.cpp b/clang/lib/AST/ExternalASTSource.cpp index e96a474968511..a5b6f80bde694 100644 --- a/clang/lib/AST/ExternalASTSource.cpp +++ b/clang/lib/AST/ExternalASTSource.cpp @@ -15,10 +15,10 @@ #include "clang/AST/ExternalASTSource.h" #include "clang/AST/ASTContext.h" #include "clang/AST/DeclarationName.h" +#include "clang/Basic/ASTSourceDescriptor.h" #include "clang/Basic/FileManager.h" #include "clang/Basic/IdentifierTable.h" #include "clang/Basic/LLVM.h" -#include "clang/Basic/Module.h" #include
[clang] [clang-tools-extra] [libcxx] [lldb] [llvm] Add clang basic module directory (PR #93388)
llvmbot wrote: @llvm/pr-subscribers-clang Author: David Stone (davidstone) Changes Depends on https://github.com/llvm/llvm-project/pull/67930 --- Patch is 54.88 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/93388.diff 49 Files Affected: - (modified) .github/new-prs-labeler.yml (+1-1) - (modified) clang-tools-extra/clangd/unittests/ReplayPeambleTests.cpp (+1-1) - (modified) clang/docs/Modules.rst (+1-1) - (modified) clang/include/clang/APINotes/APINotesManager.h (+1-1) - (added) clang/include/clang/Basic/ASTSourceDescriptor.h (+52) - (added) clang/include/clang/Basic/Module/ASTSourceDescriptor.h (+52) - (renamed) clang/include/clang/Basic/Module/Module.h (-26) - (modified) clang/include/clang/ExtractAPI/ExtractAPIVisitor.h (+1-1) - (modified) clang/include/clang/ExtractAPI/Serialization/SymbolGraphSerializer.h (+1-1) - (modified) clang/include/clang/Lex/ModuleLoader.h (+1-1) - (modified) clang/include/clang/Lex/ModuleMap.h (+1-1) - (modified) clang/include/clang/Lex/Preprocessor.h (+1-1) - (modified) clang/include/clang/Sema/Sema.h (+1-1) - (modified) clang/include/clang/Serialization/ASTWriter.h (+1-1) - (modified) clang/include/clang/Serialization/ModuleFile.h (+1-1) - (modified) clang/include/clang/Serialization/ModuleManager.h (+1-1) - (modified) clang/include/clang/Serialization/PCHContainerOperations.h (+1-1) - (modified) clang/lib/AST/ASTContext.cpp (+1-1) - (modified) clang/lib/AST/ASTDumper.cpp (+1-1) - (modified) clang/lib/AST/Decl.cpp (+1-1) - (modified) clang/lib/AST/DeclBase.cpp (+1-1) - (modified) clang/lib/AST/DeclPrinter.cpp (+1-1) - (modified) clang/lib/AST/ExternalASTSource.cpp (+1-1) - (modified) clang/lib/AST/ItaniumMangle.cpp (+1-1) - (modified) clang/lib/AST/ODRDiagsEmitter.cpp (+1-1) - (modified) clang/lib/AST/TextNodeDumper.cpp (+1-1) - (modified) clang/lib/Basic/CMakeLists.txt (+7-6) - (modified) clang/lib/Basic/Module.cpp (+1-16) - (added) clang/lib/Basic/Module/ASTSourceDescriptor.cpp (+33) - (added) clang/lib/Basic/Module/Module.cpp (+726) - (modified) clang/lib/CodeGen/CGDebugInfo.h (+2-1) - (modified) clang/lib/CodeGen/CodeGenModule.cpp (+1-1) - (modified) clang/lib/CodeGen/CodeGenModule.h (+1-1) - (modified) clang/lib/ExtractAPI/API.cpp (+1-1) - (modified) clang/lib/ExtractAPI/TypedefUnderlyingTypeResolver.cpp (+1-1) - (modified) clang/lib/Frontend/ASTUnit.cpp (+1-1) - (modified) clang/lib/Frontend/FrontendActions.cpp (+1-1) - (modified) clang/lib/Lex/HeaderSearch.cpp (+1-1) - (modified) clang/lib/Lex/ModuleMap.cpp (+1-1) - (modified) clang/lib/Lex/PPDirectives.cpp (+1-1) - (modified) clang/lib/Lex/Pragma.cpp (+1-1) - (modified) clang/lib/Lex/Preprocessor.cpp (+1-1) - (modified) clang/lib/Serialization/ASTReader.cpp (+2-1) - (modified) clang/lib/Serialization/ASTReaderDecl.cpp (+1-1) - (modified) clang/lib/Serialization/ASTWriter.cpp (+1-1) - (modified) libcxx/test/tools/clang_tidy_checks/header_exportable_declarations.cpp (+1-1) - (modified) lldb/source/Plugins/ExpressionParser/Clang/ASTUtils.h (+7-1) - (modified) lldb/source/Plugins/ExpressionParser/Clang/ClangExternalASTSourceCallbacks.cpp (+1) - (modified) lldb/source/Plugins/ExpressionParser/Clang/ClangExternalASTSourceCallbacks.h (+7-1) ``diff diff --git a/.github/new-prs-labeler.yml b/.github/new-prs-labeler.yml index a57ba28faf160..41325b2ff2e24 100644 --- a/.github/new-prs-labeler.yml +++ b/.github/new-prs-labeler.yml @@ -345,7 +345,7 @@ clang:modules: - clang/include/clang/AST/PropertiesBase.td - clang/include/clang/AST/ODRHash.h - clang/include/clang/AST/TypeProperties.td - - clang/include/clang/Basic/Module.h + - clang/include/clang/Basic/Module/** - clang/include/clang/Frontend/PrecompiledPreamble.h - clang/include/clang/Lex/ModuleLoader.h - clang/include/clang/Lex/ModuleMap.h diff --git a/clang-tools-extra/clangd/unittests/ReplayPeambleTests.cpp b/clang-tools-extra/clangd/unittests/ReplayPeambleTests.cpp index 147d9abe69137..c650f9b8440c2 100644 --- a/clang-tools-extra/clangd/unittests/ReplayPeambleTests.cpp +++ b/clang-tools-extra/clangd/unittests/ReplayPeambleTests.cpp @@ -25,7 +25,7 @@ #include "clang/AST/DeclTemplate.h" #include "clang/Basic/FileEntry.h" #include "clang/Basic/LLVM.h" -#include "clang/Basic/Module.h" +#include "clang/Basic/Module/Module.h" #include "clang/Basic/SourceLocation.h" #include "clang/Basic/SourceManager.h" #include "clang/Basic/TokenKinds.h" diff --git a/clang/docs/Modules.rst b/clang/docs/Modules.rst index 06294e3c58a4f..79c87250ad0d5 100644 --- a/clang/docs/Modules.rst +++ b/clang/docs/Modules.rst @@ -1126,7 +1126,7 @@ The Clang source code provides additional information about modules: ``clang/test/Modules/`` Tests specifically related to modules functionality. -``clang/include/clang/Basic/Module.h`` +``clang/include/clang/Basic/Module/Module.h`` The ``Module`` class in this header describes a module, and is used
[clang] [clang-tools-extra] [libcxx] [lldb] [llvm] Add clang basic module directory (PR #93388)
llvmbot wrote: @llvm/pr-subscribers-lldb Author: David Stone (davidstone) Changes Depends on https://github.com/llvm/llvm-project/pull/67930 --- Patch is 54.88 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/93388.diff 49 Files Affected: - (modified) .github/new-prs-labeler.yml (+1-1) - (modified) clang-tools-extra/clangd/unittests/ReplayPeambleTests.cpp (+1-1) - (modified) clang/docs/Modules.rst (+1-1) - (modified) clang/include/clang/APINotes/APINotesManager.h (+1-1) - (added) clang/include/clang/Basic/ASTSourceDescriptor.h (+52) - (added) clang/include/clang/Basic/Module/ASTSourceDescriptor.h (+52) - (renamed) clang/include/clang/Basic/Module/Module.h (-26) - (modified) clang/include/clang/ExtractAPI/ExtractAPIVisitor.h (+1-1) - (modified) clang/include/clang/ExtractAPI/Serialization/SymbolGraphSerializer.h (+1-1) - (modified) clang/include/clang/Lex/ModuleLoader.h (+1-1) - (modified) clang/include/clang/Lex/ModuleMap.h (+1-1) - (modified) clang/include/clang/Lex/Preprocessor.h (+1-1) - (modified) clang/include/clang/Sema/Sema.h (+1-1) - (modified) clang/include/clang/Serialization/ASTWriter.h (+1-1) - (modified) clang/include/clang/Serialization/ModuleFile.h (+1-1) - (modified) clang/include/clang/Serialization/ModuleManager.h (+1-1) - (modified) clang/include/clang/Serialization/PCHContainerOperations.h (+1-1) - (modified) clang/lib/AST/ASTContext.cpp (+1-1) - (modified) clang/lib/AST/ASTDumper.cpp (+1-1) - (modified) clang/lib/AST/Decl.cpp (+1-1) - (modified) clang/lib/AST/DeclBase.cpp (+1-1) - (modified) clang/lib/AST/DeclPrinter.cpp (+1-1) - (modified) clang/lib/AST/ExternalASTSource.cpp (+1-1) - (modified) clang/lib/AST/ItaniumMangle.cpp (+1-1) - (modified) clang/lib/AST/ODRDiagsEmitter.cpp (+1-1) - (modified) clang/lib/AST/TextNodeDumper.cpp (+1-1) - (modified) clang/lib/Basic/CMakeLists.txt (+7-6) - (modified) clang/lib/Basic/Module.cpp (+1-16) - (added) clang/lib/Basic/Module/ASTSourceDescriptor.cpp (+33) - (added) clang/lib/Basic/Module/Module.cpp (+726) - (modified) clang/lib/CodeGen/CGDebugInfo.h (+2-1) - (modified) clang/lib/CodeGen/CodeGenModule.cpp (+1-1) - (modified) clang/lib/CodeGen/CodeGenModule.h (+1-1) - (modified) clang/lib/ExtractAPI/API.cpp (+1-1) - (modified) clang/lib/ExtractAPI/TypedefUnderlyingTypeResolver.cpp (+1-1) - (modified) clang/lib/Frontend/ASTUnit.cpp (+1-1) - (modified) clang/lib/Frontend/FrontendActions.cpp (+1-1) - (modified) clang/lib/Lex/HeaderSearch.cpp (+1-1) - (modified) clang/lib/Lex/ModuleMap.cpp (+1-1) - (modified) clang/lib/Lex/PPDirectives.cpp (+1-1) - (modified) clang/lib/Lex/Pragma.cpp (+1-1) - (modified) clang/lib/Lex/Preprocessor.cpp (+1-1) - (modified) clang/lib/Serialization/ASTReader.cpp (+2-1) - (modified) clang/lib/Serialization/ASTReaderDecl.cpp (+1-1) - (modified) clang/lib/Serialization/ASTWriter.cpp (+1-1) - (modified) libcxx/test/tools/clang_tidy_checks/header_exportable_declarations.cpp (+1-1) - (modified) lldb/source/Plugins/ExpressionParser/Clang/ASTUtils.h (+7-1) - (modified) lldb/source/Plugins/ExpressionParser/Clang/ClangExternalASTSourceCallbacks.cpp (+1) - (modified) lldb/source/Plugins/ExpressionParser/Clang/ClangExternalASTSourceCallbacks.h (+7-1) ``diff diff --git a/.github/new-prs-labeler.yml b/.github/new-prs-labeler.yml index a57ba28faf160..41325b2ff2e24 100644 --- a/.github/new-prs-labeler.yml +++ b/.github/new-prs-labeler.yml @@ -345,7 +345,7 @@ clang:modules: - clang/include/clang/AST/PropertiesBase.td - clang/include/clang/AST/ODRHash.h - clang/include/clang/AST/TypeProperties.td - - clang/include/clang/Basic/Module.h + - clang/include/clang/Basic/Module/** - clang/include/clang/Frontend/PrecompiledPreamble.h - clang/include/clang/Lex/ModuleLoader.h - clang/include/clang/Lex/ModuleMap.h diff --git a/clang-tools-extra/clangd/unittests/ReplayPeambleTests.cpp b/clang-tools-extra/clangd/unittests/ReplayPeambleTests.cpp index 147d9abe69137..c650f9b8440c2 100644 --- a/clang-tools-extra/clangd/unittests/ReplayPeambleTests.cpp +++ b/clang-tools-extra/clangd/unittests/ReplayPeambleTests.cpp @@ -25,7 +25,7 @@ #include "clang/AST/DeclTemplate.h" #include "clang/Basic/FileEntry.h" #include "clang/Basic/LLVM.h" -#include "clang/Basic/Module.h" +#include "clang/Basic/Module/Module.h" #include "clang/Basic/SourceLocation.h" #include "clang/Basic/SourceManager.h" #include "clang/Basic/TokenKinds.h" diff --git a/clang/docs/Modules.rst b/clang/docs/Modules.rst index 06294e3c58a4f..79c87250ad0d5 100644 --- a/clang/docs/Modules.rst +++ b/clang/docs/Modules.rst @@ -1126,7 +1126,7 @@ The Clang source code provides additional information about modules: ``clang/test/Modules/`` Tests specifically related to modules functionality. -``clang/include/clang/Basic/Module.h`` +``clang/include/clang/Basic/Module/Module.h`` The ``Module`` class in this header describes a module, and is used
[clang] [clang-tools-extra] [libcxx] [lldb] [llvm] Add clang basic module directory (PR #93388)
https://github.com/davidstone created https://github.com/llvm/llvm-project/pull/93388 Depends on https://github.com/llvm/llvm-project/pull/67930 >From 0933b8e0f3161c0037516f677f1de2e72811d921 Mon Sep 17 00:00:00 2001 From: David Stone Date: Sat, 25 May 2024 14:13:30 -0600 Subject: [PATCH 1/2] [clang][Modules] Move `ASTSourceDescriptor` into its own file --- .../include/clang/Basic/ASTSourceDescriptor.h | 52 +++ clang/include/clang/Basic/Module.h| 26 -- clang/lib/AST/ExternalASTSource.cpp | 2 +- clang/lib/Basic/ASTSourceDescriptor.cpp | 33 clang/lib/Basic/CMakeLists.txt| 1 + clang/lib/Basic/Module.cpp| 15 -- clang/lib/CodeGen/CGDebugInfo.h | 3 +- clang/lib/Serialization/ASTReader.cpp | 1 + .../Plugins/ExpressionParser/Clang/ASTUtils.h | 8 ++- .../Clang/ClangExternalASTSourceCallbacks.cpp | 1 + .../Clang/ClangExternalASTSourceCallbacks.h | 8 ++- 11 files changed, 105 insertions(+), 45 deletions(-) create mode 100644 clang/include/clang/Basic/ASTSourceDescriptor.h create mode 100644 clang/lib/Basic/ASTSourceDescriptor.cpp diff --git a/clang/include/clang/Basic/ASTSourceDescriptor.h b/clang/include/clang/Basic/ASTSourceDescriptor.h new file mode 100644 index 0..175e0551db765 --- /dev/null +++ b/clang/include/clang/Basic/ASTSourceDescriptor.h @@ -0,0 +1,52 @@ +//===- ASTSourceDescriptor.h -*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===--===// +// +/// \file +/// Defines the clang::ASTSourceDescriptor class, which abstracts clang modules +/// and precompiled header files +// +//===--===// + +#ifndef LLVM_CLANG_BASIC_ASTSOURCEDESCRIPTOR_H +#define LLVM_CLANG_BASIC_ASTSOURCEDESCRIPTOR_H + +#include "clang/Basic/Module.h" +#include "llvm/ADT/StringRef.h" +#include +#include + +namespace clang { + +/// Abstracts clang modules and precompiled header files and holds +/// everything needed to generate debug info for an imported module +/// or PCH. +class ASTSourceDescriptor { + StringRef PCHModuleName; + StringRef Path; + StringRef ASTFile; + ASTFileSignature Signature; + Module *ClangModule = nullptr; + +public: + ASTSourceDescriptor() = default; + ASTSourceDescriptor(StringRef Name, StringRef Path, StringRef ASTFile, + ASTFileSignature Signature) + : PCHModuleName(std::move(Name)), Path(std::move(Path)), +ASTFile(std::move(ASTFile)), Signature(Signature) {} + ASTSourceDescriptor(Module ); + + std::string getModuleName() const; + StringRef getPath() const { return Path; } + StringRef getASTFile() const { return ASTFile; } + ASTFileSignature getSignature() const { return Signature; } + Module *getModuleOrNull() const { return ClangModule; } +}; + +} // namespace clang + +#endif // LLVM_CLANG_BASIC_ASTSOURCEDESCRIPTOR_H diff --git a/clang/include/clang/Basic/Module.h b/clang/include/clang/Basic/Module.h index 2d62d05cd9190..e86f4303d732b 100644 --- a/clang/include/clang/Basic/Module.h +++ b/clang/include/clang/Basic/Module.h @@ -868,32 +868,6 @@ class VisibleModuleSet { unsigned Generation = 0; }; -/// Abstracts clang modules and precompiled header files and holds -/// everything needed to generate debug info for an imported module -/// or PCH. -class ASTSourceDescriptor { - StringRef PCHModuleName; - StringRef Path; - StringRef ASTFile; - ASTFileSignature Signature; - Module *ClangModule = nullptr; - -public: - ASTSourceDescriptor() = default; - ASTSourceDescriptor(StringRef Name, StringRef Path, StringRef ASTFile, - ASTFileSignature Signature) - : PCHModuleName(std::move(Name)), Path(std::move(Path)), -ASTFile(std::move(ASTFile)), Signature(Signature) {} - ASTSourceDescriptor(Module ); - - std::string getModuleName() const; - StringRef getPath() const { return Path; } - StringRef getASTFile() const { return ASTFile; } - ASTFileSignature getSignature() const { return Signature; } - Module *getModuleOrNull() const { return ClangModule; } -}; - - } // namespace clang #endif // LLVM_CLANG_BASIC_MODULE_H diff --git a/clang/lib/AST/ExternalASTSource.cpp b/clang/lib/AST/ExternalASTSource.cpp index e96a474968511..a5b6f80bde694 100644 --- a/clang/lib/AST/ExternalASTSource.cpp +++ b/clang/lib/AST/ExternalASTSource.cpp @@ -15,10 +15,10 @@ #include "clang/AST/ExternalASTSource.h" #include "clang/AST/ASTContext.h" #include "clang/AST/DeclarationName.h" +#include "clang/Basic/ASTSourceDescriptor.h" #include "clang/Basic/FileManager.h" #include "clang/Basic/IdentifierTable.h" #include "clang/Basic/LLVM.h"