Paul Lindner wrote:

This is a C99 extension. It probably should be expressed as void
*end[].  Can you try this construct instead?

<     void * end[0];
    void * end[];

This passes all tests on linux and macosx.
And with Sun Studio 12 :-)

Using void *end[1] results in the base data structure growing in size
from 32 to 36 bytes, which is probably not what we want.
I have just started to look at the code, so I still haven't done any "in-depth" analysis. Will it actually make a difference (run-time)? From the comments I gets the impression that the minimum size of the variable part of the struct is 10 bytes.

(key and zero-term: 2 bytes
flag space length \r\n: 5 bytes data \r\n: 3 bytes
)

so even in LP64 we still use all of the space...

(But since void*end[] is a valid construct that describes the actual use, I do prefer that ;-) I was just curious if there was something obvious I didn't see...)


Trond Norbye

Reply via email to