Ben said:
If I am brutally honest, I suspect my posting about lcc-win32's
conformance to C99 was essentially unhelpful. It may have been
prompted by exasperation at Jacob Navia promoting the use of a
language standard that his compiler has only limited support for but,
as such, it was as much a "troll" as many posts here since it was
short on information (what works and what does not) and high on
rhetoric (irony is a favourite rhetorical device).
Everywhere I have said that I do not support designated initializers as
yet. Heathfield (and you) know this, that is why you put those there.
I am working since several weeks in doing that, and several attempts
have failed, because the complexity of the initialization rules in C99.
My first attempt was to build an image of the structure in memory, so
that you can "jump" from one field to the next in any order. This is
OK of course for simple structures, but will fail when your structure
definition contains references to other symbols that need a relocation.
For instance
struct M { int a;char *b;};
struct M ss = {6,"string"};
The reference to a char pointer means I have to put into the
structure the address of the character string, i.e. I have to first
generate the character string, assign it an automatic symbol, and then
put the reference to that symbol into the structure that is being built.
This was done before and immediately written to the assembler file, but
now I can't write anything, and must build structures in memory
where I can jump around according to the tags.
Obviously all structures are recursive, and I have to do this
recursively for arrays and structures since both now allow jumping
around.
I must work in my day time job and can't do this every day. I must
do it in week ends, or at night. Excellent working conditions surely.
You have the easy part Becarisse. Just complain, ironically say that
lcc-win is a pile of shit, etc.