On Mon, Sep 6, 2021 at 1:46 PM Jakub Jelinek <ja...@redhat.com> wrote:
>
> On Mon, Sep 06, 2021 at 01:37:46PM +0200, Martin Liška wrote:
> > --- a/gcc/opts.c
> > +++ b/gcc/opts.c
> > @@ -1323,6 +1323,14 @@ finish_options (struct gcc_options *opts, struct 
> > gcc_options *opts_set,
> >        = (opts->x_flag_unroll_loops
> >           || opts->x_flag_peel_loops
> >           || opts->x_optimize >= 3);
> > +
> > +  /* With -fcx-limited-range, we do cheap and quick complex arithmetic.  */
> > +  if (opts->x_flag_cx_limited_range)
> > +    flag_complex_method = 0;
> > +
> > +  /* With -fcx-fortran-rules, we do something in-between cheap and C99.  */
> > +  if (opts->x_flag_cx_fortran_rules)
> > +    flag_complex_method = 1;
>
> That should then be opts->x_flag_complex_method instead of 
> flag_complex_method.
>
> Ok with that change.

But the C/C++ langhooks also set flag_complex_method so I fail to see how
this helps?  As said I was referring to -fcx-limited-range on the command-line
and -fno-cx-limited-range in the optimize node to undo this which should
get you the langhook setting of flag_complex_method = 2.

> Note, I think we want to do much more in finish_options and less in
> process_options, anything that is about Optimization options rather than
> just the global ones.  Though one needs to be careful with the cases where
> the code diagnoses something.
>
>         Jakub
>

Reply via email to