On 4 June 2016 at 23:24, Martin Sebor <mse...@gmail.com> wrote:
> Ping: https://gcc.gnu.org/ml/gcc-patches/2016-05/msg02216.html
>
>
> On 05/27/2016 11:34 AM, Martin Sebor wrote:
>>
>> The patch below adjusts the C alignof pedantic warning to avoid
>> diagnosing the GCC extension (__alignof__) and only diagnose
>> _Alignof in C99 and prior modes.  This is consistent with how
>> __attribute__ ((aligned)) and _Alignas is handled (among other
>> extensions vs standard features).
>>
>> Martin
>>
>> PR c/69507 - bogus warning: ISO C does not allow ‘__alignof__
>> (expression)’
>>
>> gcc/testsuite/ChangeLog:
>> 2016-05-27  Martin Sebor  <mse...@redhat.com>
>>
>>      PR c/69507
>>      * gcc.dg/alignof.c: New test.
>>
>> gcc/c/ChangeLog:
>> 2016-05-27  Martin Sebor  <mse...@redhat.com>
>>
>>      PR c/69507
>>      * c-parser.c (c_parser_alignof_expression): Avoid diagnosing
>>      __alignof__ (expression).
>>

Hi,

Since this patch was committed, I am now seeing failures on:
gcc.dg/gnu99-const-expr-1.c
gcc.dg/gnu99-static-1.c

(targets arm, aarch64, I don't think that it should matter?)

Can you have  a look?

Christophe



>> Index: gcc/c/c-parser.c
>> ===================================================================
>> --- gcc/c/c-parser.c    (revision 232841)
>> +++ gcc/c/c-parser.c    (working copy)
>> @@ -7019,9 +7019,10 @@ c_parser_alignof_expression (c_parser *p
>>         mark_exp_read (expr.value);
>>         c_inhibit_evaluation_warnings--;
>>         in_alignof--;
>> -      pedwarn (start_loc,
>> -           OPT_Wpedantic, "ISO C does not allow %<%E (expression)%>",
>> -           alignof_spelling);
>> +      if (is_c11_alignof)
>> +    pedwarn (start_loc,
>> +         OPT_Wpedantic, "ISO C does not allow %<%E (expression)%>",
>> +         alignof_spelling);
>>         ret.value = c_alignof_expr (start_loc, expr.value);
>>         ret.original_code = ERROR_MARK;
>>         ret.original_type = NULL;
>> Index: gcc/testsuite/gcc.dg/alignof.c
>> ===================================================================
>> --- gcc/testsuite/gcc.dg/alignof.c    (revision 0)
>> +++ gcc/testsuite/gcc.dg/alignof.c    (working copy)
>> @@ -0,0 +1,11 @@
>> +/* PR c/69507 - bogus warning: ISO C does not allow '__alignof__
>> (expression)'
>> + */
>> +/* { dg-do compile } */
>> +/* { dg-options "-std=c11 -Wno-error -Wpedantic" } */
>> +
>> +extern int e;
>> +
>> +int a[] = {
>> +    __alignof__ (e),
>> +    _Alignof (e)       /* { dg-warning "ISO C does not allow ._Alignof
>> \\(expression\\)." } */
>> +};
>
>

Reply via email to