C99 structure initialization in gcc-2.95.3 vs gcc-3.3.1

Kevin P. Fleming kpfleming@cox.net
Thu Nov 6 05:18:00 GMT 2003


I've got an enum and a structure:

enum option_type {
     O_STRING,
     O_BOOL,
     O_NUMBER
};

struct option_s {
     char *name;
     enum option_type type;
     char *value;
     char *def_value;
};

I want to define and initialize an instance of this structure:

static struct option_s foo_option = {
     .name = "foo",
     .type = O_STRING,
     .def_value = "default"
};

With gcc-3.3.1, this works fine. With gcc-2.95.3, it complains about a 
"missing initializer for .value". However, I know that the Linux kernel 
uses this type of structure initialization, and it compiles OK with 
gcc-2.95.3. Any ideas what's up here? I don't think this is actually a 
syntax error on my part...



More information about the Gcc-bugs mailing list