)]}'
{
  "commit": "9a1dfd2dc5c42a2ee84b4606aa08cdadf8c0ee87",
  "tree": "2ad671fb45e37d5dd8ffaa3bef8cb767630c2777",
  "parents": [
    "f97769a2b7bc5a6b3d8f7140613cf26352f2b518",
    "8341f4274d8febf7404d3a2bffc74051331aa044"
  ],
  "author": {
    "name": "bors",
    "email": "bors@rust-lang.org",
    "time": "Fri Apr 30 02:56:19 2021 +0000"
  },
  "committer": {
    "name": "bors",
    "email": "bors@rust-lang.org",
    "time": "Fri Apr 30 02:56:19 2021 +0000"
  },
  "message": "Auto merge of #84722 - pnkfelix:address-c-unwind-via-backport-of-84158, r\u003dMark-Simulacrum\n\nbackport: move new c abi abort behavior behind feature gate\n\nThis is a backport of PR #84158 to the beta branch.\n\nThe original T-compiler plan was to revert PR #76570 in its entirety, as was attempted in PR #84672. But the revert did not go smoothly (details below).\n\nTherefore, we are backporting PR #84158 instead, which was our established backup plan if a revert did not go smoothly.\n\nI have manually confirmed that this backport fixes the luajit issue described on issue #83541\n\n\u003cdetails\u003e\n\n\u003csummary\u003eClick for details as to why revert of PR #76570 did not go smoothly.\u003c/summary\u003e\n\nIt turns out that Miri had been subsequently updated to reflect changes to `rustc_target` that landed in PR #76570. This meant that the attempt to land PR #84672 broke Miri builds.\n\nNormally we allow tools to break when landing PR\u0027s (and just expect follow-up PR\u0027s to fix the tools), but we don\u0027t allow it for tools in the run-up to a release.\n\n(We shouldn\u0027t be using that uniform policy for all tools. Miri should be allow to break during the week before a release; but currently we cannot express that, due to issue #74709.)\n\nTherefore, its a lot of pain to try to revert PR #76570. And we\u0027re going with the backup plan.\n\n\u003c/details\u003e\n\nOriginal commit message follows:\n\n----\n\n *Background*\n\nIn #76570, new ABI strings including `C-unwind` were introduced. Their behavior is specified in RFC 2945 \u003csup\u003e[1]\u003c/sup\u003e.\n\nHowever, it was reported in the #ffi-unwind stream of the Rust community Zulip that this had altered the way that `extern \"C\"` functions behaved even when the `c_unwind` feature gate was not active. \u003csup\u003e[2]\u003c/sup\u003e\n\n *Overview*\n\n This makes a small patch to `rustc_mir_build::build::should_abort_on_panic`, so that the same  behavior from before is in place when the `c_unwind` gate is not active.\n\n`rustc_middle::ty::layout::fn_can_unwind` is not touched, as the visible behavior should not differ before/after #76570. \u003csup\u003e[3]\u003c/sup\u003e\n\n ### Footnotes\n\n 1.: https://github.com/rust-lang/rfcs/blob/master/text/2945-c-unwind-abi.md\n 2.: https://rust-lang.zulipchat.com/#narrow/stream/210922-project-ffi-unwind/topic/Is.20unwinding.20through.20extern.20C.20UB.3F/near/230112325\n 3.: https://github.com/rust-lang/rust/pull/76570/files#diff-b0320c2b8868f325d83c027fc5d71732636e9763551e35895488f30fe057c6e9L2599-R2617\n\n [1]: https://github.com/rust-lang/rfcs/blob/master/text/2945-c-unwind-abi.md\n [2]: https://rust-lang.zulipchat.com/#narrow/stream/210922-project-ffi-unwind/topic/Is.20unwinding.20through.20extern.20C.20UB.3F/near/230112325\n [3]: https://github.com/rust-lang/rust/pull/76570/files#diff-b0320c2b8868f325d83c027fc5d71732636e9763551e35895488f30fe057c6e9L2599-R2617\n",
  "tree_diff": []
}
