Landing: 80c98ea9eea1

Project / Subsystem

gcc / gccrs

Date

2026-07-07

Author

Lishin

Commit

80c98ea9eea1ad1ab3381af0f8f900c2c49bcc5b

Source

github

Perf win

No

Breaking

No

All attributes

project
gcc
subsystem
gccrs
patch_id
—
commit_hash
80c98ea9eea1ad1ab3381af0f8f900c2c49bcc5b
source_type
github
headline
gccrs: Use EH_ELSE_EXPR for block drop cleanup
tldr
GCC's Rust compiler uses EH_ELSE_EXPR for block scope drop cleanup in TRY_FINALLY_EXPR.
author
Lishin
outcome
committed
performance_win
false
breaking_change
false
series_id
—
series_parts
[]
tags
  • • gccrs
  • • exception handling
  • • cleanup
discussion_id_link
—
bugzilla_pr
—
date
2026-07-07T00:00:00.000Z

GCC’s Rust compiler now uses EH_ELSE_EXPR to manage block-scope drop cleanups within TRY_FINALLY_EXPR. This change ensures that Drop implementations are correctly invoked during normal control flow exits, even before full stack unwinding support is integrated into the compiler. The normal cleanup path now uses the Drop cleanup, while the exceptional path uses an empty statement.