)]}'
{
  "commit": "c00735c1c30feaca55014413b7930cee1a2efdc0",
  "tree": "92ae380cc0307600df5d6afde27bd3dbbdd1e5a3",
  "parents": [
    "0230abe8e9aafac61accd23519a460f889ec6873",
    "4339216c765023bec646c3a7aba584d433c39f42"
  ],
  "author": {
    "name": "Jonathan Brouwer",
    "email": "jonathantbrouwer@gmail.com",
    "time": "Wed Aug 26 08:00:56 2026 +0200"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Aug 26 08:00:56 2026 +0200"
  },
  "message": "Rollup merge of #160183 - Darksonn:seh-imgrel, r\u003dMark-Simulacrum\n\npanic_unwind: Use global_asm! for IMGREL relocations\n\nRust consteval cannot construct 32-bit values that contain the offset between two symbols, but this is required for panic_unwind on some architectures because unwinding on Windows SEH uses image-base-relative pointers for the panic information (which makes them fit in 32-bit rather than 64-bit).\n\nCurrently, this is worked around by initializing these globals on panic with atomic stores. This works, but is undefined behavior as the panic runtime reads the values with non-atomic loads, which leads to a data race.\n\nInstead, utilize `global_asm!` to create the globals with `@IMGREL` relocations so that the linker constructs the relative pointers for us at link or load time.\n\nFor context: [#t-compiler \u003e relative pointers in windows SEH panic_unwind @ 💬](https://rust-lang.zulipchat.com/#narrow/channel/131828-t-compiler/topic/relative.20pointers.20in.20windows.20SEH.20panic_unwind/near/613200087)\n\nAI assistance was involved with writing the assembly code.\n",
  "tree_diff": []
}
