diff options
author | Rui Ueyama <ruiu@google.com> | 2015-07-03 04:40:14 +0300 |
---|---|---|
committer | Rui Ueyama <ruiu@google.com> | 2015-07-03 04:40:14 +0300 |
commit | 7a247ee242a1fd1e3c736227fab1bf6779b4978d (patch) | |
tree | 5b29603a306de5980504ede1bb3da40f9d2369e6 /lld | |
parent | 6f9cfaf85b98f044d4c81af2cd7ca0664b1607b5 (diff) |
COFF: Fix a bug that /delayload was case-sensitive.
llvm-svn: 241316
Diffstat (limited to 'lld')
-rw-r--r-- | lld/COFF/Config.h | 2 | ||||
-rw-r--r-- | lld/COFF/Driver.cpp | 2 | ||||
-rw-r--r-- | lld/COFF/Writer.cpp | 2 | ||||
-rw-r--r-- | lld/test/COFF/delayimports.test | 2 |
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 |