)]}'
{
  "commit": "8f025f2a93ee7249336115cff31ae12367f1d0d5",
  "tree": "bedc04ef55bdb2e9f5b87c39093c4a7c9a6f81f6",
  "parents": [
    "5c065f01cee5dfca28d703983d0ebefa65128e09"
  ],
  "author": {
    "name": "Owen Anderson",
    "email": "resistor@mac.com",
    "time": "Mon Feb 03 23:26:22 2025 +1300"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Feb 03 23:26:22 2025 +1300"
  },
  "message": "[clang] Do not emit template parameter objects as COMDATs when they have internal linkage. (#125448)\n\nPer the ELF spec, section groups may only contain local symbols if those\r\nsymbols are only\r\nreferenced from within the section group. [1] In the case of template\r\nparameter objects,\r\nthey can be referenced from outside the group when the type of the\r\nobject was declared\r\nin an anonymous namespace. In that case, we can\u0027t place the object in a\r\nCOMDAT. This matches\r\nGCC\u0027s linkage behavior on the test input.\r\n\r\n[1]:\r\nhttps://www.sco.com/developers/gabi/latest/ch4.sheader.html#section_groups",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "05879cd486a8c9804d85a11bbfc5644d3316700d",
      "old_mode": 33188,
      "old_path": "clang/lib/CodeGen/CodeGenModule.cpp",
      "new_id": "82002b8d8e4d4f1400c13fd1118ff88b9118abbd",
      "new_mode": 33188,
      "new_path": "clang/lib/CodeGen/CodeGenModule.cpp"
    },
    {
      "type": "modify",
      "old_id": "11ebd21521e83b1d2bbdf417e29c958fde54c0f3",
      "old_mode": 33188,
      "old_path": "clang/test/CodeGenCXX/template-param-objects.cpp",
      "new_id": "ff6acc438d137a0ac6a4c18b3e1764329b2656d4",
      "new_mode": 33188,
      "new_path": "clang/test/CodeGenCXX/template-param-objects.cpp"
    }
  ]
}
