http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52944
--- Comment #5 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-04-13 09:30:48 UTC --- (In reply to comment #4) > (In reply to comment #3) > > wouldn't it though ? there's still a top level union there surrounding all > the > members. so flattening it, i'd get three choices: > - th_block; th_data > - th_code; th_data > - th_stuff > > the problem before was that it was a union followed by th_data > > testing locally with gcc-4.6.2, i get the object sizes of: > - -O0: th_data:-1 th_stuff:-1 > - -O[s123]: th_data:96 th_stuff:98 Ah, yeah. That might work reliably indeed. Though I find my solutions nicer and more explicit ;)