diff options
author | Rui Ueyama <ruiu@google.com> | 2015-09-16 21:30:55 +0000 |
---|---|---|
committer | Rui Ueyama <ruiu@google.com> | 2015-09-16 21:30:55 +0000 |
commit | 3b153e6541f40c5c204468bb287728d3e9b83efd (patch) | |
tree | 5050aee39fd6e1b6b437d9fd8207e27bfde8e66a | |
parent | 4bce7bcc88f3ed45cf52ca9db003f30c0ad096c3 (diff) | |
download | bcm5719-llvm-3b153e6541f40c5c204468bb287728d3e9b83efd.tar.gz bcm5719-llvm-3b153e6541f40c5c204468bb287728d3e9b83efd.zip |
COFF: Fix bug that /opt:noicf was ignored.
llvm-svn: 247854
-rw-r--r-- | lld/COFF/Driver.cpp | 6 | ||||
-rw-r--r-- | lld/test/COFF/icf-simple.test | 13 |
2 files changed, 15 insertions, 4 deletions
diff --git a/lld/COFF/Driver.cpp b/lld/COFF/Driver.cpp index 1d60cbb7f3b..b6939659cbc 100644 --- a/lld/COFF/Driver.cpp +++ b/lld/COFF/Driver.cpp @@ -374,6 +374,10 @@ void LinkerDriver::link(llvm::ArrayRef<const char *> ArgsArr) { Config->DoICF = true; continue; } + if (S == "noicf") { + Config->DoICF = false; + continue; + } if (StringRef(S).startswith("lldlto=")) { StringRef OptLevel = StringRef(S).substr(7); if (OptLevel.getAsInteger(10, Config->LTOOptLevel) || @@ -387,7 +391,7 @@ void LinkerDriver::link(llvm::ArrayRef<const char *> ArgsArr) { error("/opt:lldltojobs: invalid job count: " + Jobs); continue; } - if (S != "ref" && S != "noicf" && S != "lbr" && S != "nolbr") + if (S != "ref" && S != "lbr" && S != "nolbr") error(Twine("/opt: unknown option: ") + S); } diff --git a/lld/test/COFF/icf-simple.test b/lld/test/COFF/icf-simple.test index f913b6afec2..04d86d1e916 100644 --- a/lld/test/COFF/icf-simple.test +++ b/lld/test/COFF/icf-simple.test @@ -1,10 +1,17 @@ # RUN: yaml2obj < %s > %t.obj # RUN: lld-link /entry:foo /out:%t.exe /subsystem:console /include:bar \ # RUN: /verbose %t.obj > %t.log 2>&1 -# RUN: FileCheck %s < %t.log +# RUN: FileCheck -check-prefix=ICF %s < %t.log -# CHECK: Selected foo -# CHECK: Removed bar +# ICF: Selected foo +# ICF: Removed bar + +# RUN: lld-link /entry:foo /out:%t.exe /subsystem:console /include:bar \ +# RUN: /verbose /opt:noicf %t.obj > %t.log 2>&1 +# RUN: FileCheck -check-prefix=NOICF %s < %t.log + +# NOICF-NOT: Removed foo +# NOICF-NOT: Removed bar --- header: |