Thanks for the response. That is basically what I was wondering. I only tested it with MinGW 4.3.0 alpha (which compiles it fine), and all the docs I can remember having seen (which are few on unions) only say that unnamed members are not initialized.
This is for a PNG handler. The tRNS chunk uses a fixed 16-bits space per sample storage for GrayScale and RGB images (the decoder has to ignore high-order bits outside the image's actual bit-depth).
I've actually been working with Tcl lately. The decoder uses the Critcl package to attempt to compile a native (C) library before using the interpreted version. The difference in execution speed is significant for images greater than 28 pixels square. And while I prefer the simpler syntax, it is more important that the C code be as robustly portable as possible...