diff options
author | Ben Langmuir <blangmuir@apple.com> | 2014-09-08 20:36:26 +0000 |
---|---|---|
committer | Ben Langmuir <blangmuir@apple.com> | 2014-09-08 20:36:26 +0000 |
commit | 5f95c8fc5f3cc656d28c3049cf17b8aecd408b7b (patch) | |
tree | 020a04d2a3a195c252622778661f7af947611499 /clang/lib/Serialization/ASTWriter.cpp | |
parent | 18f0a986c129c0d0cd4c038547a6bbb81a4803b7 (diff) | |
download | bcm5719-llvm-5f95c8fc5f3cc656d28c3049cf17b8aecd408b7b.tar.gz bcm5719-llvm-5f95c8fc5f3cc656d28c3049cf17b8aecd408b7b.zip |
Fix PCHs that import more than one module
We were passing < to std::unique, but it expects ==. Since the input is
sorted, we were always trimming it to one entry.
llvm-svn: 217402
Diffstat (limited to 'clang/lib/Serialization/ASTWriter.cpp')
-rw-r--r-- | clang/lib/Serialization/ASTWriter.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/clang/lib/Serialization/ASTWriter.cpp b/clang/lib/Serialization/ASTWriter.cpp index 973d8a28e14..0b65d0a571d 100644 --- a/clang/lib/Serialization/ASTWriter.cpp +++ b/clang/lib/Serialization/ASTWriter.cpp @@ -4617,10 +4617,13 @@ void ASTWriter::WriteASTCore(Sema &SemaRef, auto Cmp = [](const ModuleInfo &A, const ModuleInfo &B) { return A.ID < B.ID; }; + auto Eq = [](const ModuleInfo &A, const ModuleInfo &B) { + return A.ID == B.ID; + }; // Sort and deduplicate module IDs. std::sort(Imports.begin(), Imports.end(), Cmp); - Imports.erase(std::unique(Imports.begin(), Imports.end(), Cmp), + Imports.erase(std::unique(Imports.begin(), Imports.end(), Eq), Imports.end()); RecordData ImportedModules; |