The master branch has been updated by Jerry DeLisle <[email protected]>:
https://gcc.gnu.org/g:b6de3eb243c91b6503d95cc1942f55378ae6cbae
commit r17-2099-gb6de3eb243c91b6503d95cc1942f55378ae6cbae
Author: Jerry DeLisle <[email protected]>
Date: Wed Jul 1 14:03:23 2026 -0700
On 7/2/26 1:18 PM, Jerry D wrote:
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.
---