diff options
-rw-r--r-- | clang/lib/Lex/ModuleMap.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/clang/lib/Lex/ModuleMap.cpp b/clang/lib/Lex/ModuleMap.cpp index a1c2d23fa38..3825ceb0a6c 100644 --- a/clang/lib/Lex/ModuleMap.cpp +++ b/clang/lib/Lex/ModuleMap.cpp @@ -1855,6 +1855,11 @@ void ModuleMapParser::parseHeaderDecl(MMToken::TokenKind LeadingToken, } } +static int compareModuleHeaders(const Module::Header *A, + const Module::Header *B) { + return A->NameAsWritten.compare(B->NameAsWritten); +} + /// \brief Parse an umbrella directory declaration. /// /// umbrella-dir-declaration: @@ -1914,10 +1919,8 @@ void ModuleMapParser::parseUmbrellaDirDecl(SourceLocation UmbrellaLoc) { } // Sort header paths so that the pcm doesn't depend on iteration order. - llvm::array_pod_sort(Headers.begin(), Headers.end(), - [](const Module::Header *A, const Module::Header *B) { - return A->NameAsWritten.compare(B->NameAsWritten); - }); + llvm::array_pod_sort(Headers.begin(), Headers.end(), compareModuleHeaders); + for (auto &Header : Headers) Map.addHeader(ActiveModule, std::move(Header), ModuleMap::TextualHeader); return; |