)]}'
{
  "commit": "89556131bf9d48af3c5c9fbb9a3322e706da89a3",
  "tree": "8956d33c52a9d5d962fd00be63f35d33cf31da02",
  "parents": [
    "313545f85af72f954820e54f4110cda591a6cf7b"
  ],
  "author": {
    "name": "Kyle Farnung",
    "email": "kfarnung@microsoft.com",
    "time": "Wed Mar 18 15:48:51 2026 -0700"
  },
  "committer": {
    "name": "swiftshader-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "swiftshader-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Thu Mar 19 11:45:31 2026 -0700"
  },
  "message": "Backport macOS ARM64 ASAN dynamic shadow offset from LLVM 12+\n\nLLVM 10\u0027s AddressSanitizer pass uses the Linux ARM64 static shadow\noffset (0x1000000000) for ALL ARM64 targets, including macOS ARM64.\nHowever, macOS ARM64 requires a dynamic shadow offset because the ASAN\nruntime maps shadow memory at a different address (0x7000020000).\n\nThis mismatch causes JIT-compiled shader code to compute wrong shadow\naddresses, hitting protected memory and crashing with SIGBUS\n(KERN_PROTECTION_FAILURE).\n\nBackport the fix from LLVM 12+ which adds an IsMacOS \u0026\u0026 IsAArch64 check\nto use kDynamicShadowSentinel (dynamic shadow offset) on macOS ARM64,\nmatching what the ASAN runtime expects.\n\nLLVM change:\nhttps://github.com/llvm/llvm-project/commit/176a6e7abe33d58a65ce9cfac15fe320962e7b6e\n\nBug: 493957482\nChange-Id: I4d48bc41f89728d508d1937a1d767ea5a1576e6b\nReviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/77208\nReviewed-by: Shahbaz Youssefi \u003csyoussefi@google.com\u003e\nReviewed-by: Geoff Lang \u003cgeofflang@google.com\u003e\nCommit-Queue: Shahbaz Youssefi \u003csyoussefi@google.com\u003e\nTested-by: Shahbaz Youssefi \u003csyoussefi@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "79c119489a655fff60ecbfdcb29c508d07de2011",
      "old_mode": 33188,
      "old_path": "third_party/llvm-10.0/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp",
      "new_id": "8199d5d19b589b55f5a8fbaed01afe004a74a82d",
      "new_mode": 33188,
      "new_path": "third_party/llvm-10.0/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp"
    }
  ]
}
