After some digging, it does indeed seem like Cygwin has been updated with tighter checks. Guess that means I'll be ding a lot of debugging =) At least I'll learn to write much cleaner code.
I'll have to look in to your solution Nick once back on the *nix box.
Amended on Fri 11 Dec 2009 07:17 PM (UTC) by Nick Gammon
Message
Rash said:
I just can't wrap my head around why it would give such an error now, months after its been compiled cleanly with the strucs been set like that.
If you Google your error message you will find you are not the only one. "But ... it used to work!" is a common theme.
The compiler has tightened up its checks. It now refuses to allocate an array of somethings when it doesn't know what size they are.
This code compiled OK for me:
struct weight_type
{
char *weight_type_list[1];
};
extern const struct weight_type weight_type_table[];
int main ()
{
return 0;
}
So you may solve your problem by including a .h file that defines what weight_type is, then the extern definition to an array of weight_type can be processed.
What would cause the compiler to give since an error now and not before? I can't seem to get it working at all even with the changes noted above by yourself Nick. (I may be missing something needing done here?)
I just can't wrap my head around why it would give such an error now, months after its been compiled cleanly with the strucs been set like that.
OK I have by far the strangest problem I've ever encountered. Back in march this was compiling clean and without a problem. Just moved it to my new laptop running Cygwin and out pop's this error. The code in question hasn't been changed (Nothing has since March). Any clue's on what may of caused this and how to correct it?
Notes: Codebase is Smaug 1.4a, pretty heavily modified now.
Compile Errors:
make[1]: Entering directory `/home/talairina/src'
gcc -c -O -g3 -Wall -Wuninitialized -Dsmaug -DTIMEFORMAT act_comm.c
In file included from act_comm.c:32:
mud.h:3868: error: array type has incomplete element type
mud.h:3876: error: array type has incomplete element type
mud.h:3884: error: array type has incomplete element type
mud.h:3892: error: array type has incomplete element type
mud.h:3900: error: array type has incomplete element type
mud.h:3907: error: array type has incomplete element type
mud.h:3909: error: array type has incomplete element type
make[1]: *** [act_comm.o] Error 1
make[1]: Leaving directory `/home/talairina/src'
make: *** [all] Error 2
There are more, but all are vastly similar to the above segments.
All compile attempts were on Cygwin under Windows XP SP 3 (Cygwin release is 05 Dec 2009) and Windows 7 (Same Cygwin package). I also attempted this on my Ubuntu box but same error outputs (Ubuntu Linux 8.04.3).
The dates and times for posts above are shown in Universal Co-ordinated Time (UTC).
To show them in your local time you can join the forum, and then set the 'time correction' field in your profile to the number of hours difference between your location and UTC time.