aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorNick Clifton <nickc@cygnus.com>1998-12-16 17:34:48 +0000
committerNick Clifton <nickc@gcc.gnu.org>1998-12-16 17:34:48 +0000
commit16b6e12048088a3bfcb18f1f89a420a2e9f2d7a2 (patch)
tree56290d67c0a07aad543710a5700e371a3cbf8544 /gcc
parentf868ca8f89da12e0aa3101f4da9a4dbb93549963 (diff)
downloadgcc-16b6e12048088a3bfcb18f1f89a420a2e9f2d7a2.zip
gcc-16b6e12048088a3bfcb18f1f89a420a2e9f2d7a2.tar.gz
gcc-16b6e12048088a3bfcb18f1f89a420a2e9f2d7a2.tar.bz2
Ensure that last optimisation level set overrides any previous levels.
From-SVN: r24347
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/toplev.c17
2 files changed, 17 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 38f540d..d0ca9ce 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/toplev.c b/gcc/toplev.c
index 6af4c82b..5abb882 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -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)