)]}'
{
  "commit": "68a346f71d9b54f2e439007336285420ece0de39",
  "tree": "8e9f8922a042495e715e610c08c98f293681612f",
  "parents": [
    "8a905baeb43f9561c742a610990a13f36ef4b233"
  ],
  "author": {
    "name": "Andy Kaylor",
    "email": "akaylor@nvidia.com",
    "time": "Wed Jun 04 10:12:07 2025 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Jun 04 10:12:07 2025 -0700"
  },
  "message": "[CIR] Introduce cir::RecordKind::Class (#142690)\n\nWhen cir::RecordType was initially upstreamed, we decided that there was\nno reason to distinguish between RecordKind::Class and\nRecordKind::Struct since they are semantically equivalent. I think this\nwas a mistake because classic codegen does preserve the distinction\n(which is visible in the AST) and preserving the distinction in CIR will\naid the possibility of eventually using the classic codegen lit tests\nwith CIR.\n\nThis change introduces RecordKind::Class, which is already present in\nthe incubator implementation.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9c0af8d3eaa5f2dd3ef320d2092f7ea37c2febbb",
      "old_mode": 33188,
      "old_path": "clang/include/clang/CIR/Dialect/IR/CIRTypes.td",
      "new_id": "75eb9cc045a48c89d949cd08d1fc5e90295b4480",
      "new_mode": 33188,
      "new_path": "clang/include/clang/CIR/Dialect/IR/CIRTypes.td"
    },
    {
      "type": "modify",
      "old_id": "b8548487d5b318c496034cbe9755a0fda6b65814",
      "old_mode": 33188,
      "old_path": "clang/lib/CIR/CodeGen/CIRGenBuilder.h",
      "new_id": "5f17b5d58acaa4f23e3271eedaa8e583acb39c03",
      "new_mode": 33188,
      "new_path": "clang/lib/CIR/CodeGen/CIRGenBuilder.h"
    },
    {
      "type": "modify",
      "old_id": "900871c3c2cba2ab330d6f6657071a5a7a363c0f",
      "old_mode": 33188,
      "old_path": "clang/lib/CIR/Dialect/IR/CIRTypes.cpp",
      "new_id": "3543c139bbf79a6e5efeb29182d010cbc30ea5f9",
      "new_mode": 33188,
      "new_path": "clang/lib/CIR/Dialect/IR/CIRTypes.cpp"
    },
    {
      "type": "modify",
      "old_id": "f61e85ce3ccec13df312fa8f396786aef8a1eac0",
      "old_mode": 33188,
      "old_path": "clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp",
      "new_id": "909b8efd95b883d1d47e3e29e3b672f8e743e200",
      "new_mode": 33188,
      "new_path": "clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "dd280d3d906bab8dcf77b566e0837dfe36e782a2",
      "new_mode": 33188,
      "new_path": "clang/test/CIR/CodeGen/class.cpp"
    },
    {
      "type": "modify",
      "old_id": "7f0ce076311827186a024b688e3fa6146a85dfbe",
      "old_mode": 33188,
      "old_path": "clang/test/CIR/IR/struct.cir",
      "new_id": "5ff5ff7cd1f696f9c5f718dfef391ab4454530ef",
      "new_mode": 33188,
      "new_path": "clang/test/CIR/IR/struct.cir"
    }
  ]
}
