[pacman-dev] gnu89-inline
Dan McGee
dpmcgee at gmail.com
Mon Apr 4 20:11:11 EDT 2011
On Sun, Apr 3, 2011 at 3:46 AM, Sebastian Nowicki <sebnow at gmail.com> wrote:
> On Sun, Apr 3, 2011 at 4:12 PM, Xavier Chantry <chantry.xavier at gmail.com>wrote:
>
>> On Sun, Apr 3, 2011 at 10:04 AM, Xavier Chantry
>> <chantry.xavier at gmail.com> wrote:
>> > On Sun, Apr 3, 2011 at 6:55 AM, Sebastian Nowicki <sebnow at gmail.com>
>> wrote:
>> >> Looks like there are more warnings when using gnu89:
>> >>
>> >> $ make 2>&1 | grep 'warning:' | cut -d' ' -f3- | sort | uniq -c
>> >> 74 comma at end of enumerator list
>> >> 1 initializer element is not computable at load time
>> >> 7 ISO C90 does not support the 'j' gnu_printf length modifier
>> >> 106 ISO C90 does not support the 'z' gnu_printf length modifier
>> >> 41 ISO C90 forbids mixed declarations and code
>> >> 57 ISO C90 forbids specifying subobject to initialize
>> >>
>> >>
>> >
>> > There are lots of duplicates (173 -> 58 warnings after removing them).
>> > 4 commas at the end of enumerator lists are a C99-specific
>> > feature [-pedantic]
>> > 2 extension used [-pedantic]
>> > 50 ISO C90 forbids mixing declarations and code
>> > [-Wdeclaration-after-statement]
>> > 2 variable declaration in for loop is a C99-specific feature
>> [-pedantic]
>> >
>>
>> Actually that was the clang result while Seb posted results with gcc.
>> In that case, removing duplicates goes from 286 to 214 (mostly comma
>> at end of enumerator list from alpm.h)
>>
>> grep warning make-gcc.log | sort -u | cut -d' ' -f3- | sort | uniq -c
>> 4 comma at end of enumerator list
>> 1 initializer element is not computable at load time
>> 6 ISO C90 does not support the 'j' gnu_printf length modifier
>> 105 ISO C90 does not support the 'z' gnu_printf length modifier
>> 41 ISO C90 forbids mixed declarations and code
>> 57 ISO C90 forbids specifying subobject to initialize
>>
>>
> Any reason not to move to C99? I believe the 'j' and 'z' length modifiers
> are standard in C99, along with mixed declarations and probably commas at
> the end of enums. The code doesn't conform to C90 atm anyway. Not exactly
> compelling arguments, but it would be good to explicitly define which
> standard the code base should conform to.
We're already using C99, so this would be nothing new. Note how
configure.ac asks for a C99 compiler specifically- AC_PROG_CC_C99.
The only thing that I see as potentially worth it out of this is
making alpm.h and alpm_list.h C89 compliant, if we even do that.
-Dan
More information about the pacman-dev
mailing list