[PATCH] Fix GLIBC build error with recent GCC6

Jeff Law law@redhat.com
Mon Jul 20 17:46:00 GMT 2015


On 07/20/2015 11:40 AM, Carlos O'Donell wrote:
> On 07/20/2015 12:31 PM, Wilco Dijkstra wrote:
>> iconvdata/iso-2022-cn-ext.c fails to build with modern GCC, so add a warning disable. I created PR
>> 66946 to see whether this can be fixed in GCC.
>>
>>
>> ChangeLog:
>> 2015-07-20  Wilco Dijkstra  <wdijkstr@arm.com>
>>
>>          * iconvdata/iso-2022-cn-ext.c: Add warning disable.
>>
>>
>> ---
>>   iconvdata/iso-2022-cn-ext.c | 1 +
>>   1 file changed, 1 insertion(+)
>>
>> diff --git a/iconvdata/iso-2022-cn-ext.c b/iconvdata/iso-2022-cn-ext.c
>> index 2c9846d..75590a0 100644
>> --- a/iconvdata/iso-2022-cn-ext.c
>> +++ b/iconvdata/iso-2022-cn-ext.c
>> @@ -656,6 +656,7 @@ enum
>>   				while (0)
>>   #define UPDATE_PARAMS		*setp = (set | ann) << 3
>>   #define LOOP_NEED_FLAGS
>> +# pragma GCC diagnostic ignored "-Wuninitialized"
>>   #include <iconv/loop.c>
>
> Can you localize it more? Add a comment and reference the BZ?
>
> e.g.
>
>        /* Building with -O3 GCC emits a `array subscript is above array
>           bounds' warning.  GCC BZ #64739 has been opened for this.  */
>        DIAG_PUSH_NEEDS_COMMENT;
>        DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Warray-bounds");
>        while (inptr < inend)
>          bytebuf[inlen++] = *inptr++;
>        DIAG_POP_NEEDS_COMMENT;
Extra credit if you can file a bug report upstream for GCC.

This kind of false positive often leads to discovery of cases that GCC 
is not optimizing as well as it should.  Killing the false positive and 
generating better code in the process is obviously a good thing.

The preprocessed source & options ought to be enough.  We can reduce it 
to a minimized form on the GCC side of things.


jeff



More information about the Libc-alpha mailing list