HomePhabricator

C++ DR2026: static storage duration variables are not zeroed before constant…

Authored by rsmith on Thu, Feb 6, 4:19 PM.

Description

C++ DR2026: static storage duration variables are not zeroed before constant initialization.

Removing this zeroing regressed our code generation in a few cases, also
fixed here. We now compute whether a variable has constant destruction
even if it doesn't have a constant initializer, by trying to destroy a
default-initialized value, and skip emitting a trivial default
constructor for a variable even if it has non-trivial (but perhaps
constant) destruction.

Details

Committed
rsmithThu, Feb 6, 4:37 PM
Parents
rG3e5d837cdabc: Revert "[AArch64][GlobalISel] Emit TBNZ with G_BRCOND where the condition is…
Branches
Unknown
Tags
Unknown