[flang-commits] [flang] [flang] Adjust new warnings for extensions (PR #94485)
via flang-commits
flang-commits at lists.llvm.org
Wed Jun 5 08:14:33 PDT 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-flang-semantics
Author: Peter Klausler (klausler)
<details>
<summary>Changes</summary>
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.
---
Full diff: https://github.com/llvm/llvm-project/pull/94485.diff
2 Files Affected:
- (modified) flang/lib/Semantics/check-declarations.cpp (+16-5)
- (modified) flang/test/Semantics/call10.f90 (+2-2)
``````````diff
diff --git a/flang/lib/Semantics/check-declarations.cpp b/flang/lib/Semantics/check-declarations.cpp
index 25de9d4af1ffb..80d1003d0adaa 100644
--- a/flang/lib/Semantics/check-declarations.cpp
+++ b/flang/lib/Semantics/check-declarations.cpp
@@ -730,15 +730,26 @@ 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,
- what);
+ if (!InModuleFile()) {
+ if (context_.IsEnabled(common::LanguageFeature::RelaxedPureDummy)) {
+ if (context_.ShouldWarn(
+ common::LanguageFeature::RelaxedPureDummy)) {
+ messages_.Say(
+ "non-POINTER dummy argument of pure %s should have INTENT() or VALUE attribute"_warn_en_US,
+ what);
+ }
+ } else {
+ messages_.Say(
+ "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()) {
if (context_.IsEnabled(common::LanguageFeature::RelaxedPureDummy)) {
if (context_.ShouldWarn(common::LanguageFeature::RelaxedPureDummy) &&
- !InModuleFile() && !InElemental()) {
+ !InElemental()) {
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..a332efe0a1155 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 should 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 should have INTENT() or VALUE attribute
real :: a
end subroutine
pure subroutine s01a(a)
``````````
</details>
https://github.com/llvm/llvm-project/pull/94485
More information about the flang-commits
mailing list