)]}'
{
  "commit": "9b1f905b483a2b42e4681bbef42b2641f8ccf5ad",
  "tree": "bdd4b29db08e95dc264b850e636318ce7524f561",
  "parents": [
    "cb1e91c18dd20f6b2d1c38ce93befab87f77ce0f"
  ],
  "author": {
    "name": "Matheus Izvekov",
    "email": "mizvekov@gmail.com",
    "time": "Thu Mar 20 10:30:24 2025 -0300"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Mar 20 10:30:24 2025 -0300"
  },
  "message": "[clang] improve class type sugar preservation in pointers to members (#130537)\n\nThis changes the MemberPointerType representation to use a\nNestedNameSpecifier instead of a Type to represent the class.\n\nSince the qualifiers are always parsed as nested names, there was an\nimpedance mismatch when converting these back and forth into types, and\nthis led to issues in preserving sugar.\n\nThe nested names are indeed a better match for these, as the differences\nwhich a QualType can represent cannot be expressed syntactically, and it\nalso represents the use case more exactly, being either dependent or\nreferring to a CXXRecord, unqualified.\n\nThis patch also makes the MemberPointerType able to represent sugar for\na {up/downcast}cast conversion of the base class, although for now the\nunderlying type is canonical, as preserving the sugar up to that point\nrequires further work.\n\nAs usual, includes a few drive-by fixes in order to make use of the\nimprovements, and removing some duplications, for example\nCheckBaseClassAccess is deduplicated from across SemaAccess and\nSemaCast.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "108717e151b5778d53c48cbd8baa22a8eafa3976",
      "old_mode": 33188,
      "old_path": "clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.cpp",
      "new_id": "a6b00be75abf85a181353e04f032982113705faa",
      "new_mode": 33188,
      "new_path": "clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.cpp"
    },
    {
      "type": "modify",
      "old_id": "b66cc8512fad6c0a11d4a3581238ab8656079c39",
      "old_mode": 33188,
      "old_path": "clang-tools-extra/clang-tidy/utils/ExceptionAnalyzer.cpp",
      "new_id": "bc49fa856bafcf63640ec34a9e7bd101f1979f03",
      "new_mode": 33188,
      "new_path": "clang-tools-extra/clang-tidy/utils/ExceptionAnalyzer.cpp"
    },
    {
      "type": "modify",
      "old_id": "fc54f89f4941e16c399557db12e16cb8c383679f",
      "old_mode": 33188,
      "old_path": "clang-tools-extra/clangd/unittests/FindTargetTests.cpp",
      "new_id": "602f61d9ecb41f3562b6cd06654f5fec0e75d8cd",
      "new_mode": 33188,
      "new_path": "clang-tools-extra/clangd/unittests/FindTargetTests.cpp"
    },
    {
      "type": "modify",
      "old_id": "88862f766119134074eff8335d45fae0f388b0d0",
      "old_mode": 33188,
      "old_path": "clang/docs/ReleaseNotes.rst",
      "new_id": "97f6ea90d47058de0dd25eeb9970842fe21ce863",
      "new_mode": 33188,
      "new_path": "clang/docs/ReleaseNotes.rst"
    },
    {
      "type": "modify",
      "old_id": "f9a12260a6590165cd9111a8df4c169f2b9ad246",
      "old_mode": 33188,
      "old_path": "clang/include/clang/AST/ASTContext.h",
      "new_id": "af8c49e99a7ce8ab0012a5dc54a98cd73c9bcc28",
      "new_mode": 33188,
      "new_path": "clang/include/clang/AST/ASTContext.h"
    },
    {
      "type": "modify",
      "old_id": "3bc0bdff2bdd12f069e3f010970022129b5ad822",
      "old_mode": 33188,
      "old_path": "clang/include/clang/AST/ASTNodeTraverser.h",
      "new_id": "f557555e96e59eb229444f7806f9f121ae47c3b1",
      "new_mode": 33188,
      "new_path": "clang/include/clang/AST/ASTNodeTraverser.h"
    },
    {
      "type": "modify",
      "old_id": "50d1ba1b8f63f55245e4eca7a69189bc4b80a732",
      "old_mode": 33188,
      "old_path": "clang/include/clang/AST/CanonicalType.h",
      "new_id": "35db68971e02931304702964e13a9183534f3eb4",
      "new_mode": 33188,
      "new_path": "clang/include/clang/AST/CanonicalType.h"
    },
    {
      "type": "modify",
      "old_id": "87a6c22b35ee8eb52a5c8ac75e70a10ddbd870e3",
      "old_mode": 33188,
      "old_path": "clang/include/clang/AST/RecursiveASTVisitor.h",
      "new_id": "e93d1d8eab56fdd99efbf96264f24c56c7e9b80e",
      "new_mode": 33188,
      "new_path": "clang/include/clang/AST/RecursiveASTVisitor.h"
    },
    {
      "type": "modify",
      "old_id": "3c942f2ed74863cbef53a82e886303f7bc93cfbb",
      "old_mode": 33188,
      "old_path": "clang/include/clang/AST/Type.h",
      "new_id": "65756203f20734eff8131de35c0e1cf981c4ca4a",
      "new_mode": 33188,
      "new_path": "clang/include/clang/AST/Type.h"
    },
    {
      "type": "modify",
      "old_id": "a55a38335ef6a63aab88cdeb3f880c34401a7a4e",
      "old_mode": 33188,
      "old_path": "clang/include/clang/AST/TypeLoc.h",
      "new_id": "17ce09fa5da4f91a6be6cc2ba5face5fd2870da6",
      "new_mode": 33188,
      "new_path": "clang/include/clang/AST/TypeLoc.h"
    },
    {
      "type": "modify",
      "old_id": "6f1a76bd18fb500c79c6ee55545f639494ccca43",
      "old_mode": 33188,
      "old_path": "clang/include/clang/AST/TypeProperties.td",
      "new_id": "27f71bf5cc62f7fee82066143678d8b11c373284",
      "new_mode": 33188,
      "new_path": "clang/include/clang/AST/TypeProperties.td"
    },
    {
      "type": "modify",
      "old_id": "1536a3b8c920a92f01a9bf58ff5a25321bc7a32e",
      "old_mode": 33188,
      "old_path": "clang/include/clang/Basic/DiagnosticSemaKinds.td",
      "new_id": "4cb8f3d759817fe6fa806fbc53986b2aeeb99557",
      "new_mode": 33188,
      "new_path": "clang/include/clang/Basic/DiagnosticSemaKinds.td"
    },
    {
      "type": "modify",
      "old_id": "9724f0def743aa55da4a5de26e3562e9acda206c",
      "old_mode": 33188,
      "old_path": "clang/include/clang/Sema/Sema.h",
      "new_id": "e215f07e2bf0afd2816bcd7b8076a21848cb5473",
      "new_mode": 33188,
      "new_path": "clang/include/clang/Sema/Sema.h"
    },
    {
      "type": "modify",
      "old_id": "68a02f3bbe1eccfaf212d1530d49399d31848c48",
      "old_mode": 33188,
      "old_path": "clang/lib/AST/ASTContext.cpp",
      "new_id": "de868ac821745fb5020f5d10df3fef9032167e27",
      "new_mode": 33188,
      "new_path": "clang/lib/AST/ASTContext.cpp"
    },
    {
      "type": "modify",
      "old_id": "514887a4dccc1e364a49ad0af54c448f68f5582c",
      "old_mode": 33188,
      "old_path": "clang/lib/AST/ASTImporter.cpp",
      "new_id": "1db30b3f3f76f648e2f2ca4b1c5cc2da74065ced",
      "new_mode": 33188,
      "new_path": "clang/lib/AST/ASTImporter.cpp"
    },
    {
      "type": "modify",
      "old_id": "b74f67f0a9fed9f935a6f126874412d3af0fb3d0",
      "old_mode": 33188,
      "old_path": "clang/lib/AST/ASTStructuralEquivalence.cpp",
      "new_id": "2c2c8fd677500c8545fc5387b35338fd17ea2eeb",
      "new_mode": 33188,
      "new_path": "clang/lib/AST/ASTStructuralEquivalence.cpp"
    },
    {
      "type": "modify",
      "old_id": "c79f3e2999583064df8d1a6fc0f0847641cedcd8",
      "old_mode": 33188,
      "old_path": "clang/lib/AST/ItaniumMangle.cpp",
      "new_id": "917402544d4f66dee40a62e08d2ccfce5de7b0e1",
      "new_mode": 33188,
      "new_path": "clang/lib/AST/ItaniumMangle.cpp"
    },
    {
      "type": "modify",
      "old_id": "593f2fcc0159cc7bd7f55de31c2b849d89746ddd",
      "old_mode": 33188,
      "old_path": "clang/lib/AST/NestedNameSpecifier.cpp",
      "new_id": "a256a87695afca7d062e6137509c3b7363726355",
      "new_mode": 33188,
      "new_path": "clang/lib/AST/NestedNameSpecifier.cpp"
    },
    {
      "type": "modify",
      "old_id": "7c5c287e6c15ba9482c28a7b725efabcbb34ade2",
      "old_mode": 33188,
      "old_path": "clang/lib/AST/ODRHash.cpp",
      "new_id": "4c428cce32475d06f863f585bb7603b058c5aa0e",
      "new_mode": 33188,
      "new_path": "clang/lib/AST/ODRHash.cpp"
    },
    {
      "type": "modify",
      "old_id": "e4d2a6937f6eb6e850febe2ffc5d8c2fe661f763",
      "old_mode": 33188,
      "old_path": "clang/lib/AST/QualTypeNames.cpp",
      "new_id": "3c814b777f8ab81378d091be37287c1e3e5a593e",
      "new_mode": 33188,
      "new_path": "clang/lib/AST/QualTypeNames.cpp"
    },
    {
      "type": "modify",
      "old_id": "33e7008cc477686f769cea87305f489ff1eebf52",
      "old_mode": 33188,
      "old_path": "clang/lib/AST/Type.cpp",
      "new_id": "dee1cb8e2d82ec96535c0b13be477ad543a2e04c",
      "new_mode": 33188,
      "new_path": "clang/lib/AST/Type.cpp"
    },
    {
      "type": "modify",
      "old_id": "dfd1959bbdcb088bb656696dec1c3a669134d159",
      "old_mode": 33188,
      "old_path": "clang/lib/AST/TypePrinter.cpp",
      "new_id": "3982ca3b50604c7a7edcef0448e2e7fef580cec0",
      "new_mode": 33188,
      "new_path": "clang/lib/AST/TypePrinter.cpp"
    },
    {
      "type": "modify",
      "old_id": "2777c78d6459dc49c447dd78479574a7fa1c1d6b",
      "old_mode": 33188,
      "old_path": "clang/lib/CodeGen/CGCXXABI.cpp",
      "new_id": "fd35f2adfa2d248f512d8f6b88be529a702162a9",
      "new_mode": 33188,
      "new_path": "clang/lib/CodeGen/CGCXXABI.cpp"
    },
    {
      "type": "modify",
      "old_id": "0c63b9d6bb7e75946977fb5a516d0d450ad4e1f0",
      "old_mode": 33188,
      "old_path": "clang/lib/CodeGen/CGPointerAuth.cpp",
      "new_id": "4b032306ead723092565327d64026796a680db4d",
      "new_mode": 33188,
      "new_path": "clang/lib/CodeGen/CGPointerAuth.cpp"
    },
    {
      "type": "modify",
      "old_id": "c9108938bca50561e1da9cd3cb9e807ff13c4f9e",
      "old_mode": 33188,
      "old_path": "clang/lib/CodeGen/CGVTables.cpp",
      "new_id": "c7b36957b2e57d5ee6e1db4f0c79880394687d99",
      "new_mode": 33188,
      "new_path": "clang/lib/CodeGen/CGVTables.cpp"
    },
    {
      "type": "modify",
      "old_id": "f88d6202ad381f5d3ec27c2c671d2fed85a3626a",
      "old_mode": 33188,
      "old_path": "clang/lib/CodeGen/CodeGenModule.cpp",
      "new_id": "e26c6c3da30912365f96a8f631f06d0f0692739e",
      "new_mode": 33188,
      "new_path": "clang/lib/CodeGen/CodeGenModule.cpp"
    },
    {
      "type": "modify",
      "old_id": "a5633f6349ffa37469589e069816664bf4d79e6e",
      "old_mode": 33188,
      "old_path": "clang/lib/CodeGen/ItaniumCXXABI.cpp",
      "new_id": "77e995b4c933a24863fef6a913293e62aa8a14e3",
      "new_mode": 33188,
      "new_path": "clang/lib/CodeGen/ItaniumCXXABI.cpp"
    },
    {
      "type": "modify",
      "old_id": "5cb742a92a9bd826a70904015538db300c90fe72",
      "old_mode": 33188,
      "old_path": "clang/lib/CodeGen/MicrosoftCXXABI.cpp",
      "new_id": "40371d99e23e180aea6d054f1e2843a4d1959ca0",
      "new_mode": 33188,
      "new_path": "clang/lib/CodeGen/MicrosoftCXXABI.cpp"
    },
    {
      "type": "modify",
      "old_id": "4ba46a957fa0eea0b1ef3cb7c6dbed77f8ec0c7b",
      "old_mode": 33188,
      "old_path": "clang/lib/Sema/SemaAccess.cpp",
      "new_id": "b77cbdb234f1f70123da3a325cc7c67db09b7642",
      "new_mode": 33188,
      "new_path": "clang/lib/Sema/SemaAccess.cpp"
    },
    {
      "type": "modify",
      "old_id": "718f6bec34910a86a331a5054d5b48c7ddcc6a83",
      "old_mode": 33188,
      "old_path": "clang/lib/Sema/SemaCast.cpp",
      "new_id": "a5dbc16eaea0b6c7cf9798f47622d7bc2d1c900a",
      "new_mode": 33188,
      "new_path": "clang/lib/Sema/SemaCast.cpp"
    },
    {
      "type": "modify",
      "old_id": "42f0acb62ee5d4c1ba860943c72027a72c2c3bbd",
      "old_mode": 33188,
      "old_path": "clang/lib/Sema/SemaExpr.cpp",
      "new_id": "16f0b6d18c2fe8e789c1db7f82260985e787e950",
      "new_mode": 33188,
      "new_path": "clang/lib/Sema/SemaExpr.cpp"
    },
    {
      "type": "modify",
      "old_id": "f085facf7ff55679763c35e79bc433eadebe8c0d",
      "old_mode": 33188,
      "old_path": "clang/lib/Sema/SemaExprCXX.cpp",
      "new_id": "90a4a5a018212bc9f8a8c0d03955e9ed33a0a489",
      "new_mode": 33188,
      "new_path": "clang/lib/Sema/SemaExprCXX.cpp"
    },
    {
      "type": "modify",
      "old_id": "890de834533a45acf6f3b483b8a184a241d7a547",
      "old_mode": 33188,
      "old_path": "clang/lib/Sema/SemaOpenMP.cpp",
      "new_id": "1c771b097795d30eb3b1f5a27ed590f7bea5cb26",
      "new_mode": 33188,
      "new_path": "clang/lib/Sema/SemaOpenMP.cpp"
    },
    {
      "type": "modify",
      "old_id": "161c0daa2f5102038882f4c5b7e4fc4dbc942bb1",
      "old_mode": 33188,
      "old_path": "clang/lib/Sema/SemaOverload.cpp",
      "new_id": "670c27f7bdf0972d3b1aa8287ade191abcf7523e",
      "new_mode": 33188,
      "new_path": "clang/lib/Sema/SemaOverload.cpp"
    },
    {
      "type": "modify",
      "old_id": "c3c993d51b79d0633dae087546eeaf46509dda85",
      "old_mode": 33188,
      "old_path": "clang/lib/Sema/SemaTemplate.cpp",
      "new_id": "45fb9d0f03f34d3f3282cb61ba1bac6664ea4078",
      "new_mode": 33188,
      "new_path": "clang/lib/Sema/SemaTemplate.cpp"
    },
    {
      "type": "modify",
      "old_id": "e6ec4a7178e8132cc361133098003b43799c3936",
      "old_mode": 33188,
      "old_path": "clang/lib/Sema/SemaTemplateDeduction.cpp",
      "new_id": "c3bec6bdebbcfbcbafcb7bde8824d917beb1039e",
      "new_mode": 33188,
      "new_path": "clang/lib/Sema/SemaTemplateDeduction.cpp"
    },
    {
      "type": "modify",
      "old_id": "11943c0b5359154ae701512be1fc2ddfbc1606fc",
      "old_mode": 33188,
      "old_path": "clang/lib/Sema/SemaType.cpp",
      "new_id": "39717386b0d0848a444409c05ea0a13e6f1acf99",
      "new_mode": 33188,
      "new_path": "clang/lib/Sema/SemaType.cpp"
    },
    {
      "type": "modify",
      "old_id": "b5de98e3989ea972691fa541130fdb7dcbede7d7",
      "old_mode": 33188,
      "old_path": "clang/lib/Sema/TreeTransform.h",
      "new_id": "5686b9d276370b934b4440318bf676806577de8b",
      "new_mode": 33188,
      "new_path": "clang/lib/Sema/TreeTransform.h"
    },
    {
      "type": "modify",
      "old_id": "2b03446aaa30e9aef7e7fe13034c8a72b125c473",
      "old_mode": 33188,
      "old_path": "clang/lib/Serialization/ASTReader.cpp",
      "new_id": "e53a30c08a759d9dfaa1c84f16e1ee5aecf7659e",
      "new_mode": 33188,
      "new_path": "clang/lib/Serialization/ASTReader.cpp"
    },
    {
      "type": "modify",
      "old_id": "9e6da4de680e24a980af5171245f05880a2fc48e",
      "old_mode": 33188,
      "old_path": "clang/lib/Serialization/ASTWriter.cpp",
      "new_id": "1ffa17d4c28e57d2bb869d637ab103097523fbe0",
      "new_mode": 33188,
      "new_path": "clang/lib/Serialization/ASTWriter.cpp"
    },
    {
      "type": "modify",
      "old_id": "598f098f526d0f3380a1901503a0d8501aaa683b",
      "old_mode": 33188,
      "old_path": "clang/lib/Serialization/TemplateArgumentHasher.cpp",
      "new_id": "3c7177b83ba52327e83800d9fd478807a91e7ace",
      "new_mode": 33188,
      "new_path": "clang/lib/Serialization/TemplateArgumentHasher.cpp"
    },
    {
      "type": "modify",
      "old_id": "5ac55d269dce48507b9805e8e1345fedc8b5c6d1",
      "old_mode": 33188,
      "old_path": "clang/test/AST/ast-dump-template-json-win32-mangler-crash.cpp",
      "new_id": "9f0d3efb6277eaee5b6fbe4d0686b36c9d4293b9",
      "new_mode": 33188,
      "new_path": "clang/test/AST/ast-dump-template-json-win32-mangler-crash.cpp"
    },
    {
      "type": "modify",
      "old_id": "2728dc151c3c558dc36c83291ebd4ac4579cf989",
      "old_mode": 33188,
      "old_path": "clang/test/AST/ast-dump-templates.cpp",
      "new_id": "0e0fa73871bb73019896197b3bb7b3100be075aa",
      "new_mode": 33188,
      "new_path": "clang/test/AST/ast-dump-templates.cpp"
    },
    {
      "type": "modify",
      "old_id": "fa1fb53df0e851a57e00a49f9d758170f392e46d",
      "old_mode": 33188,
      "old_path": "clang/test/AST/ast-dump-types-json.cpp",
      "new_id": "67379ac318e0546945e46f37bbeb77364d957778",
      "new_mode": 33188,
      "new_path": "clang/test/AST/ast-dump-types-json.cpp"
    },
    {
      "type": "modify",
      "old_id": "77826f8f9af09865760ec9e73526da8be488a557",
      "old_mode": 33188,
      "old_path": "clang/test/AST/attr-print-emit.cpp",
      "new_id": "66dbc50ecfd3c158b5655bd5e5cf4b1c822cea92",
      "new_mode": 33188,
      "new_path": "clang/test/AST/attr-print-emit.cpp"
    },
    {
      "type": "modify",
      "old_id": "f46a2c9bc368f69068dc649a7c527dca239175d6",
      "old_mode": 33188,
      "old_path": "clang/test/Analysis/cxx-uninitialized-object-ptr-ref.cpp",
      "new_id": "d0eb9e80d63955296a7ebc09d46eb6b444a05b52",
      "new_mode": 33188,
      "new_path": "clang/test/Analysis/cxx-uninitialized-object-ptr-ref.cpp"
    },
    {
      "type": "modify",
      "old_id": "510aaa208982f18f252095975d747f4f20c37556",
      "old_mode": 33188,
      "old_path": "clang/test/CXX/class.access/p6.cpp",
      "new_id": "6f266728faa6b2e5aea0229d689983f704843fe2",
      "new_mode": 33188,
      "new_path": "clang/test/CXX/class.access/p6.cpp"
    },
    {
      "type": "modify",
      "old_id": "282e71bbf3bdaabf140a1c07229df7f20502ab90",
      "old_mode": 33188,
      "old_path": "clang/test/CXX/drs/cwg0xx.cpp",
      "new_id": "4d4e2f64ff6436647771c38be64179e5926ed92b",
      "new_mode": 33188,
      "new_path": "clang/test/CXX/drs/cwg0xx.cpp"
    },
    {
      "type": "modify",
      "old_id": "9c72fefb5b65cd1e4ff61b986a13ddf24698ecc0",
      "old_mode": 33188,
      "old_path": "clang/test/CXX/drs/cwg13xx.cpp",
      "new_id": "92b9f3a1bb3573a95fc6d15ffe6f88b9c37bdce1",
      "new_mode": 33188,
      "new_path": "clang/test/CXX/drs/cwg13xx.cpp"
    },
    {
      "type": "modify",
      "old_id": "a817a1ba3e31dbf777d9ccc0cd45bdce74846b3f",
      "old_mode": 33188,
      "old_path": "clang/test/CXX/drs/cwg26xx.cpp",
      "new_id": "3eb70583b60264a9877e0629c9d19aa9d119b265",
      "new_mode": 33188,
      "new_path": "clang/test/CXX/drs/cwg26xx.cpp"
    },
    {
      "type": "modify",
      "old_id": "4f383aacd4532011077e9ff55766ddf52e75d1ba",
      "old_mode": 33188,
      "old_path": "clang/test/CXX/drs/cwg2xx.cpp",
      "new_id": "b621318a9ce4178e9d4c619650281a11d8681fa0",
      "new_mode": 33188,
      "new_path": "clang/test/CXX/drs/cwg2xx.cpp"
    },
    {
      "type": "modify",
      "old_id": "adbf63f342d6c069d8ca4f7a69c5c1e3b35467bf",
      "old_mode": 33188,
      "old_path": "clang/test/CXX/drs/cwg4xx.cpp",
      "new_id": "e8e2600870233eab94ce405720d6a76f2a51239c",
      "new_mode": 33188,
      "new_path": "clang/test/CXX/drs/cwg4xx.cpp"
    },
    {
      "type": "modify",
      "old_id": "a8ab2e22071679f78eb157c3e2dda4bd4db386d5",
      "old_mode": 33188,
      "old_path": "clang/test/CXX/drs/cwg7xx.cpp",
      "new_id": "9ff01f316e3d1cc2c216e55925f88be4ed68be91",
      "new_mode": 33188,
      "new_path": "clang/test/CXX/drs/cwg7xx.cpp"
    },
    {
      "type": "modify",
      "old_id": "629000d88acc37d1ab2785be1a8efc6341867577",
      "old_mode": 33188,
      "old_path": "clang/test/CXX/temp/temp.arg/temp.arg.nontype/p1.cpp",
      "new_id": "73c7c75e2e0c60ec450be84b60c3abcff44199bf",
      "new_mode": 33188,
      "new_path": "clang/test/CXX/temp/temp.arg/temp.arg.nontype/p1.cpp"
    },
    {
      "type": "modify",
      "old_id": "034ad49d0715cab64c61ba6fd934d2efab2aa410",
      "old_mode": 33188,
      "old_path": "clang/test/CXX/temp/temp.arg/temp.arg.nontype/p5.cpp",
      "new_id": "bf8f1af4b3ae62d620f69477dc1c795ff2ebcbc6",
      "new_mode": 33188,
      "new_path": "clang/test/CXX/temp/temp.arg/temp.arg.nontype/p5.cpp"
    },
    {
      "type": "modify",
      "old_id": "35bf511303332136117fed2e4e4c2145f9473315",
      "old_mode": 33188,
      "old_path": "clang/test/Index/print-type.cpp",
      "new_id": "141895d1dd2b2ba3305b7272690ee6f70dd7e61c",
      "new_mode": 33188,
      "new_path": "clang/test/Index/print-type.cpp"
    },
    {
      "type": "modify",
      "old_id": "99f5ba613938d5e9620a8e6fa4e430ce5f49e318",
      "old_mode": 33188,
      "old_path": "clang/test/SemaCXX/addr-of-overloaded-function.cpp",
      "new_id": "5568bec2b7910ae00db69a47c125f1fce0156d88",
      "new_mode": 33188,
      "new_path": "clang/test/SemaCXX/addr-of-overloaded-function.cpp"
    },
    {
      "type": "modify",
      "old_id": "4330c0cc48aa51d0ddee965d9a37ec2e52fb2845",
      "old_mode": 33188,
      "old_path": "clang/test/SemaCXX/builtin-ptrtomember-ambig.cpp",
      "new_id": "e84c65196dfa0abba792d6b264d53db0eff7e64e",
      "new_mode": 33188,
      "new_path": "clang/test/SemaCXX/builtin-ptrtomember-ambig.cpp"
    },
    {
      "type": "modify",
      "old_id": "5a51e34b1478c6d290034d08c6d1205264a47c7f",
      "old_mode": 33188,
      "old_path": "clang/test/SemaCXX/calling-conv-compat.cpp",
      "new_id": "9bb448ffef225211a2cf68954d7fc03ed0836b60",
      "new_mode": 33188,
      "new_path": "clang/test/SemaCXX/calling-conv-compat.cpp"
    },
    {
      "type": "modify",
      "old_id": "e31f215b4528cb136b0cb7a0efefb9dfb70a91d7",
      "old_mode": 33188,
      "old_path": "clang/test/SemaCXX/err_init_conversion_failed.cpp",
      "new_id": "f1949c079ecb6258a6ac5a95f953ce0df10d16a4",
      "new_mode": 33188,
      "new_path": "clang/test/SemaCXX/err_init_conversion_failed.cpp"
    },
    {
      "type": "modify",
      "old_id": "ec27d7abeadb87536c24fb95f77776fdc8d411ea",
      "old_mode": 33188,
      "old_path": "clang/test/SemaCXX/member-pointer.cpp",
      "new_id": "81a3a3f2df31584b48f814027b395e07d1a6be1d",
      "new_mode": 33188,
      "new_path": "clang/test/SemaCXX/member-pointer.cpp"
    },
    {
      "type": "modify",
      "old_id": "f0796409d942d798e18b7dd40f96fa4e4d59dc60",
      "old_mode": 33188,
      "old_path": "clang/test/SemaOpenACC/combined-construct-if-ast.cpp",
      "new_id": "96c465d368960b52733d0c547df65177dc889283",
      "new_mode": 33188,
      "new_path": "clang/test/SemaOpenACC/combined-construct-if-ast.cpp"
    },
    {
      "type": "modify",
      "old_id": "8aa361c7b037c0dc4dce2f9af724d79dfd9c31d0",
      "old_mode": 33188,
      "old_path": "clang/test/SemaOpenACC/combined-construct-num_workers-ast.cpp",
      "new_id": "a04fcdd3903dfb0ca909f347141097ffaf4ae9b6",
      "new_mode": 33188,
      "new_path": "clang/test/SemaOpenACC/combined-construct-num_workers-ast.cpp"
    },
    {
      "type": "modify",
      "old_id": "58c12b828439dfe3dcbb868fd5fd557e14aa25a9",
      "old_mode": 33188,
      "old_path": "clang/test/SemaOpenACC/compute-construct-clause-ast.cpp",
      "new_id": "babff53d2f1d2d0492dab55a11cab7dd3f21ae38",
      "new_mode": 33188,
      "new_path": "clang/test/SemaOpenACC/compute-construct-clause-ast.cpp"
    },
    {
      "type": "modify",
      "old_id": "2c48fc3ef7746d14d06cfbb1b9c4544db8272e1f",
      "old_mode": 33188,
      "old_path": "clang/test/SemaOpenACC/compute-construct-intexpr-clause-ast.cpp",
      "new_id": "baf7aa62c5f7f612dd22a9fc48445bc47d204d5c",
      "new_mode": 33188,
      "new_path": "clang/test/SemaOpenACC/compute-construct-intexpr-clause-ast.cpp"
    },
    {
      "type": "modify",
      "old_id": "9ceee4e1c0749785e8236dbdf28f6f8f7e9fad5d",
      "old_mode": 33188,
      "old_path": "clang/test/SemaOpenACC/data-construct-if-ast.cpp",
      "new_id": "533a97d34030bbb5a7f49405bd45655300ef629e",
      "new_mode": 33188,
      "new_path": "clang/test/SemaOpenACC/data-construct-if-ast.cpp"
    },
    {
      "type": "modify",
      "old_id": "4757870d13b7081bf9cf327c7efe57422e6e3367",
      "old_mode": 33188,
      "old_path": "clang/test/SemaTemplate/instantiate-member-pointers.cpp",
      "new_id": "8b6c2eff0a252fafa00ec381cfa211b816c6b6ec",
      "new_mode": 33188,
      "new_path": "clang/test/SemaTemplate/instantiate-member-pointers.cpp"
    },
    {
      "type": "modify",
      "old_id": "f4227fd0307343b8b8a59ac1b4e2c289431e556c",
      "old_mode": 33188,
      "old_path": "clang/tools/libclang/CXType.cpp",
      "new_id": "2c9ef282b8abcbc82c49ad5b1c88ebd936de2a23",
      "new_mode": 33188,
      "new_path": "clang/tools/libclang/CXType.cpp"
    },
    {
      "type": "modify",
      "old_id": "068cf66771027977fb1e1b2689aa64f4ba4f2b81",
      "old_mode": 33188,
      "old_path": "clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp",
      "new_id": "74844167d5e5a65aae14b7691b3eac4a08bc6628",
      "new_mode": 33188,
      "new_path": "clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp"
    }
  ]
}
