diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 38f540dc6ec..d0ca9ce5030 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +Wed Dec 16 17:30:35 1998 Nick Clifton + + * 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 * 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 6af4c82b800..5abb8821f19 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)