You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In this PR: #35606 I am
disabling the memory lifetime verifier from running on
allocations that are enum typed. The reason that I am doing this
is that currently in this verifier, we stop verifying if we find
a switch_enum_addr use. This creates a problem since no one has
gone through and changed the frontend/optimizer to understand
that it needs to insert destroy_addr on alloc_stack even if
dynamically we know that the enum has a trivial case or
non-payloaded case due to a switch_enum_addr. So if one then
performs the completely unrelated, valid optimization of
promoting the switch_enum_addr to a switch_enum (lets say using a
load_borrow), then this verifier will see a leaked value along
the non-payloaded path.
We should fully implement support for enums in this verifier and re-enable it![]( Memory Lifetime correctness is important)
The text was updated successfully, but these errors were encountered:
Additional Detail from JIRA
md5: 2436e5877a24365c91c8628c7bd24452
Issue Description:
In this PR: #35606 I am
disabling the memory lifetime verifier from running on
allocations that are enum typed. The reason that I am doing this
is that currently in this verifier, we stop verifying if we find
a switch_enum_addr use. This creates a problem since no one has
gone through and changed the frontend/optimizer to understand
that it needs to insert destroy_addr on alloc_stack even if
dynamically we know that the enum has a trivial case or
non-payloaded case due to a switch_enum_addr. So if one then
performs the completely unrelated, valid optimization of
promoting the switch_enum_addr to a switch_enum (lets say using a
load_borrow), then this verifier will see a leaked value along
the non-payloaded path.
We should fully implement support for enums in this verifier and re-enable it![]( Memory Lifetime correctness is important)
The text was updated successfully, but these errors were encountered: