)]}'
{
  "commit": "203a0ac652d4b62e4bbcb82c9643f7a6a501e1de",
  "tree": "d06743e47b8f7db86016be919e5304cf0a871c4f",
  "parents": [
    "13d50c24a083a04355b37d45aae6b4ba9fc294af"
  ],
  "author": {
    "name": "Utkarsh Saxena",
    "email": "usx@google.com",
    "time": "Fri Sep 05 22:17:00 2025 +0200"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Sep 05 22:17:00 2025 +0200"
  },
  "message": "[LifetimeSafety] Mark all DeclRefExpr as usages of the corresp. origin (#154316)\n\nInstead of identifying various forms of pointer usage (like dereferencing, member access, or function calls) individually, this new approach simplifies the logic by treating all `DeclRefExpr`s as uses of their underlying origin\n\nWhen a `DeclRefExpr` appears on the left-hand side of an assignment, the corresponding `UseFact` is marked as a \"write\" operation. These write operations are then exempted from use-after-free checks.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3c9ac9c48b2e511f71cebfc68dd17361f3c2930c",
      "old_mode": 33188,
      "old_path": "clang/lib/Analysis/LifetimeSafety.cpp",
      "new_id": "dbbf7f3cc14b1968bd7b60b934894e6aa56e14be",
      "new_mode": 33188,
      "new_path": "clang/lib/Analysis/LifetimeSafety.cpp"
    },
    {
      "type": "modify",
      "old_id": "bc7e0127e5d4cf86523d8ee15c6a0d298213fb84",
      "old_mode": 33188,
      "old_path": "clang/test/Sema/warn-lifetime-safety-dataflow.cpp",
      "new_id": "11437d024b6939f287524134bde08ee6b510c094",
      "new_mode": 33188,
      "new_path": "clang/test/Sema/warn-lifetime-safety-dataflow.cpp"
    }
  ]
}
