On Sat, Jul 26, 2025 at 09:14:43PM +0800, Yuao Ma wrote:
>  
> +  add_sym_4s ("split", GFC_ISYM_SPLIT, CLASS_IMPURE,
> +           BT_UNKNOWN, 0, GFC_STD_F2023,
> +           gfc_check_split, NULL, gfc_resolve_split,
> +           "string", BT_CHARACTER, dc, REQUIRED, INTENT_IN,
> +           "set", BT_CHARACTER, dc, REQUIRED, INTENT_IN,
> +           "pos", BT_INTEGER, di, REQUIRED, INTENT_INOUT,
> +           "back", BT_LOGICAL, dl, OPTIONAL, INTENT_IN);
> +

This looks incorrect.  SPLIT is a simple subroutine. (Yes,
I know gfortran does not have the simple concept, yet).
See Fortran 2023, 15.8:

   A simple procedure is also a pure procedure and is subject to the
   constraints for pure procedures (15.7). A simple procedure can also
   be an elemental procedure.

Shouldn't you have CLASS_PURE?

The rest of the patch looks Ok.

-- 
Steve

Reply via email to