[MLIR][NFC] Fix a checked after used case in ReshapeOpsUtils.cpp
authorShivam Gupta <shivam98.tkg@gmail.com>
Thu, 26 Jan 2023 17:21:44 +0000 (22:51 +0530)
committerShivam Gupta <shivam98.tkg@gmail.com>
Thu, 26 Jan 2023 17:21:51 +0000 (22:51 +0530)
Found by PVS-Studio - https://pvs-studio.com/en/blog/posts/cpp/1003/, N18.
The value of the 'sourceDim' index is checked after it was used.

Reviewed By: zero9178

Differential Revision: https://reviews.llvm.org/D142312

mlir/lib/Dialect/Utils/ReshapeOpsUtils.cpp

index fc11e81..750c8f9 100644 (file)
@@ -47,9 +47,9 @@ mlir::getReassociationIndicesForCollapse(ArrayRef<int64_t> sourceShape,
       break;
 
     int64_t currTargetShape = targetShape[targetDim];
-    while (sourceShape[sourceDim] != ShapedType::kDynamic &&
-           prodOfCollapsedDims * sourceShape[sourceDim] < currTargetShape &&
-           sourceDim < sourceShape.size()) {
+    while (sourceDim < sourceShape.size() &&
+           sourceShape[sourceDim] != ShapedType::kDynamic &&
+           prodOfCollapsedDims * sourceShape[sourceDim] < currTargetShape) {
       prodOfCollapsedDims *= sourceShape[sourceDim];
       currIndices.push_back(sourceDim++);
     }