On 7/2/26 8:49 AM, Paul Richard Thomas wrote:
Hello Jerry,This looks OK for both mainline and backporting. I have a question about the error message in the first chunk: + gfc_reduce_init_expr (e); + if (e->expr_type != EXPR_CONSTANT) + { + gfc_error ("STOP code at %L must be a scalar default CHARACTER or " + "INTEGER constant expression", &e->where); + goto cleanup; + } All that has been tested here is that the expression is constant. That it be default character or integer is tested afterwards. Surely then, the message should be: "STOP code at %L must be a scalar constant expression"?
I can agree, I simply kept the original wording. I will make that change and make sure it does not wiggle on the testsuite somewhere.
Thanks, Jerry
Thanks for the patch. Paul On Thu, 2 Jul 2026 at 16:28, Jerry D <[email protected]> wrote:See attached patch. Regression tested on x86_64. OK for mainline? Also since this is fixing a rejects valid, I would like to backport. Regards, Jerry --- Expressions used in stop codes can be functions as long as they resolve to integer or character. PR fortran/126018 gcc/fortran/ChangeLog: * match.cc (gfc_match_stopcode): Adjust the f2008 error check.If the STOP code expr type is unknown, do not error. It will be checked in gfc_resolve_code. * resolve.cc (gfc_resolve_code): Add checks for EXEC_STOP and EXEC_ERROR_STOP. gcc/testsuite/ChangeLog: * gfortran.dg/stop_function_code_1.f90: New test. ---
