[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