)]}'
{
  "commit": "cac390debbe49523e6d1255021c15cdd5223eeb8",
  "tree": "859a4758dcce6d4c741ba6e1a0e1af4d45666545",
  "parents": [
    "525389c12ba50bf122841f6b7086865e6c4c7664"
  ],
  "author": {
    "name": "Scott Todd",
    "email": "scott.todd0@gmail.com",
    "time": "Tue Jan 21 20:27:51 2025 -0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Jan 21 20:27:51 2025 -0800"
  },
  "message": "Fix or work around gcc-14 warnings/errors. (#19758)\n\nFixing or working around a few \"warnings as errors\" on gcc-14 (released\r\nMay 2024). These are also causing the aarch64 nightly distribution\r\nbuilds to fail. Note that we also have some new warnings as errors\r\ncoming in clang-20 (not yet released):\r\nhttps://clang.llvm.org/docs/ReleaseNotes.html#improvements-to-clang-s-diagnostics.\r\n\r\n### dangling-reference\r\n\r\nNot sure how we want to handle these. We have a bunch of code in IREE\r\nand torch-mlir that uses temporaries in loop headers, which this warning\r\ndoes not like. For now just disabling the warning.\r\n\r\n```\r\n/iree/compiler/src/iree/compiler/API/Internal/Diagnostics.cpp: In function \u0027std::optional\u003cmlir::CallSiteLoc\u003e mlir::iree_compiler::embed::{anonymous}::getCallSiteLoc(mlir::Location)\u0027:\r\n/iree/compiler/src/iree/compiler/API/Internal/Diagnostics.cpp:30:57: error: possibly dangling reference to a temporary [-Werror\u003ddangling-reference]\r\n   30 |     for (auto subLoc : cast\u003cFusedLoc\u003e(loc).getLocations()) {\r\n      |                                                         ^\r\n/iree/compiler/src/iree/compiler/API/Internal/Diagnostics.cpp:30:56: note: the temporary was destroyed at the end of the full expression \u0027llvm::cast\u003cmlir::FusedLoc, mlir::Location\u003e(loc).mlir::FusedLoc::getLocations()\u0027\r\n   30 |     for (auto subLoc : cast\u003cFusedLoc\u003e(loc).getLocations()) {\r\n      |                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~\r\n```\r\n\r\n### template-id-cdtor\r\n\r\nThese looked legit and were easy enough to fix.\r\n\r\n```\r\n/iree/compiler/src/iree/compiler/Dialect/LinalgExt/Transforms/ConvertConv2DToWinograd.cpp:159:33: error: template-id not allowed for constructor in C++20 [-Werror\u003dtemplate-id-cdtor]\r\n  159 |   ConvertConvToWinograd\u003cConvOp\u003e(MLIRContext *context, bool replaceAllConvs,\r\n      |                                 ^~~~~~~~~~~\r\n/iree/compiler/src/iree/compiler/Dialect/LinalgExt/Transforms/ConvertConv2DToWinograd.cpp:159:33: note: remove the \u0027\u003c \u003e\u0027\r\n```",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8e02f61cd42bbaa126df77d0bc092d25be2e0ce7",
      "old_mode": 33188,
      "old_path": "build_tools/cmake/iree_copts.cmake",
      "new_id": "ccd952d5f147fe84712d72b16238bd388790fe48",
      "new_mode": 33188,
      "new_path": "build_tools/cmake/iree_copts.cmake"
    },
    {
      "type": "modify",
      "old_id": "445ab9dc57e49820b7db22f5d375505266b0860e",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Common/GPU/GPUVectorDistribution.h",
      "new_id": "6408462e1734c36f27c1d0b44e29fc4b8f57f250",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/GPU/GPUVectorDistribution.h"
    },
    {
      "type": "modify",
      "old_id": "611cf08ed9a2d151203e4f4ed031b9b898373094",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/SPIRV/SPIRVVectorizeLoadStore.cpp",
      "new_id": "70381753a47c76b1bb4e8dff0bd7697f74aa57cb",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/SPIRV/SPIRVVectorizeLoadStore.cpp"
    },
    {
      "type": "modify",
      "old_id": "f2d8fe3b6696cba74b4bc414cba3d1d0700660da",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/LinalgExt/Transforms/ConvertConv2DToWinograd.cpp",
      "new_id": "294eddd04cd5009cd775ec51e9aa1570dc4ccd48",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/LinalgExt/Transforms/ConvertConv2DToWinograd.cpp"
    }
  ]
}
