)]}'
{
  "commit": "0846622465403b082ce92a5f6af5487d63b7b758",
  "tree": "97d479eb46e11e84fc7f5949cdd8780a0f88e61a",
  "parents": [
    "3e15f828f67b24ae2b5258eceec798c9a3ce9bde",
    "90fe8cc66f63070eeafed09ec683e95d820316c0"
  ],
  "author": {
    "name": "Guillaume Gomez",
    "email": "contact@guillaume-gomez.fr",
    "time": "Wed May 27 20:45:14 2026 +0200"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed May 27 20:45:14 2026 +0200"
  },
  "message": "Rollup merge of #156973 - Darksonn:unwind-tables-module, r\u003dnnethercote\n\nAdd uwtable annotation to modules when required\n\nWhen unwind tables are enabled with `-Cforce-unwind-tables\u003dy`, Rust will annotate all functions with the `uwtable` annotation. However, this annotation is missing on modules, which leads to incorrect unwind tables being generated by LLVM for constructors (such as `asan.module_ctor`).\n\nThis was discovered because it leads to a crash in Linux when KASAN and dynamic shadow call stack are both enabled. In this scenario, the kernel uses the unwind tables to locate the `paciasp` and `autiasp` instructions in each function and patches the machine code at boot to use the shadow call stack instructions instead. However, LLVM\u0027s AArch64PointerAuth pass emits DWARF info for `paciasp` whenever `-g` is passed, but only emits DWARF info for `autiasp` when the `uwtable` attribute is present. Since the `uwtable` annotation is missing for modules, the relevant directives are generated for only the `autiasp` instruction in `asan.module_ctor`, and not for the `paciasp` instruction. This causes the kernel\u0027s dynamic SCS logic to patch the prolouge of `asan.module_ctor`, but not the epilogue. This leads to a crash as the shadow call stack becomes unbalanced.\n\nThe fact that LLVM doesn\u0027t use the same condition for whether to emit DWARF information for both instructions may be a separate bug in LLVM.\n\nRelevant issue: https://github.com/llvm/llvm-project/issues/188234\n\nAI assistance was used to determine the root cause of this crash from the observed symptoms, and to write the tests. Also thanks to @samitolvanen and @maurer for debugging this issue.\n\nSimilar to this previous PR of mine: rust-lang/rust#130824\n",
  "tree_diff": []
}
