summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRui Ueyama <ruiu@google.com>2015-09-16 21:30:55 +0000
committerRui Ueyama <ruiu@google.com>2015-09-16 21:30:55 +0000
commit3b153e6541f40c5c204468bb287728d3e9b83efd (patch)
tree5050aee39fd6e1b6b437d9fd8207e27bfde8e66a
parent4bce7bcc88f3ed45cf52ca9db003f30c0ad096c3 (diff)
downloadbcm5719-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.cpp6
-rw-r--r--lld/test/COFF/icf-simple.test13
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:
OpenPOWER on IntegriCloud