summaryrefslogtreecommitdiffstats
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorAaron Ballman <aaron@aaronballman.com>2012-02-06 00:40:31 +0000
committerAaron Ballman <aaron@aaronballman.com>2012-02-06 00:40:31 +0000
commit746c62bf88a05a0fee011cc24da7b0ddebd1bdbf (patch)
treef86c144c30ca6875d9dde6de46fb56430fd68d61 /clang/lib/Frontend/CompilerInvocation.cpp
parent40d79093d9a9822573c5c9265f219bfcb02e8655 (diff)
downloadbcm5719-llvm-746c62bf88a05a0fee011cc24da7b0ddebd1bdbf.tar.gz
bcm5719-llvm-746c62bf88a05a0fee011cc24da7b0ddebd1bdbf.zip
Invalid O levels on the command line no longer have a confusing error.
llvm-svn: 149852
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
-rw-r--r--clang/lib/Frontend/CompilerInvocation.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp
index 7876bcb2430..8417aa48c07 100644
--- a/clang/lib/Frontend/CompilerInvocation.cpp
+++ b/clang/lib/Frontend/CompilerInvocation.cpp
@@ -1076,13 +1076,14 @@ static bool ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args, InputKind IK,
using namespace cc1options;
bool Success = true;
- Opts.OptimizationLevel = getOptimizationLevel(Args, IK, Diags);
- if (Opts.OptimizationLevel > 3) {
+ unsigned OptLevel = getOptimizationLevel(Args, IK, Diags);
+ if (OptLevel > 3) {
Diags.Report(diag::err_drv_invalid_value)
- << Args.getLastArg(OPT_O)->getAsString(Args) << Opts.OptimizationLevel;
- Opts.OptimizationLevel = 3;
+ << Args.getLastArg(OPT_O)->getAsString(Args) << OptLevel;
+ OptLevel = 3;
Success = false;
}
+ Opts.OptimizationLevel = OptLevel;
// We must always run at least the always inlining pass.
Opts.Inlining = (Opts.OptimizationLevel > 1) ? CodeGenOptions::NormalInlining
OpenPOWER on IntegriCloud