)]}'
{
  "commit": "a558d656043734cc4d02e0a0a12e4c308c28f8c7",
  "tree": "6cd2d61298508a01df3f2c7f1f10c02a7069bc73",
  "parents": [
    "9288b084fd9c4301946dff838925c7385c1168e5"
  ],
  "author": {
    "name": "A. Jiang",
    "email": "de34@live.cn",
    "time": "Sun Sep 28 21:36:03 2025 +0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Sun Sep 28 21:36:03 2025 +0800"
  },
  "message": "[CodeGen] Get rid of incorrect `std` template specializations (#160804)\n\nThis patch renames comparators\n- from `std::equal_to\u003cllvm::rdf::RegisterRef\u003e` to\n`llvm::rdf::RegisterRefEqualTo`, and\n- from `std::less\u003cllvm::rdf::RegisterRef\u003e` to\n`llvm::rdf::RegisterRefLess`.\n\nThe original specializations don\u0027t satisfy the requirements for the\noriginal `std` templates by being stateful and\nnon-default-constructible, so they make the program have UB due to C++17\n[namespace.std]/2, C++20/23 [namespace.std]/5.\n\n\u003e A program may explicitly instantiate a class template defined in the\nstandard library only if the declaration\n\u003e - depends on the name of at least one program-defined type, and\n\u003e - the instantiation meets the standard library requirements for the\noriginal template.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8a93afbcb54914cc924bd56c43c2f787d3224823",
      "old_mode": 33188,
      "old_path": "llvm/include/llvm/CodeGen/RDFGraph.h",
      "new_id": "6bb6033a8a2f2a61c65436cba27df126119618ce",
      "new_mode": 33188,
      "new_path": "llvm/include/llvm/CodeGen/RDFGraph.h"
    },
    {
      "type": "modify",
      "old_id": "4a9a4063c9e83a9e45610c6dce8f826539af207d",
      "old_mode": 33188,
      "old_path": "llvm/include/llvm/CodeGen/RDFRegisters.h",
      "new_id": "82027cad53bdb4f36ebb4670dee07937775666cd",
      "new_mode": 33188,
      "new_path": "llvm/include/llvm/CodeGen/RDFRegisters.h"
    },
    {
      "type": "modify",
      "old_id": "318422b46e811f85dff9b5a9ddecebb234bec318",
      "old_mode": 33188,
      "old_path": "llvm/lib/CodeGen/RDFLiveness.cpp",
      "new_id": "2e1cf499eab41cf054eecb70589686a9dead250d",
      "new_mode": 33188,
      "new_path": "llvm/lib/CodeGen/RDFLiveness.cpp"
    },
    {
      "type": "modify",
      "old_id": "fafdad08909ddc3938fa0d6774c628f671cf5126",
      "old_mode": 33188,
      "old_path": "llvm/lib/Target/Hexagon/RDFCopy.cpp",
      "new_id": "3b1d3bd89680b2f8cfc14f703ed9ed497ffa0884",
      "new_mode": 33188,
      "new_path": "llvm/lib/Target/Hexagon/RDFCopy.cpp"
    },
    {
      "type": "modify",
      "old_id": "e4fb89892831de5511a71f3325fa694289ee1fd3",
      "old_mode": 33188,
      "old_path": "llvm/lib/Target/Hexagon/RDFCopy.h",
      "new_id": "92b2c65982655020b5df0d97a8f90614d47f5f63",
      "new_mode": 33188,
      "new_path": "llvm/lib/Target/Hexagon/RDFCopy.h"
    },
    {
      "type": "modify",
      "old_id": "dde86280cff6a70534d737a478381a62b50eceb4",
      "old_mode": 33188,
      "old_path": "llvm/unittests/CodeGen/TypeTraitsTest.cpp",
      "new_id": "1c8852fc1f071e6af01824e09da3ca02c00f96b5",
      "new_mode": 33188,
      "new_path": "llvm/unittests/CodeGen/TypeTraitsTest.cpp"
    }
  ]
}
