diff options
| author | Steven Wu <stevenwu@apple.com> | 2016-05-18 17:04:52 +0000 |
|---|---|---|
| committer | Steven Wu <stevenwu@apple.com> | 2016-05-18 17:04:52 +0000 |
| commit | 1257cd8fd8f22d636b74b624586032b695f27c59 (patch) | |
| tree | f06f730bb61dd611935e34f4b03880be4ec95b63 /clang/lib/Driver | |
| parent | 40b1277135f12ccc4388debff9becedd5e401198 (diff) | |
| download | bcm5719-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.cpp | 6 |
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)); |

