[flang] Complete Fortran 2023 SIMPLE procedure support
- Dominant language
- LLVM
- Stars
- 40.5k
- Forks
- 18.7k
- PR merge metrics
- PR metrics pending
Description
Fortran 2023 introduces SIMPLE procedures, which are PURE procedures with additional restrictions.
Flang already parses the SIMPLE prefix and carries SIMPLE as a procedure attribute. This issue tracks the remaining work needed to complete SIMPLE procedure support.
The remaining work includes:
- Classify intrinsic functions as SIMPLE as required by Fortran 2023
- Classify intrinsic module functions and the specified intrinsic module subroutines as SIMPLE
- Handle the conditional SIMPLE classification of `MOVE_ALLOC` when `FROM` is not a coarray
- Classify the elemental `==` and `/=` operators for `ieee_class_type` and `ieee_round_type` as SIMPLE
- Implement the remaining semantic constraints for SIMPLE procedures (use/host association restrictions, SIMPLE dummy and internal procedures, restrictions on referenced procedures, and explicit-interface requirements)
#205024 classifies `MVBITS`, `SPLIT`, and `TOKENIZE` as SIMPLE.
As the implementation progresses, any additional work needed to complete SIMPLE support will be tracked here.
@cenewcombe could you please assign this issue to me? I don't have permissions to self-assign. Thanks!
@eugeneepshteyn tagging you for visibility.
Contributor guide
Assessment
This issue has not been assessed yet.