Merge change 22828 into eclair

* changes:
  Preliminary struct and union support.