summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver
diff options
context:
space:
mode:
authorSteven Wu <stevenwu@apple.com>2016-05-18 17:04:52 +0000
committerSteven Wu <stevenwu@apple.com>2016-05-18 17:04:52 +0000
commit1257cd8fd8f22d636b74b624586032b695f27c59 (patch)
treef06f730bb61dd611935e34f4b03880be4ec95b63 /clang/lib/Driver
parent40b1277135f12ccc4388debff9becedd5e401198 (diff)
downloadbcm5719-llvm-1257cd8fd8f22d636b74b624586032b695f27c59.tar.gz
bcm5719-llvm-1257cd8fd8f22d636b74b624586032b695f27c59.zip
[Driver] Fix the case when use -fembed-bitcode and -flto= together
Summary: -fembed-bitcode was only checking for old style LTO flag (-flto) but not considering the new -flto= style option. That makes clang output bitcode embedded in bitcode object when using -flto= and -fembed-bitcode= together. Now clang should output normal bitcode file when using LTO and ignores -fembed-bitcode option. Reviewers: joker.eph Subscribers: joker.eph, cfe-commits Differential Revision: http://reviews.llvm.org/D20374 llvm-svn: 269961
Diffstat (limited to 'clang/lib/Driver')
-rw-r--r--clang/lib/Driver/Driver.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 1f2c64eaf73..be2971de598 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -504,9 +504,11 @@ Compilation *Driver::BuildCompilation(ArrayRef<const char *> ArgList) {
.Default(SaveTempsCwd);
}
+ setLTOMode(Args);
+
// Ignore -fembed-bitcode options with LTO
// since the output will be bitcode anyway.
- if (!Args.hasFlag(options::OPT_flto, options::OPT_fno_lto, false)) {
+ if (getLTOMode() == LTOK_None) {
if (Arg *A = Args.getLastArg(options::OPT_fembed_bitcode_EQ)) {
StringRef Name = A->getValue();
unsigned Model = llvm::StringSwitch<unsigned>(Name)
@@ -526,8 +528,6 @@ Compilation *Driver::BuildCompilation(ArrayRef<const char *> ArgList) {
Args.ClaimAllArgs(options::OPT_fembed_bitcode_EQ);
}
- setLTOMode(Args);
-
std::unique_ptr<llvm::opt::InputArgList> UArgs =
llvm::make_unique<InputArgList>(std::move(Args));
OpenPOWER on IntegriCloud