summaryrefslogtreecommitdiffstats
path: root/llvm/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp
diff options
context:
space:
mode:
authorPeter Collingbourne <peter@pcc.me.uk>2017-09-07 20:39:46 +0000
committerPeter Collingbourne <peter@pcc.me.uk>2017-09-07 20:39:46 +0000
commit9e26e9795590be723bb2e8cd303d9b8159c67084 (patch)
treebfebcb5c76bb8bdaea18d8f91286e4ead386e730 /llvm/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp
parentb8c419085f7dbcabb3ba7efa59859e78bd62952c (diff)
downloadbcm5719-llvm-9e26e9795590be723bb2e8cd303d9b8159c67084.tar.gz
bcm5719-llvm-9e26e9795590be723bb2e8cd303d9b8159c67084.zip
COFF: PDB: Allow multiple modules with the same name.
It is possible for two modules to have the same name if they are archive members with the same name, or if we are doing LTO (in which case all modules will have the name "lto.tmp"). Differential Revision: https://reviews.llvm.org/D37589 llvm-svn: 312744
Diffstat (limited to 'llvm/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp')
-rw-r--r--llvm/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp21
1 files changed, 3 insertions, 18 deletions
diff --git a/llvm/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp b/llvm/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp
index 1d194bdf78d..c96553ff9b1 100644
--- a/llvm/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp
+++ b/llvm/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp
@@ -90,24 +90,9 @@ uint32_t DbiStreamBuilder::calculateSerializedLength() const {
Expected<DbiModuleDescriptorBuilder &>
DbiStreamBuilder::addModuleInfo(StringRef ModuleName) {
uint32_t Index = ModiList.size();
- auto MIB =
- llvm::make_unique<DbiModuleDescriptorBuilder>(ModuleName, Index, Msf);
- auto M = MIB.get();
- auto Result = ModiMap.insert(std::make_pair(ModuleName, std::move(MIB)));
-
- if (!Result.second)
- return make_error<RawError>(raw_error_code::duplicate_entry,
- "The specified module already exists");
- ModiList.push_back(M);
- return *M;
-}
-
-Error DbiStreamBuilder::addModuleSourceFile(StringRef Module, StringRef File) {
- auto ModIter = ModiMap.find(Module);
- if (ModIter == ModiMap.end())
- return make_error<RawError>(raw_error_code::no_entry,
- "The specified module was not found");
- return addModuleSourceFile(*ModIter->second, File);
+ ModiList.push_back(
+ llvm::make_unique<DbiModuleDescriptorBuilder>(ModuleName, Index, Msf));
+ return *ModiList.back();
}
Error DbiStreamBuilder::addModuleSourceFile(DbiModuleDescriptorBuilder &Module,
OpenPOWER on IntegriCloud