Files
David Benjamin 5a81482816 Remove NewZeroed entirely
NewZeroed was never actually necessary. We were performing
value-initialization, which means that, if the default constructor were
not user-provided, it does zero-initialization anyway.

If the default constructor is user-provided, this changes and the
user-provided constructor is responsible for initializing every field.
NewZeroed looks like it saved this case, but it does not according to
GCC. GCC believes that, for all types, a memset preceding a placement
new can be deleted.

Thus we can simply replace NewZeroed with New. We need to be very
careful that, when we introduce a constructor to a type, we initialize
the fields explicitly. This was always true in C++.

Bug: 491512320
Change-Id: I8f7cba6afaffeb8baf5f1190c2f7590bfd459b0a
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/90667
Auto-Submit: David Benjamin <davidben@google.com>
Reviewed-by: Rudolf Polzer <rpolzer@google.com>
Commit-Queue: Rudolf Polzer <rpolzer@google.com>
2026-03-12 00:04:00 -07:00
..
2026-03-12 00:04:00 -07:00