rmaz created this revision. Herald added a subscriber: mgrang. Herald added a project: All. rmaz requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits.
Sort additional module maps when serializing pcm files. This ensures the `MODULE_MAP_FILE` record is deterministic across repeated builds. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D133611 Files: clang/lib/Serialization/ASTWriter.cpp Index: clang/lib/Serialization/ASTWriter.cpp =================================================================== --- clang/lib/Serialization/ASTWriter.cpp +++ clang/lib/Serialization/ASTWriter.cpp @@ -1282,7 +1282,11 @@ if (auto *AdditionalModMaps = Map.getAdditionalModuleMapFiles(WritingModule)) { Record.push_back(AdditionalModMaps->size()); - for (const FileEntry *F : *AdditionalModMaps) + SmallVector<const FileEntry *, 1> ModMaps(AdditionalModMaps->begin(), AdditionalModMaps->end()); + llvm::sort(ModMaps, [](const FileEntry *A, const FileEntry *B) { + return A->getName() < B->getName(); + }); + for (const FileEntry *F : ModMaps) AddPath(F->getName(), Record); } else { Record.push_back(0);
Index: clang/lib/Serialization/ASTWriter.cpp =================================================================== --- clang/lib/Serialization/ASTWriter.cpp +++ clang/lib/Serialization/ASTWriter.cpp @@ -1282,7 +1282,11 @@ if (auto *AdditionalModMaps = Map.getAdditionalModuleMapFiles(WritingModule)) { Record.push_back(AdditionalModMaps->size()); - for (const FileEntry *F : *AdditionalModMaps) + SmallVector<const FileEntry *, 1> ModMaps(AdditionalModMaps->begin(), AdditionalModMaps->end()); + llvm::sort(ModMaps, [](const FileEntry *A, const FileEntry *B) { + return A->getName() < B->getName(); + }); + for (const FileEntry *F : ModMaps) AddPath(F->getName(), Record); } else { Record.push_back(0);
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits