https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118765
--- Comment #17 from Hime Haieto <himehaieto at gmail dot com> --- I'm not entirely sure what I should be doing/commenting on at the moment considering that the current patches are clearly marked as being temporary/partial fixes. However, I did still mess around with it a bit and it does seem like the current patches allow for any number of typedefs to redefine the same struct, though can still fail if a typedef is used without a full definition (eg, alternating `typedef struct foo foo_t;` with `struct foo {int bar;};`). This *seems* about right though, as a brief/uninformed look at the patch suggests it has a limited memory of last vs current definition, and favours the current one, which could possibly result in something like that. I can work with that for now though, and with a bit of modification to use only the longer "struct foo" syntax throughout implementation code until I'm ready to provide the full typedef-ed definition, my generic containers now completely work with no user workarounds. Yay!