On 1/4/19 10:36 PM, Pádraig Brady wrote:
> On 04/01/19 13:07, Bernhard Voelker wrote:
>> On 1/4/19 6:38 PM, Pádraig Brady wrote:
>>> I wonder should we avoid VLAs in coreutils altogether?
>>> I.E. add -Werror=vla. The kernel has done this for security reaons.
>>
>> Well, why not?  The only problem is still the one mentioned in 
>> 'configure.ac':
>>
>>   nw="$nw -Wvla"                    # warnings in gettext.h
>>
>> With -Werror=vla, we get a lot of warnings, but all originate from
>> these 2 places in gettext.h:
>>
>>   ./lib/gettext.h: In function 'dcpgettext_expr':
>>   ./lib/gettext.h:220:3: error: ISO C90 forbids variable length array 
>> 'msg_ctxt_id' [-Werror=vla]
>>      char msg_ctxt_id[msgctxt_len + msgid_len];
>>      ^~~~
>>   ./lib/gettext.h: In function 'dcnpgettext_expr':
>>   ./lib/gettext.h:268:3: error: ISO C90 forbids variable length array 
>> 'msg_ctxt_id' [-Werror=vla]
>>      char msg_ctxt_id[msgctxt_len + msgid_len];
>>      ^~~~
> 
> It should be sufficient to also
> 
>   #define __STDC_NO_VLA__ 1
> 

No, that is inactive in gettext.h;


  #if (((__GNUC__ >= 3 || __GNUG__ >= 2) && !defined __STRICT_ANSI__) \
       /* || (__STDC_VERSION__ == 199901L && !defined __HP_cc)
          || (__STDC_VERSION__ >= 201112L && !defined __STDC_NO_VLA__) */ )
  # define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 1
  #else
  # define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 0
  #endif

See Bruno's comment in gnulib commit a750b78e69:

  * lib/gettext.h (_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS): Extend comment
  to include the theoretical condition for availability of variable size
  arrays, if we could trust the value of __STDC_VERSION__.

Have a nice day,
Berny


Reply via email to