[cfe-commits] r149852 - in /cfe/trunk: lib/Frontend/CompilerInvocation.cpp test/Driver/invalid-o-level.c

Aaron Ballman aaron at aaronballman.com
Sun Feb 5 16:40:31 PST 2012


Author: aaronballman
Date: Sun Feb  5 18:40:31 2012
New Revision: 149852

URL: http://llvm.org/viewvc/llvm-project?rev=149852&view=rev
Log:
Invalid O levels on the command line no longer have a confusing error.

Added:
    cfe/trunk/test/Driver/invalid-o-level.c   (with props)
Modified:
    cfe/trunk/lib/Frontend/CompilerInvocation.cpp

Modified: cfe/trunk/lib/Frontend/CompilerInvocation.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/CompilerInvocation.cpp?rev=149852&r1=149851&r2=149852&view=diff
==============================================================================
--- cfe/trunk/lib/Frontend/CompilerInvocation.cpp (original)
+++ cfe/trunk/lib/Frontend/CompilerInvocation.cpp Sun Feb  5 18:40:31 2012
@@ -1076,13 +1076,14 @@
   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

Added: cfe/trunk/test/Driver/invalid-o-level.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/invalid-o-level.c?rev=149852&view=auto
==============================================================================
--- cfe/trunk/test/Driver/invalid-o-level.c (added)
+++ cfe/trunk/test/Driver/invalid-o-level.c Sun Feb  5 18:40:31 2012
@@ -0,0 +1,4 @@
+// RUN: not %clang_cc1 %s -O900 2> %t.log
+// RUN: FileCheck %s -input-file=%t.log
+
+// CHECK: invalid value '900' in '-O900'

Propchange: cfe/trunk/test/Driver/invalid-o-level.c
------------------------------------------------------------------------------
    svn:eol-style = native





More information about the cfe-commits mailing list