)]}'
{
  "commit": "73d2688300440c8af028eec865ee0dcd85e93025",
  "tree": "383d964ecb86f8cb84c8277c6310375fdfc426f2",
  "parents": [
    "3a80a7794c7405b95dfa1f1afa26b37adf817636"
  ],
  "author": {
    "name": "Alina Sbirlea",
    "email": "asbirlea@google.com",
    "time": "Thu Sep 17 13:15:12 2026 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Thu Sep 17 13:16:39 2026 -0700"
  },
  "message": "Prevent cross-module inlining of stack unwinder wrappers that adjust skip counts.\n\n`absl::DefaultStackUnwinder`, `CurrentStackTrace`, and `SavedStackTrace::CreateCurrent` increment `skip_count` assuming they occupy their own stack frame on the call stack, but were missing `ABSL_ATTRIBUTE_NOINLINE`. When LLVM commit `fc1afa6edce98a973ce2ce969c589da4f3aee975` enabled ThinLTO inlining of imported CFI jump table functions across translation units, these wrappers were inlined into their callers, causing stack unwinding to skip an extra caller frame.\n\nAdd `ABSL_ATTRIBUTE_NOINLINE` (and `ABSL_ATTRIBUTE_NO_TAIL_CALL` / `ABSL_BLOCK_TAIL_CALL_OPTIMIZATION()`) to ensure their stack frames are preserved when calculating `skip_count`.\n\nPiperOrigin-RevId: 983379727\nChange-Id: Ie6bdab705ebd1bf5c9acc1cc875e5ec535a84730\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9689337099d769974b99122228395cb6e923e733",
      "old_mode": 33188,
      "old_path": "absl/debugging/stacktrace.cc",
      "new_id": "6dc366ce65bf6d39b18ce2e4ac8157e68bb32e9c",
      "new_mode": 33188,
      "new_path": "absl/debugging/stacktrace.cc"
    }
  ]
}
