{
  "$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`"
}