[clang] [flang] [flang] Add -fdisable-real-16 option (PR #221904)
Shunsuke Watanabe via cfe-commits
cfe-commits at lists.llvm.org
Wed Sep 9 01:39:12 PDT 2026
================
@@ -189,6 +189,9 @@ def warn_openmp_spec_incomplete : Warning<
"the specification for OpenMP version %0 is still under development; "
"the syntax and semantics of new features may be subject to change">,
InGroup<ExperimentalOption>;
+def warn_real_kind_consistency_for_flang : Warning<
+ "'-fdisable-real-16' may cause SELECTED_REAL_KIND to return inconsistent results">,
----------------
s-watanabe314 wrote:
My understanding is that the inconsistency comes from the difference between compile-time folding and runtime evaluation. For example:
```Fortran
integer, parameter :: x = selected_real_kind(p=33) ! folded to -1 with -fdisable-real-16
integer :: y
y = selected_real_kind(p=33) ! still returns 16 at runtime
```
Only `SELECTED_REAL_KIND` invocations that would otherwise select `REAL(16)` are affected. Calls that select other real kinds are unaffected.
This happens because the runtime implementation does not currently take into account which real kinds the frontend considers available. As a result, compile-time folding and runtime evaluation can produce different results in some cases. The inconsistency is not introduced by this patch; it already exists due to the current separation between frontend folding and runtime evaluation.
https://godbolt.org/z/vjcdqMxvP
https://github.com/llvm/llvm-project/pull/221904
More information about the cfe-commits
mailing list