[flang-commits] [PATCH] D132162: [flang] Avoid spurious error message in function result compatibility

Peter Klausler via Phabricator via flang-commits flang-commits at lists.llvm.org
Thu Aug 18 15:02:41 PDT 2022


klausler marked an inline comment as done.
klausler added inline comments.


================
Comment at: flang/lib/Evaluate/characteristics.cpp:878-893
+static bool AreCompatibleFunctionResultShapes(const Shape &x, const Shape &y) {
+  int rank{GetRank(x)};
+  if (GetRank(y) != rank) {
+    return false;
+  }
+  for (int j{0}; j < rank; ++j) {
+    if (auto xDim{ToInt64(x[j])}) {
----------------
jpenix-quic wrote:
> Does this differ from what ShapesAreCompatible does (characteristics.cpp:41-57)? They seem like they are doing the same thing, but I might be misunderstanding something (and apologies in advance if so!).
> 
> Either way, FWIW I think this should fix https://github.com/llvm/llvm-project/issues/57204 as well--thanks!
ShapesAreCompatible() will return false when one corresponding dimensions is deferred but the other is not.  AreCompatibleFunctionResultShapes will return false if corresponding dimensions have distinct explicit extents.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D132162/new/

https://reviews.llvm.org/D132162



More information about the flang-commits mailing list