)]}'
{
  "commit": "4c6aa8fd8abe7e4f072d067f43dee9a30fcd2f2f",
  "tree": "74e189039e30df04c1a2be10c1b3c7bb98fe93c8",
  "parents": [
    "126748840d3524d2ef35b72352a0bcf46930aed2"
  ],
  "author": {
    "name": "Jan Korous",
    "email": "jkorous@apple.com",
    "time": "Wed Dec 10 09:34:40 2025 -0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Dec 10 09:34:40 2025 -0800"
  },
  "message": "[clang][ssaf] Introduce entity abstraction for SSAF (#169131)\n\nAdd core abstractions for identifying program entities across\ncompilation and link unit boundaries in the Scalable Static Analysis\nFramework (SSAF).\n\nIntroduces three key components:\n- BuildNamespace: Represents build artifacts (compilation units, link\nunits)\n- EntityName: Globally unique entity identifiers across compilation\nboundaries\n- AST mapping: Functions to map Clang AST declarations to EntityNames\n\nEntity identification uses Unified Symbol Resolution (USR) as the\nunderlying mechanism, with extensions for sub-entities (parameters,\nreturn values) via suffixes. The abstraction allows whole-program\nanalysis by providing stable identifiers that persist across separately\ncompiled translation units.",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0e5fc204c5f1b2fc82ce611e140afed19f001748",
      "new_mode": 33188,
      "new_path": "clang/include/clang/Analysis/Scalable/ASTEntityMapping.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5ca26df1e9252ebb4d7ea0b744d22fc0573e9c43",
      "new_mode": 33188,
      "new_path": "clang/include/clang/Analysis/Scalable/Model/BuildNamespace.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "23890ab7bea430a6d6326d753457c32ffeee7535",
      "new_mode": 33188,
      "new_path": "clang/include/clang/Analysis/Scalable/Model/EntityName.h"
    },
    {
      "type": "modify",
      "old_id": "1dbd4153d856f637d673446f934271251650ab58",
      "old_mode": 33188,
      "old_path": "clang/lib/Analysis/CMakeLists.txt",
      "new_id": "99a2ec684e149b3a42558f5e0339d203743c305e",
      "new_mode": 33188,
      "new_path": "clang/lib/Analysis/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0a25e75e016314bce7c88e45c07d4f63b5a10012",
      "new_mode": 33188,
      "new_path": "clang/lib/Analysis/Scalable/ASTEntityMapping.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ea4693f102cb25216814a66b5b25889aa2cac005",
      "new_mode": 33188,
      "new_path": "clang/lib/Analysis/Scalable/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "040cfe9926be2bb19ca4dd75299ac57b007b078b",
      "new_mode": 33188,
      "new_path": "clang/lib/Analysis/Scalable/Model/BuildNamespace.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7e66476d6ce0e2482c6c563d2ca4fca7f23972bd",
      "new_mode": 33188,
      "new_path": "clang/lib/Analysis/Scalable/Model/EntityName.cpp"
    },
    {
      "type": "modify",
      "old_id": "e0acf436b37c73ebae29d26af829252a54ba0272",
      "old_mode": 33188,
      "old_path": "clang/unittests/Analysis/CMakeLists.txt",
      "new_id": "97e768b11db6947de1c4e6be15b9e22598a24213",
      "new_mode": 33188,
      "new_path": "clang/unittests/Analysis/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "dd41864da3c5514d84b8193feef971c47c53df0f",
      "new_mode": 33188,
      "new_path": "clang/unittests/Analysis/Scalable/ASTEntityMappingTest.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "80d8a40738be3eab45bc95309ad8bcc3e0bb1072",
      "new_mode": 33188,
      "new_path": "clang/unittests/Analysis/Scalable/BuildNamespaceTest.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e545e314b49acc0653f3f9b48fbbcde2ee12c9c9",
      "new_mode": 33188,
      "new_path": "clang/unittests/Analysis/Scalable/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "be0c2a9d52132a8391297fd288e84fec7192026d",
      "new_mode": 33188,
      "new_path": "clang/unittests/Analysis/Scalable/EntityNameTest.cpp"
    }
  ]
}
