diff options
Diffstat (limited to 'clang/lib/Driver/ToolChains/Clang.cpp')
-rw-r--r-- | clang/lib/Driver/ToolChains/Clang.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp index 1e7ff67edda..f805fd5cb6f 100644 --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -918,7 +918,10 @@ static void RenderDebugInfoCompressionArgs(const ArgList &Args, return; if (A->getOption().getID() == options::OPT_gz) { - CmdArgs.push_back("-compress-debug-sections"); + if (llvm::zlib::isAvailable()) + CmdArgs.push_back("-compress-debug-sections"); + else + D.Diag(diag::warn_debug_compression_unavailable); return; } @@ -926,11 +929,11 @@ static void RenderDebugInfoCompressionArgs(const ArgList &Args, if (Value == "none") { CmdArgs.push_back("-compress-debug-sections=none"); } else if (Value == "zlib" || Value == "zlib-gnu") { - if (!llvm::zlib::isAvailable()) { - D.Diag(diag::warn_debug_compression_unavailable); - } else { + if (llvm::zlib::isAvailable()) { CmdArgs.push_back( Args.MakeArgString("-compress-debug-sections=" + Twine(Value))); + } else { + D.Diag(diag::warn_debug_compression_unavailable); } } else { D.Diag(diag::err_drv_unsupported_option_argument) |