[flang-commits] [flang] 8bcf40b - [flang] Adjust new warnings for extensions (#94485)

via flang-commits flang-commits at lists.llvm.org
Tue Jun 11 17:09:20 PDT 2024


Author: Peter Klausler
Date: 2024-06-11T17:09:17-07:00
New Revision: 8bcf40ba884dc80795c17259518db42d35a2f155

URL: https://github.com/llvm/llvm-project/commit/8bcf40ba884dc80795c17259518db42d35a2f155
DIFF: https://github.com/llvm/llvm-project/commit/8bcf40ba884dc80795c17259518db42d35a2f155.diff

LOG: [flang] Adjust new warnings for extensions (#94485)

Prevent messages from module files, respect the language feature flags
when enabling the relaxed PURE dummy argument checking, and check that
the new warnings are enabled.

Added: 
    

Modified: 
    flang/lib/Semantics/check-declarations.cpp
    flang/test/Semantics/call10.f90

Removed: 
    


################################################################################
diff  --git a/flang/lib/Semantics/check-declarations.cpp b/flang/lib/Semantics/check-declarations.cpp
index 92bfea2496223..ff43223f3e054 100644
--- a/flang/lib/Semantics/check-declarations.cpp
+++ b/flang/lib/Semantics/check-declarations.cpp
@@ -742,14 +742,13 @@ void CheckHelper::CheckObjectEntity(
         }
       } else if (!IsIntentInOut(symbol)) { // C1586
         messages_.Say(
-            "non-POINTER dummy argument of pure %s must have INTENT() or VALUE attribute"_warn_en_US,
+            "non-POINTER dummy argument of pure %s must have INTENT() or VALUE attribute"_err_en_US,
             what);
         ok = false;
       }
-      if (ok && InFunction()) {
+      if (ok && InFunction() && !InModuleFile() && !InElemental()) {
         if (context_.IsEnabled(common::LanguageFeature::RelaxedPureDummy)) {
-          if (context_.ShouldWarn(common::LanguageFeature::RelaxedPureDummy) &&
-              !InModuleFile() && !InElemental()) {
+          if (context_.ShouldWarn(common::LanguageFeature::RelaxedPureDummy)) {
             messages_.Say(
                 "non-POINTER dummy argument of pure function should be INTENT(IN) or VALUE"_warn_en_US);
           }

diff  --git a/flang/test/Semantics/call10.f90 b/flang/test/Semantics/call10.f90
index ff19f104b051b..ffb3b48c329e7 100644
--- a/flang/test/Semantics/call10.f90
+++ b/flang/test/Semantics/call10.f90
@@ -53,7 +53,7 @@ pure real function f02(a)
     real, value :: a ! ok
   end function
   pure real function f03(a) ! C1583
-    !ERROR: non-POINTER dummy argument of pure function must have INTENT() or VALUE attribute
+    !WARNING: non-POINTER dummy argument of pure function must have INTENT() or VALUE attribute
     real :: a
   end function
   pure real function f03a(a)
@@ -83,7 +83,7 @@ pure function f08() ! C1585
   end function
 
   pure subroutine s01(a) ! C1586
-    !ERROR: non-POINTER dummy argument of pure subroutine must have INTENT() or VALUE attribute
+    !WARNING: non-POINTER dummy argument of pure subroutine must have INTENT() or VALUE attribute
     real :: a
   end subroutine
   pure subroutine s01a(a)


        


More information about the flang-commits mailing list