[PATCH] D68115: Zero initialize padding in unions

Vitaly Buka via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Jan 14 13:56:47 PST 2020


vitalybuka added a comment.

In D68115#1820579 <https://reviews.llvm.org/D68115#1820579>, @aaron.ballman wrote:

> In D68115#1820462 <https://reviews.llvm.org/D68115#1820462>, @vitalybuka wrote:
>
> > I would be happy to finish this patch if we agree on something.
> >
> > So if I understand this the proposal is to have something like -fzero-union-padding which is off by default.
> >  When it's OFF compiler will continue to do whatever it does now.
> >  When it's ON it will set zeroes into padding with or without -ftrivial-auto-var-init.
> >  Is this correct?
>
>
> In general, I believe so, yes. To be clear, it only sets zeros into union padding, not *all* padding. I do not have an opinion on whether we want it to be `-fzero-union-padding` as opposed to `-finit-union-padding` that honors the pattern from `-ftrivial-auto-init=pattern` and defaults to zero if no pattern is specified.


They whole point of the patch was to avoid breaking code by -ftrivial-auto-init=pattern  with "MyUnion my_union = {}".  So to fix that only `-fzero-union-padding` behavior helpful.
`-ftrivial-auto-init=pattern` as-is already inits union padding with patterns.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D68115/new/

https://reviews.llvm.org/D68115





More information about the cfe-commits mailing list