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.

Jason

Reply via email to