tree 859a4758dcce6d4c741ba6e1a0e1af4d45666545
parent 525389c12ba50bf122841f6b7086865e6c4c7664
author Scott Todd <scott.todd0@gmail.com> 1737520071 -0800
committer GitHub <noreply@github.com> 1737520071 -0800
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJnkHPHCRC1aQ7uu5UhlAAAhEUQADbUL0qTp0bKawols2FP/2ot
 QlWbtsFE4QB0X3o5XFoLoqdRwb2p/2f7QPOw1wD+n7PWRYf/o0ZHi6MwfXFqGLpO
 coMgntM3/jDf4O8GfKh9YUYKwyUdajtYXsEofS/nPjck8G2TjElWysQcWbxXh5bM
 Hu6dKKiVkcnqjKNHZfPbGVUyDzncDarewFrXNFLTnydZS3b71V7Ml7XShrNri0Um
 ab8fkJuVPOW+jKMI6b6jq+Bdd9cmBKuBo2OLuOmdI8SZgsbeAd8DH7jdacL4hyZW
 7TdnJ+jDI6jOzfcktg5+j4BJuHYbfWibzMMR/D2ONpegHCFk6pgwydTWj+ZO4MEA
 es0CCIs8pYzDmRC5wICz+vm0LDK69VwJtyX4+6UbbMJcSQvNh76O5GIqpSX0Q9+A
 WRn12NLzqokAnWXcT/8b/lGDPmiboNIiS93qcXVL3iJzVofR1+RadIj107Fm45lp
 QTyrWZqszAckWhENP4v1DuGhjus6t6geDEdPOgLDW8K76yVnjpP0UXMFgvw+SVR/
 Ebvw1xQuVxpDL1SnYszs1/gDR+UIIQW4uWiK5BA7jfG1dcVYbvD2gW3D2M/rk7Yo
 sgppMjafEN2BMsCz0FDWU4Z8rWhp0RSpEqXA7gQV2IaMrHQ0I9q8BXV0EhzBgTts
 PaDWlYaIagYZWYEtOQZB
 =JvF+
 -----END PGP SIGNATURE-----
 

Fix or work around gcc-14 warnings/errors. (#19758)

Fixing or working around a few "warnings as errors" on gcc-14 (released
May 2024). These are also causing the aarch64 nightly distribution
builds to fail. Note that we also have some new warnings as errors
coming in clang-20 (not yet released):
https://clang.llvm.org/docs/ReleaseNotes.html#improvements-to-clang-s-diagnostics.

### dangling-reference

Not sure how we want to handle these. We have a bunch of code in IREE
and torch-mlir that uses temporaries in loop headers, which this warning
does not like. For now just disabling the warning.

```
/iree/compiler/src/iree/compiler/API/Internal/Diagnostics.cpp: In function 'std::optional<mlir::CallSiteLoc> mlir::iree_compiler::embed::{anonymous}::getCallSiteLoc(mlir::Location)':
/iree/compiler/src/iree/compiler/API/Internal/Diagnostics.cpp:30:57: error: possibly dangling reference to a temporary [-Werror=dangling-reference]
   30 |     for (auto subLoc : cast<FusedLoc>(loc).getLocations()) {
      |                                                         ^
/iree/compiler/src/iree/compiler/API/Internal/Diagnostics.cpp:30:56: note: the temporary was destroyed at the end of the full expression 'llvm::cast<mlir::FusedLoc, mlir::Location>(loc).mlir::FusedLoc::getLocations()'
   30 |     for (auto subLoc : cast<FusedLoc>(loc).getLocations()) {
      |                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
```

### template-id-cdtor

These looked legit and were easy enough to fix.

```
/iree/compiler/src/iree/compiler/Dialect/LinalgExt/Transforms/ConvertConv2DToWinograd.cpp:159:33: error: template-id not allowed for constructor in C++20 [-Werror=template-id-cdtor]
  159 |   ConvertConvToWinograd<ConvOp>(MLIRContext *context, bool replaceAllConvs,
      |                                 ^~~~~~~~~~~
/iree/compiler/src/iree/compiler/Dialect/LinalgExt/Transforms/ConvertConv2DToWinograd.cpp:159:33: note: remove the '< >'
```