)]}'
{
  "commit": "be1f7941b851427be01abac112057a50f8d333d2",
  "tree": "c1027c1dd32665779a9a00f5105a32676d2c8d52",
  "parents": [
    "d8c95e6ea4fbd6526641b87353bb31ce439afe8c"
  ],
  "author": {
    "name": "Erich Keane",
    "email": "ekeane@nvidia.com",
    "time": "Tue Apr 14 05:58:54 2026 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Apr 14 05:58:54 2026 -0700"
  },
  "message": "[CIR] Inheriting Constructor/inheriting ctor inlining lowering (#191467)\n\nIn cases with inheritance/vertual tables/etc, we need to generate a\nseries of constructors to delegate to. There are a handful slightly\ndifferent cases where we need to generate these/generate calls to these,\nso this patch does that lowering.\n\nThe test check-lines are a bit confusing thanks to the ordering\ndifferences between declarations. However the LLVM/OGCG lines are copy\npasted (plus minor attribute differences), with the exception of the\ncall to a delegated constructor.\n\nOne thing of note here: There is a difference in behavior with the\ndelegated constructor, which is called out in the test in a comment.\nClassic codegen has a bug where it correctly creates the declaration\nwithout arguments (since this constructor is only for initializing the\nvtable pointers, arguments aren\u0027t necessary). However, when\nclassic-codegen creates the call, it doesn\u0027t omit them.\n\nThis isn\u0027t a problem there, however in CIR, this causes us to fail the\nverifier, so this fixes that in CIR, but leaves it alone in OGCG.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ccf49c6c76d665724dfc8bf39fc80294824b9b2a",
      "old_mode": 33188,
      "old_path": "clang/lib/CIR/CodeGen/CIRGenCall.cpp",
      "new_id": "10b4528ff2aaca27e0fe239a1ef5194ba5a5e1be",
      "new_mode": 33188,
      "new_path": "clang/lib/CIR/CodeGen/CIRGenCall.cpp"
    },
    {
      "type": "modify",
      "old_id": "748d450d6dc1020cd4d5e0f7a17d143a73ab3d98",
      "old_mode": 33188,
      "old_path": "clang/lib/CIR/CodeGen/CIRGenClass.cpp",
      "new_id": "1d4be8c7dd7a36d8ad34ce2909258466c09f72a4",
      "new_mode": 33188,
      "new_path": "clang/lib/CIR/CodeGen/CIRGenClass.cpp"
    },
    {
      "type": "modify",
      "old_id": "b6683e28c853fd31f892b6b5d3930b6b789fcf95",
      "old_mode": 33188,
      "old_path": "clang/lib/CIR/CodeGen/CIRGenExprAggregate.cpp",
      "new_id": "ec8ebf75ccbee73577ceb883a4bd98d19914ddd4",
      "new_mode": 33188,
      "new_path": "clang/lib/CIR/CodeGen/CIRGenExprAggregate.cpp"
    },
    {
      "type": "modify",
      "old_id": "f7f93310609565af1a1bf8c07565e6bf6df95cd2",
      "old_mode": 33188,
      "old_path": "clang/lib/CIR/CodeGen/CIRGenFunction.cpp",
      "new_id": "fcfbeb809371e271f8ab193bd44ff0fd7d295ea0",
      "new_mode": 33188,
      "new_path": "clang/lib/CIR/CodeGen/CIRGenFunction.cpp"
    },
    {
      "type": "modify",
      "old_id": "d14d7f02995386a05f5c0e5aeb56f4fb8bd77241",
      "old_mode": 33188,
      "old_path": "clang/lib/CIR/CodeGen/CIRGenFunction.h",
      "new_id": "4f0f33a933e01680c23d5f1c2c491180fbecfc69",
      "new_mode": 33188,
      "new_path": "clang/lib/CIR/CodeGen/CIRGenFunction.h"
    },
    {
      "type": "modify",
      "old_id": "172b348ac78cf8644fbe8f25d4ed15edd0f2770f",
      "old_mode": 33188,
      "old_path": "clang/lib/CIR/CodeGen/CIRGenTypes.h",
      "new_id": "c881b1b6e69e47a368476434fa53f3f92d20ceeb",
      "new_mode": 33188,
      "new_path": "clang/lib/CIR/CodeGen/CIRGenTypes.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "158bc9f11b94a6f1202b4961560e4cf9cffe0d71",
      "new_mode": 33188,
      "new_path": "clang/test/CIR/CodeGen/inherited-ctors.cpp"
    }
  ]
}
