OSDN Git Service

Ensure that last optimisation level set overrides any previous levels.
authornickc <nickc@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 16 Dec 1998 17:34:48 +0000 (17:34 +0000)
committernickc <nickc@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 16 Dec 1998 17:34:48 +0000 (17:34 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@24347 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/toplev.c

index 38f540d..d0ca9ce 100644 (file)
@@ -1,3 +1,9 @@
+Wed Dec 16 17:30:35 1998  Nick Clifton  <nickc@cygnus.com>
+
+       * toplev.c (main): Disable optimize_size if a specific
+       optimization level is requested.  Always set optimization
+       level to 2 if -Os is specified.
+
 Wed Dec 16 16:33:04 1998  Dave Brolley  <brolley@cygnus.com>
 
        * objc/lang-specs.h: Pass -MD, -MMD and -MG to cc1obj if configured with
index 6af4c82..5abb882 100644 (file)
@@ -4556,6 +4556,7 @@ main (argc, argv)
       if (!strcmp (argv[i], "-O"))
        {
          optimize = 1;
+         optimize_size = 0;
        }
       else if (argv[i][0] == '-' && argv[i][1] == 'O')
        {
@@ -4564,22 +4565,26 @@ main (argc, argv)
          int c;
          
          if ((p[0] == 's') && (p[1] == 0))
-           optimize_size = 1;
+           {
+             optimize_size = 1;
+             
+             /* Optimizing for size forces optimize to be 2. */
+             optimize = 2;
+           }
          else
            {       
              while ((c = *p++))
                if (! (c >= '0' && c <= '9'))
                  break;
              if (c == 0)
-               optimize = atoi (&argv[i][2]);
+               {
+                 optimize = atoi (&argv[i][2]);
+                 optimize_size = 0;
+               }
            }
        }
     }
 
-  /* Optimizing for size forces optimize to be no less than 2. */
-  if (optimize_size && (optimize < 2))
-    optimize = 2;
-    
   obey_regdecls = (optimize == 0);
 
   if (optimize >= 1)