)]}'
{
  "commit": "0975c09c671aca48c25b1f5952a675931ae93702",
  "tree": "c0c7f5d864dc3f3b20e3b10b04c698c772028ec1",
  "parents": [
    "de1af6b7271c6f4fc67848a849cf8fa6000d2b97"
  ],
  "author": {
    "name": "Oliver Hunt",
    "email": "oliver@apple.com",
    "time": "Wed Apr 23 20:36:20 2025 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Apr 24 05:36:20 2025 +0200"
  },
  "message": "[clang][p2719] Module deserialization does not restore allocator flags (#137102)\n\nWhen serializing and deserializing a FunctionDecl we don\u0027t recover\nwhether or not the decl was a type aware allocator or destroying delete,\nbecause in the final PR that information was placed in a side table in\nASTContext.\n\nIn principle it should be possible to re-do the semantic checks to\ndetermine what these flags should be when deserializing, but it seems\nlike the most robust path is simply recording the flags directly in the\nserialized AST.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5545cbc8d608c03ba270e0a63baf928faad8d657",
      "old_mode": 33188,
      "old_path": "clang/lib/Serialization/ASTReaderDecl.cpp",
      "new_id": "0f54aa5c5e062e72033ce65863425a734c6244ca",
      "new_mode": 33188,
      "new_path": "clang/lib/Serialization/ASTReaderDecl.cpp"
    },
    {
      "type": "modify",
      "old_id": "3a7a23481ea981b23f35b9550e74259fdb810289",
      "old_mode": 33188,
      "old_path": "clang/lib/Serialization/ASTWriterDecl.cpp",
      "new_id": "d1f92cea4dfeae95f8cd32c0a3d9871b79feb85c",
      "new_mode": 33188,
      "new_path": "clang/lib/Serialization/ASTWriterDecl.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "337aff5821e7fd68999c04bf86fddcc7702f963a",
      "new_mode": 33188,
      "new_path": "clang/test/Modules/Inputs/PR137102/module.modulemap"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f96a9ea0c8a41edd2ad558f99557208f273b9bf3",
      "new_mode": 33188,
      "new_path": "clang/test/Modules/Inputs/PR137102/type_aware_destroying_new_delete.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e88f8a87911479a20126fd4d8da92e8a3bdbf25b",
      "new_mode": 33188,
      "new_path": "clang/test/Modules/type-aware-destroying-new-and-delete-modules.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "42d609c0f5c26ae11d245f23e7e4e65fd405debc",
      "new_mode": 33188,
      "new_path": "clang/test/PCH/Inputs/type_aware_destroying_new_delete.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d8f7f5dd50c788f5157cb36e86ee62475dd8d27e",
      "new_mode": 33188,
      "new_path": "clang/test/PCH/type-aware-destroying-new-and-delete-pch.cpp"
    }
  ]
}
