Discussion:
Argp Example #2 error
(too old to reply)
Rick Stanley
2014-10-15 13:35:45 UTC
Permalink
In your example program:

https://www.gnu.org/software/libc/manual/html_node/Argp-Example-2.html#Argp-Example-2

On line 37 of the code, there is a typo in the number of arguments:

static struct argp argp = { 0, 0, 0, doc };

Should be:

static struct argp argp = { 0, 0, 0, doc, 0, 0, 0 };

Compiling with:

gcc -Wall -Wextra -o argp argp.c

gives the following error:

missing initializer for field 'children' (or ‘help_filter’, or ‘argp_domain’) missing initializer for field

Until all three args have been added to the call.

Please correct.

Thank you!

Rick Stanley
--
RSI (Rick Stanley, Inc.)
(917) 822-7771
www.rsiny.com
Computer Systems Consulting
Linux & Open Source Specialists
--
RSI (Rick Stanley, Inc.)
(917) 822-7771
www.rsiny.com
Computer Systems Consulting
Linux & Open Source Specialists
--
RSI (Rick Stanley, Inc.)
(917) 822-7771
www.rsiny.com
Computer Systems Consulting
Linux & Open Source Specialists
Eric Blake
2014-10-15 15:09:24 UTC
Permalink
Post by Rick Stanley
https://www.gnu.org/software/libc/manual/html_node/Argp-Example-2.html#Argp-Example-2
static struct argp argp = { 0, 0, 0, doc };
static struct argp argp = { 0, 0, 0, doc, 0, 0, 0 };
The two are strictly equivalent. The C standard requires that all
trailing members of a struct are zero-initialized if omitted.
Post by Rick Stanley
gcc -Wall -Wextra -o argp argp.c
missing initializer for field 'children' (or ‘help_filter’, or ‘argp_domain’) missing initializer for field
Until all three args have been added to the call.
What an annoying compiler warning option. So even though it doesn't
affect code correctness, it does seem simple enough to do to shut up
overly-pedantic compilers.

However, you are more likely to get results by writing to the owner of
the libc manual
(https://www.gnu.org/software/libc/manual/html_node/Reporting-Bugs.html#Reporting-Bugs
suggests that they prefer bugzilla reports over mails to an unrelated
list, even for documentation bugs).
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
Loading...