https://gcc.gnu.org/g:4ac337019ab71bb247fd56ef56d81f1dc0690151
commit r16-6411-g4ac337019ab71bb247fd56ef56d81f1dc0690151 Author: Jose E. Marchesi <[email protected]> Date: Sat Dec 27 16:04:06 2025 +0100 a68: avoid pack_soids_in_moid to return unregistered modes This function fixes the pack_soids_in_moid function so it never returns a mode that has not been registered. Signed-off-by: Jose E. Marchesi <[email protected]> gcc/algol68/ChangeLog * a68-moids-misc.cc (a68_pack_soids_in_moid): Return the result of a68_register_extra_mode. gcc/testsuite/ChangeLog * algol68/execute/pack-soids-in-moid-1.a68: New test. Diff: --- gcc/algol68/a68-moids-misc.cc | 4 ++-- gcc/testsuite/algol68/execute/pack-soids-in-moid-1.a68 | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/gcc/algol68/a68-moids-misc.cc b/gcc/algol68/a68-moids-misc.cc index 349c13fd6565..cafb04a16ad6 100644 --- a/gcc/algol68/a68-moids-misc.cc +++ b/gcc/algol68/a68-moids-misc.cc @@ -280,8 +280,8 @@ a68_pack_soids_in_moid (SOID_T *top_sl, int attribute) *p = t; p = &NEXT (t); } - (void) a68_register_extra_mode (&TOP_MOID (&A68_JOB), x); - return x; + + return a68_register_extra_mode (&TOP_MOID (&A68_JOB), x); } /* Whether P is compatible with Q. */ diff --git a/gcc/testsuite/algol68/execute/pack-soids-in-moid-1.a68 b/gcc/testsuite/algol68/execute/pack-soids-in-moid-1.a68 new file mode 100644 index 000000000000..b5857088ef10 --- /dev/null +++ b/gcc/testsuite/algol68/execute/pack-soids-in-moid-1.a68 @@ -0,0 +1,3 @@ +begin []int lele = (1,2,3); + assert (ELEMS (lele) = ELEMS (lele)) +end
