[PATCH RFC] Warn when optimization flag is given without -O
Richard Guenther
richard.guenther@gmail.com
Wed May 2 08:57:00 GMT 2012
On Sat, Apr 28, 2012 at 4:48 PM, Alexander Monakov <amonakov@ispras.ru> wrote:
>
> Looks like people who want to play with optimization options are still tripped
> by the fact that optimizations are not enabled unless -O is given (even though
> it's documented in the manual now). Can we add a warning for that like below?
>
> Untested beside bubblestrap. I suppose this will produce noise for -O0
> torture testsuite — what is the recommended way to fix that?
>
> diff --git a/gcc/opts-common.c b/gcc/opts-common.c
> index 354bce0..a18a89d 100644
> --- a/gcc/opts-common.c
> +++ b/gcc/opts-common.c
> @@ -1056,6 +1056,11 @@ read_cmdline_option (struct gcc_options *opts,
> if (!handle_option (opts, opts_set, decoded, lang_mask, DK_UNSPECIFIED,
> loc, handlers, false, dc))
> error_at (loc, "unrecognized command line option %qs", opt);
> +
> + if ((option->flags & CL_OPTIMIZATION)
That's surely too coarse - you will warn about options that _will_
have an effect.
There is currently no easy way to glob all affected options.
I don't think we want to warn about -O2 -ftree-pre -O0 either, nor
about -fno-tree-pre.
Overall I would expect people to have noticed that with -O0 these options have
no effect when they've gone all the way to figure out the separate optimization
options, no?
Thanks,
Richard.
> + && !opts->x_optimize)
> + warning_at (loc, 0, "optimization option %qs has no effect "
> + "at zero -O level", opt);
> }
>
> /* Set any field in OPTS, and OPTS_SET if not NULL, for option
More information about the Gcc-patches
mailing list