)]}'
{
  "commit": "21acfe2159ab7ed0315930dbbb7a1ef5232ed70d",
  "tree": "59b426e8c785c7625d5755e8e536ec0f15cb13ae",
  "parents": [
    "e3a12fbe48c7b217b485c9bff01978f61fa4ba0b"
  ],
  "author": {
    "name": "Evan Brown CA",
    "email": "ezb@google.com",
    "time": "Fri Oct 23 09:53:15 2026 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Fri Oct 23 09:54:03 2026 -0700"
  },
  "message": "Mark `absl::container_internal::DestroySlots` as `ABSL_ATTRIBUTE_NOINLINE`.\n\nFor tree-like types that recursively contain a `flat_hash_map` or `flat_hash_set` of themselves, ThinLTO importing and inlining of `Destruct\u003cfalse\u003e` and `DestroySlots` can trigger an exponential ($2^k$) mutually recursive inlining blowup in Clang/LLVM during LTO backend compilation because `DestroySlots` contains two indirect calls to `destroy_slot` (`cap \u003c\u003d 8` and `cap \u003e\u003d 16`) that devirtualize back into the recursive destructor chain, while the two-hop type-erased call chain (`Destruct\u003cfalse\u003e` -\u003e `DestroySlots`) causes LLVM\u0027s `InlineFunction` to drop `!inline_history` metadata.\n\nPiperOrigin-RevId: 1005674128\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "caf8219e2f629f879dd7ecf9263c1b65ba20dca9",
      "old_mode": 33188,
      "old_path": "absl/container/internal/raw_hash_set.h",
      "new_id": "c4ab73e09595e4bf6d73c6a067886cf93fe37f3b",
      "new_mode": 33188,
      "new_path": "absl/container/internal/raw_hash_set.h"
    }
  ]
}
