[flang] Improve warning message
authorPeter Klausler <pklausler@nvidia.com>
Wed, 12 Oct 2022 17:24:23 +0000 (10:24 -0700)
committerPeter Klausler <pklausler@nvidia.com>
Tue, 1 Nov 2022 17:01:27 +0000 (10:01 -0700)
When a floating-point exception occurs while folding an exponentiation
operation with a host library at compilation time, the warning message
should not say that it was an "intrinsic function".

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

flang/lib/Evaluate/host.cpp
flang/test/Evaluate/folding04.f90

index a2282e9cd82cdc4b912ad1892e13f1e8485fd2f2..a5817bd0b59ad1d0f50e6aed2c24809ecc5c0aa8 100644 (file)
@@ -141,7 +141,8 @@ void HostFloatingPointEnvironment::CheckAndRestoreFloatingPointEnvironment(
   }
 
   if (!flags_.empty()) {
-    RealFlagWarnings(context, flags_, "intrinsic function");
+    RealFlagWarnings(
+        context, flags_, "evaluation of intrinsic function or operation");
   }
   errno = 0;
   if (fesetenv(&originalFenv_) != 0) {
index 4c669a4ec598361828689d33382f4f7be04e6026..99ee203b29b5c2d944405640b9689fa3dad49646 100644 (file)
@@ -17,26 +17,25 @@ module real_tests
   !WARN: warning: division by zero
   real(4), parameter :: r4_ninf = -1._4/0._4
 
-  !WARN: warning: invalid argument on intrinsic function
+  !WARN: warning: invalid argument on evaluation of intrinsic function or operation
   real(4), parameter :: nan_r4_acos1 = acos(1.1)
   TEST_ISNAN(nan_r4_acos1)
-  !WARN: warning: invalid argument on intrinsic function
+  !WARN: warning: invalid argument on evaluation of intrinsic function or operation
   real(4), parameter :: nan_r4_acos2 = acos(r4_pmax)
   TEST_ISNAN(nan_r4_acos2)
-  !WARN: warning: invalid argument on intrinsic function
+  !WARN: warning: invalid argument on evaluation of intrinsic function or operation
   real(4), parameter :: nan_r4_acos3 = acos(r4_nmax)
   TEST_ISNAN(nan_r4_acos3)
-  !WARN: warning: invalid argument on intrinsic function
+  !WARN: warning: invalid argument on evaluation of intrinsic function or operation
   real(4), parameter :: nan_r4_acos4 = acos(r4_ninf)
   TEST_ISNAN(nan_r4_acos4)
-  !WARN: warning: invalid argument on intrinsic function
+  !WARN: warning: invalid argument on evaluation of intrinsic function or operation
   real(4), parameter :: nan_r4_acos5 = acos(r4_pinf)
   TEST_ISNAN(nan_r4_acos5)
   !WARN: warning: second argument to MOD must not be zero
   real(4), parameter :: nan_r4_mod = mod(3.5, 0.)
   TEST_ISNAN(nan_r4_mod)
-
-  !WARN: warning: overflow on intrinsic function
+  !WARN: warning: overflow on evaluation of intrinsic function or operation
   logical, parameter :: test_exp_overflow = exp(256._4).EQ.r4_pinf
 end module