fix, work around gcc deficiencies when handling transparent unions

Signed-off-by: Sebastian Freundt <freundt@ga-group.nl>
Merge branch 'bld/gcc' into next

* bld/gcc:
  fix, work around gcc deficiencies when handling transparent unions