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