That use case is possible with the particular implementation that is now used by curl:
struct fileinfo { struct curl_fileinfo info; struct curl_llist_element list; };
I think one of your other points is more likely, or simply "it was fast enough and we went for more interesting features than for such optimizations".
struct A { int x, y; }; struct B { union { struct A 2d; struct { int x, y; }; } int z; }; ... struct B foo; foo.x = foo.2d.y = foo.z = 0;
That use case is possible with the particular implementation that is now used by curl:
You can use the payload (struct curl_fileinfo) outside of a list without incurring any overhead.I think one of your other points is more likely, or simply "it was fast enough and we went for more interesting features than for such optimizations".