Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/llvm/llvm-project.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/lld
diff options
context:
space:
mode:
authorRui Ueyama <ruiu@google.com>2015-07-03 04:40:14 +0300
committerRui Ueyama <ruiu@google.com>2015-07-03 04:40:14 +0300
commit7a247ee242a1fd1e3c736227fab1bf6779b4978d (patch)
tree5b29603a306de5980504ede1bb3da40f9d2369e6 /lld
parent6f9cfaf85b98f044d4c81af2cd7ca0664b1607b5 (diff)
COFF: Fix a bug that /delayload was case-sensitive.
llvm-svn: 241316
Diffstat (limited to 'lld')
-rw-r--r--lld/COFF/Config.h2
-rw-r--r--lld/COFF/Driver.cpp2
-rw-r--r--lld/COFF/Writer.cpp2
-rw-r--r--lld/test/COFF/delayimports.test2
4 files changed, 4 insertions, 4 deletions
diff --git a/lld/COFF/Config.h b/lld/COFF/Config.h
index 75a92c0cf079..e3e77ad3f3d5 100644
--- a/lld/COFF/Config.h
+++ b/lld/COFF/Config.h
@@ -59,7 +59,7 @@ struct Configuration {
bool DLL = false;
StringRef Implib;
std::vector<Export> Exports;
- std::set<StringRef> DelayLoads;
+ std::set<std::string> DelayLoads;
// Used for /opt:icf
bool ICF = false;
diff --git a/lld/COFF/Driver.cpp b/lld/COFF/Driver.cpp
index 8252cad6b96f..9006d0368660 100644
--- a/lld/COFF/Driver.cpp
+++ b/lld/COFF/Driver.cpp
@@ -421,7 +421,7 @@ bool LinkerDriver::link(llvm::ArrayRef<const char *> ArgsArr) {
// Handle /delayload
for (auto *Arg : Args.filtered(OPT_delayload)) {
- Config->DelayLoads.insert(Arg->getValue());
+ Config->DelayLoads.insert(StringRef(Arg->getValue()).lower());
addUndefined("__delayLoadHelper2");
}
diff --git a/lld/COFF/Writer.cpp b/lld/COFF/Writer.cpp
index 5c242e4dc5df..49b5de5da7be 100644
--- a/lld/COFF/Writer.cpp
+++ b/lld/COFF/Writer.cpp
@@ -222,7 +222,7 @@ void Writer::createImportTables() {
Text->addChunk(cast<DefinedImportThunk>(B)->getChunk());
continue;
}
- if (Config->DelayLoads.count(Import->getDLLName())) {
+ if (Config->DelayLoads.count(Import->getDLLName().lower())) {
DelayIdata.add(Import);
} else {
Idata.add(Import);
diff --git a/lld/test/COFF/delayimports.test b/lld/test/COFF/delayimports.test
index 1e862d7aa989..8226e7413ac0 100644
--- a/lld/test/COFF/delayimports.test
+++ b/lld/test/COFF/delayimports.test
@@ -1,5 +1,5 @@
# RUN: lld -flavor link2 /out:%t.exe /entry:main /subsystem:console \
-# RUN: %p/Inputs/hello64.obj %p/Inputs/std64.lib /delayload:std64.dll \
+# RUN: %p/Inputs/hello64.obj %p/Inputs/std64.lib /delayload:std64.DLL \
# RUN: /alternatename:__delayLoadHelper2=main
# RUN: llvm-readobj -coff-imports %t.exe | FileCheck -check-prefix=IMPORT %s
# RUN: llvm-readobj -coff-basereloc %t.exe | FileCheck -check-prefix=BASEREL %s