)]}'
{
  "commit": "b744548871866544f5a6e92290d422f2edd39a51",
  "tree": "69d2f03a626b823a1b3252a2b91c918a105a806e",
  "parents": [
    "006d352744175de88ee0c071be367c3482c76cfa"
  ],
  "author": {
    "name": "Paweł Bylica",
    "email": "pawel@hepcolgum.band",
    "time": "Wed Apr 08 23:06:49 2026 +0200"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Apr 08 23:06:49 2026 +0200"
  },
  "message": "[Clang] Allow musttail in noexcept functions when callee is nounwind (#190945)\n\nnoexcept functions push an EHTerminateScope onto the cleanup stack. The\nmusttail codegen did not know how to skip this scope, causing a \"cannot\ncompile this tail call skipping over cleanups yet\" error even when both\ncaller and callee are noexcept.\n\nSkip the EHTerminateScope when the callee is nounwind (noexcept). The\ncallee\u0027s own noexcept handler prevents any exception from propagating,\nso the caller\u0027s terminate handler is unnecessary.\n\nFixes #53087.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b5f99606789fe36e92c7687f7c1047195950d79c",
      "old_mode": 33188,
      "old_path": "clang/include/clang/Basic/DiagnosticCommonKinds.td",
      "new_id": "bdbbaffe0a6e16c3bb7d2505b8c3f125578b7d71",
      "new_mode": 33188,
      "new_path": "clang/include/clang/Basic/DiagnosticCommonKinds.td"
    },
    {
      "type": "modify",
      "old_id": "b7b79e7051181206ab2a8737468c01cc5df0a3ea",
      "old_mode": 33188,
      "old_path": "clang/lib/CodeGen/CGCall.cpp",
      "new_id": "c0e2456891e9db7e5acb82761e113bc660a25019",
      "new_mode": 33188,
      "new_path": "clang/lib/CodeGen/CGCall.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "796bc908bd9543c256a62732131311fc170483bf",
      "new_mode": 33188,
      "new_path": "clang/test/CodeGenCXX/musttail-noexcept-error.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2e60ac6889a24f3eeaeb1a645f1628c5917df78e",
      "new_mode": 33188,
      "new_path": "clang/test/CodeGenCXX/musttail-noexcept.cpp"
    }
  ]
}
