gccrs: Add builder for current-scope drop cleanup
GCC's Rust compiler adds a helper to build drop cleanup statements for the current scope.
GCC’s Rust compiler introduces a new function, CompileDrop::build_current_scope_drop_cleanup, to construct statement trees for drop calls within the current scope. This facilitates the subsequent placement of these cleanup statements into TRY_FINALLY_EXPR constructs, streamlining the process of ensuring resources are properly released.
In Details
The rustc_codegen_gcc backend introduces a helper function CompileDrop::build_current_scope_drop_cleanup to generate a statement tree representing all necessary Drop calls for variables currently in scope. This function simplifies the process of collecting and composing these cleanup actions, preparing them to be integrated into higher-level control flow structures like TRY_FINALLY_EXPR in a subsequent patch.
- Drop
- In Rust, a trait that can be implemented for a type to define custom logic that runs when a value of that type goes out of scope. This is primarily used for resource management.
- statement tree
- An intermediate representation where code constructs like expressions and statements are organized hierarchically, similar to an Abstract Syntax Tree (AST), used internally by the compiler.
- TRY_FINALLY_EXPR
- An expression that guarantees a 'finally' block is executed, regardless of whether the 'try' block completes normally or exits via an exception or other control flow transfer.