{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreiglttxxhj55u7doqzmca6jf5rjou3dtz7yqel5d2mqnn2unhgoah4",
"uri": "at://did:plc:ivbknywyskln22er3nkssdhl/app.bsky.feed.post/3mjiz2kvgvwm2"
},
"path": "/t/code-bloat-caused-by-lack-of-nounwind-attr-on-drop-in-place/24173#post_2",
"publishedAt": "2026-04-15T02:11:46.000Z",
"site": "https://internals.rust-lang.org",
"textContent": "I am surprised that LLVM doesn't seem to deduce \"nounwind\" itself. Maybe it's because `drop_slow` has external linkage and gets unwind tables generated, so LLVM can't trust it won't be replaced by the linker with a different function that unwinds? but I don't see LTO making a difference.\n\nIt should be beneficial to have a MIR opt pass that marks functions as \"nounwind\" if they don't call any potentially-unwinding functions themselves.",
"title": "Code bloat caused by lack of nounwind attr on `drop_in_place`"
}