From b7585c75eeaf58f7602c1310f14e8e63b5501845 Mon Sep 17 00:00:00 2001 From: Peter Klausler Date: Thu, 20 Jul 2023 13:50:10 -0700 Subject: [flang][runtime] Fix NORM2([negative, ...]) NORM2 is broken for arrays that start with a negative number because it sets the initial running max_ value to that number rather than to its absolute value. Differential Revision: https://reviews.llvm.org/D155976 --- flang/runtime/extrema.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'flang') diff --git a/flang/runtime/extrema.cpp b/flang/runtime/extrema.cpp index c9dcc65b..d02cf46 100644 --- a/flang/runtime/extrema.cpp +++ b/flang/runtime/extrema.cpp @@ -800,7 +800,7 @@ public: bool Accumulate(Type x) { auto absX{std::abs(static_cast(x))}; if (!max_) { - max_ = x; + max_ = absX; } else if (absX > max_) { auto t{max_ / absX}; // < 1.0 auto tsq{t * t}; -- cgit v1.1