[COMMITTED] a68: avoid pack_soids_in_moid to return unregistered modes
Jose E. Marchesi
jose.marchesi@oracle.com
Sat Dec 27 15:07:34 GMT 2025
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 <jemarch@gnu.org>
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.
---
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(-)
create mode 100644 gcc/testsuite/algol68/execute/pack-soids-in-moid-1.a68
diff --git a/gcc/algol68/a68-moids-misc.cc b/gcc/algol68/a68-moids-misc.cc
index 349c13fd656..cafb04a16ad 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 00000000000..b5857088ef1
--- /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
--
2.30.2
More information about the Algol68
mailing list