summaryrefslogtreecommitdiffstats
path: root/lib/Object
diff options
context:
space:
mode:
authorSaleem Abdulrasool <compnerd@compnerd.org>2017-07-19 02:01:22 +0000
committerSaleem Abdulrasool <compnerd@compnerd.org>2017-07-19 02:01:22 +0000
commitabab2b9ec94e3798cfbc6da90d64a1386eb0f703 (patch)
tree006953facdfbc6e1760327d5dcf035ad6e3c953e /lib/Object
parent03e0349c1502abec3773e634065e07602412386a (diff)
Object: preserve more information about DEF file
Preserve the actual library name as provided by the user. This is required to properly replicate link's behaviour about the module import name handling. This requires an associated change to lld for updating the tests for the proper behaviour for the import library module name handling in various cases. Associated tests will be part of the lld change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@308406 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Object')
-rw-r--r--lib/Object/COFFModuleDefinition.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/lib/Object/COFFModuleDefinition.cpp b/lib/Object/COFFModuleDefinition.cpp
index 5fa06e977fd3..ed9140d1fe08 100644
--- a/lib/Object/COFFModuleDefinition.cpp
+++ b/lib/Object/COFFModuleDefinition.cpp
@@ -188,13 +188,17 @@ private:
std::string Name;
if (Error Err = parseName(&Name, &Info.ImageBase))
return Err;
- // Append the appropriate file extension if not already present.
- if (!sys::path::has_extension(Name))
- Name += IsDll ? ".dll" : ".exe";
+
+ Info.ImportName = Name;
// Set the output file, but don't override /out if it was already passed.
- if (Info.OutputFile.empty())
+ if (Info.OutputFile.empty()) {
Info.OutputFile = Name;
+ // Append the appropriate file extension if not already present.
+ if (!sys::path::has_extension(Name))
+ Info.OutputFile += IsDll ? ".dll" : ".exe";
+ }
+
return Error::success();
}
case KwVersion: