On Mon, Jan 24, 2022 at 11:41 AM Jakub Jelinek <ja...@redhat.com> wrote:
>
> On Mon, Jan 24, 2022 at 11:17:00AM +0100, Richard Biener wrote:
> > > I think with the 2) patch I achieve what we want for Fortran, for 1)
> > > the only behavior from gcc 11 is that
> > > -fsanitize-coverage=trace-cmp,trace-cmp is now rejected.
> >
> > But -fsanitize-coverage=trace-cmp -fsanitize-coverage=trace-cmp is not?
>
> With the incremental patch, the -fsanitize-coverage behavior is simply
> that trace-pc is 1 and trace-cmp is 2 (both are required to be pow2p)
> and any time trace-cmp appears in the -fsanitize-coverage=, it does |= 2,
> any time trace-pc appears there it does |= 1, for -fno-sanitize-coverage=
> any times trace-cmp appears it does &= ~2 and trace-pc &= ~1.
>
> > What's the semantics of -fconvert=big-endian 
> > -fconvert=little-endian,r16_ieeee?
> > Does the latter replace big-endian with little-endian but add r16_ieeee?
>
> Yes.  big-endian and little-endian is mutually exclusive, so a latter
> occurrence of one of those overrides the former.  big-endian and r16_ieee
> aren't mutually exclusive, different Set, so it is set next to it.
> Similarly for
> -fconvert=big-endian,r16_ibm -fconvert=little-endian,r16_ieee
> the end effect for both is the same as just
> -fconvert=little-endian,r16_ieee
> But e.g.
> -fconvert=big-endian -fconvert=r16_ibm
> the effect is -fconvert=big-endian,r16_ibm
>
> > I suppose we could interpret -fFOO=BAR,BAZ as -fFOO=BAR -fFOO=BAZ
> > thus process items left-to-right?  It's at least odd if
>
> They behave very similarly, the only difference is that in the -fFOO=BAR,BAZ
> syntax we error on mutually exclusive options.  My rationale is, the
> overriding through -fFOO=BAR -fFOO=BAZ if BAR and BAZ are mutually exclusive
> is desirable, the two options could come from different make etc. variables
> or compiler wrapper scripts or -specs etc.  But when it is a single option,
> that option comes from a single source only and users should be told they
> are doing something weird like -fconvert=little-endian,big-endian,swap
> The compiler should hint them that they likely don't know what they want.

OK, that sounds reasonable.  With the same reasoning -fconvert=swap,swap
might be a typo and is reasonable to diagnose (but less important so I guess).

Richard.

>         Jakub
>

Reply via email to