On Thu, Nov 16, 2017 at 02:20:59PM -0500, Jason Merrill wrote:
> On Thu, Nov 16, 2017 at 12:41 PM, Marek Polacek <pola...@redhat.com> wrote:
> > On Tue, Nov 14, 2017 at 07:34:54AM +0100, Richard Biener wrote:
> >> On November 14, 2017 6:21:41 AM GMT+01:00, Jason Merrill 
> >> <ja...@redhat.com> wrote:
> >> >On Mon, Nov 13, 2017 at 1:02 PM, Marek Polacek <pola...@redhat.com>
> >> >> In the end I did two bootstraps with the patch, but modifed one of
> >> >them
> >> >> to always return false for ix86_is_empty_record.  Then I compared all
> >> >the
> >> >> *.o in both dirs.  The result is attached.  Then I looked at
> >> >DW_AT_producer
> >> >> for all these .o that differ; all of them are C++.  Is this enough to
> >> >> clear our concerns?
> >> >
> >> >Hmm, a bunch of these are right at the beginning, bytes 41 and 65, in
> >> >the header.
> >> >
> >> >Did you build them in the different trunk/trunk2 directories?  I think
> >> >Jakub was suggesting building them in the same directory.
> >> >> And I also ran a bootstrap with --enable-cxx-flags=-Wabi=11, and
> >> >didn't
> >> >> see any warnings.
> >> >
> >> >If there's a codegen change, there ought to be a warning to go along
> >> >with it.
> >>
> >> The question was of course also for unintended changes but yes (I was 
> >> mainly concerned by libstdc++ ABI changes).
> >
> > Ok, I did two bootstraps in the same dir, one with ix86_is_empty_record 
> > always
> > returning false.  There were a few object files that differ in their 
> > assembly
> > between those two bootstraps.  Previously I didn't see any warnings because
> > I hadn't thought of -Wsystem-headers.  Also, we intentionally don't warn if
> > the empty parameter is the last one:
> >
> > +      bool seen_empty_type = false;
> > +      FOREACH_FUNCTION_ARGS (fntype, argtype, iter)
> > +       {
> > +         if (VOID_TYPE_P (argtype))
> > +           break;
> > +         if (TYPE_EMPTY_P (argtype))
> > +           seen_empty_type = true;
> > +         else if (seen_empty_type)
> > +           {
> > +             cum->warn_empty = true;
> > +             break;
> > +           }
> > +       }
> >
> > After enabling -Wsystem-headers and tweaking the code above so that we warn
> > even if the empty parameter is trailing I can see the warnings that 
> > correspond
> > to the assembly changes.  Below is a summary of what I found.  TL;DR: I 
> > don't
> > see any unintended changes.
> 
> Looks good to me.

Thanks!

Richi, are you ok with the patch now?
Honza/Uros, are the config/i386/* changes ok?

The last version of the patch is
https://gcc.gnu.org/ml/gcc-patches/2017-11/msg00969.html

        Marek

Reply via email to