[flang-commits] [flang] 1a60e53 - [flang] Catch misuse of assumed-rank dummy argument (#173786)
via flang-commits
flang-commits at lists.llvm.org
Wed Dec 31 12:43:12 PST 2025
Author: Peter Klausler
Date: 2025-12-31T12:43:09-08:00
New Revision: 1a60e53b2d6200ec8ea728fb638f502da93ad304
URL: https://github.com/llvm/llvm-project/commit/1a60e53b2d6200ec8ea728fb638f502da93ad304
DIFF: https://github.com/llvm/llvm-project/commit/1a60e53b2d6200ec8ea728fb638f502da93ad304.diff
LOG: [flang] Catch misuse of assumed-rank dummy argument (#173786)
Assumed-rank dummy arguments can't be parenthesized.
Fixes https://github.com/llvm/llvm-project/issues/173593.
Added:
flang/test/Semantics/bug173593.f90
Modified:
flang/lib/Semantics/expression.cpp
Removed:
################################################################################
diff --git a/flang/lib/Semantics/expression.cpp b/flang/lib/Semantics/expression.cpp
index e301190629234..51ce8527edfac 100644
--- a/flang/lib/Semantics/expression.cpp
+++ b/flang/lib/Semantics/expression.cpp
@@ -3760,6 +3760,8 @@ MaybeExpr ExpressionAnalyzer::Analyze(const parser::Expr::Parentheses &x) {
if (MaybeExpr operand{Analyze(x.v.value())}) {
if (IsNullPointerOrAllocatable(&*operand)) {
Say("NULL() may not be parenthesized"_err_en_US);
+ } else if (semantics::IsAssumedRank(*operand)) {
+ Say("An assumed-rank dummy argument may not be parenthesized"_err_en_US);
} else if (const semantics::Symbol *symbol{GetLastSymbol(*operand)}) {
if (const semantics::Symbol *result{FindFunctionResult(*symbol)}) {
if (semantics::IsProcedurePointer(*result)) {
diff --git a/flang/test/Semantics/bug173593.f90 b/flang/test/Semantics/bug173593.f90
new file mode 100644
index 0000000000000..99cd62c97e02e
--- /dev/null
+++ b/flang/test/Semantics/bug173593.f90
@@ -0,0 +1,12 @@
+!RUN: %python %S/test_errors.py %s %flang_fc1
+module m
+ contains
+ subroutine s1(x)
+ integer :: x(..)
+ !ERROR: An assumed-rank dummy argument may not be parenthesized
+ call s2((x))
+ end
+ subroutine s2(y)
+ integer :: y(..)
+ end
+end
More information about the flang-commits
mailing list