Hi!

On Thu, Apr 23, 2020 at 10:06:16AM +0200, Jakub Jelinek wrote:
> > Is there no way to describe this without referring to "c++17" (or even
> > "base field")?  It's a pretty gross abstraction violation.
> 
> I'm afraid it is desirable to talk about c++17 and base field, otherwise
> it won't be clear what we mean.

Yeah, but that just shows it is a bad abstraction (not an abstraction at
all really, heh).  Not nice :-(

> > > +               inform (input_location,
> > > +                       "prior to GCC 10, parameters of type "
> > > +                       "%qT were passed incorrectly for C++17", type);
> > 
> > This could more explicitly say that makes the compiled code incompatible
> > between GCC 10 and older, which is the point of the warning?  It's not
> > really necessary to say the old one was bad -- let's hope it was :-)
> 
> After many iterations on IRC we came up with the following wording, which is
> what I've committed.  Might be nice to also have URL with larger explanation
> in changes.html. but the diagnostic framework doesn't support that yet.

> +                   inform (input_location,
> +                           "parameter passing for argument of type %qT "
> +                           "when C++17 is enabled changed to match C++14 "
> +                           "in GCC 10.1", type);

It isn't "to match C++14".  It simply is a bugfix, we didn't follow
the ABI before :-)

Thanks again for doing this work, much appreciated,


Segher

Reply via email to