> OK, what do you think of it now? My take on this is that the Proper Fix(tm) has been posted by Martin: http://gcc.gnu.org/ml/gcc-patches/2013-08/msg00082.html IMO it's a no-brainer, modulo the ABI concern. Everything else is more or less clever stuff to paper over this original compute_record_mode bug.
We are lying to the expander by pretending that the object has V2DImode since it's larger and thus cannot be manipulated in this mode; everything is clearly downhill from there. If we don't want to properly fix the bug then let's put a hack in the expander, possibly using EXPAND_MEMORY, but it should trigger _only_ for structures with zero-sized arrays and non-BLKmode and be preceded by a big ??? comment explaining why it is deemed necessary. -- Eric Botcazou