https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117516
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Though, I wonder about unions. For those all members are last and so if one has struct S { union U u; int v; }; and union U has 2 union members with 2 union members each ... like in this example and some of the ultimate structures have flexible array member, maybe this would still have the same complexity. So perhaps we need a flag whether RECORD_TYPE/UNION_TYPE or at least the latter has flexible array member at the end (or hash_map mapping to the field etc.). Anyway, haven't read the whole patch yet in detail what exactly it is doing and why. Even for base classes, I'd hope those were finalized first. And even for virtual bases they were...