[flang-commits] [flang] [flang][NFC] Document an intentional violation of the ISO standard (PR #172105)
Peter Klausler via flang-commits
flang-commits at lists.llvm.org
Sun Dec 14 09:13:51 PST 2025
https://github.com/klausler updated https://github.com/llvm/llvm-project/pull/172105
>From 79c7e7e1dcc3f1d55272ef154933fc3ae06f03ee Mon Sep 17 00:00:00 2001
From: Peter Klausler <pklausler at nvidia.com>
Date: Fri, 12 Dec 2025 15:21:45 -0800
Subject: [PATCH] [flang][NFC] Document an intentional violation of the ISO
standard
This compiler (like all others) allows OPTIONAL dummy arguments to
appear as arguments to some intrinsic functions that are specified
as disallowing them; document this interpretation better.
---
flang/docs/Extensions.md | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/flang/docs/Extensions.md b/flang/docs/Extensions.md
index 593cd99147515..6628597923fc4 100644
--- a/flang/docs/Extensions.md
+++ b/flang/docs/Extensions.md
@@ -189,6 +189,21 @@ end
`PROCEDURE(), POINTER, NOPASS` derived type components.
Such procedures may *not* be referenced as implicitly typed functions
without first being associated with a function pointer.
+* Some intrinsic functions (`COUNT`, `LBOUND`, `LCOBOUND`, `TRANSFER`,
+ `UBOUND`, and `UCOBOUND`) have arguments (usually `DIM=`) that are documented
+ as not allowing `OPTIONAL` dummy arguments to appear as their values.
+ This prohibition appeared on the `DIM=` arguments of more
+ intrinsic functions in earlier revisions of the ISO standard.
+ (Perhaps these are meant to avoid misunderstanding these arguments,
+ which appear in square brackets in the synopses, as if their dynamic
+ presence at runtime could affect the semantics of the intrinsic in
+ the same way as the static presence or absence of the argument does
+ at compilation time, which would not be possible.)
+ No compiler seems to enforce this requirement.
+ We interpret it
+ to mean that an `OPTIONAL` dummy argument may appear but must be present
+ during execution, just as a pointer argument must be associated or an
+ allocatable argument must be allocated.
## Extensions, deletions, and legacy features supported by default
More information about the flang-commits
mailing list