]> git.feebdaed.xyz Git - 0xmirror/gcc.git/commitdiff
a68: avoid pack_soids_in_moid to return unregistered modes master
authorJose E. Marchesi <jose.marchesi@oracle.com>
Sat, 27 Dec 2025 15:04:06 +0000 (16:04 +0100)
committerJose E. Marchesi <jose.marchesi@oracle.com>
Sat, 27 Dec 2025 15:04:06 +0000 (16:04 +0100)
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
gcc/testsuite/algol68/execute/pack-soids-in-moid-1.a68 [new file with mode: 0644]

index 349c13fd6565745f04917594da30cf432c2833df..cafb04a16ad6e7bd7ce92719be4c21b2ea0b628a 100644 (file)
@@ -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 (file)
index 0000000..b585708
--- /dev/null
@@ -0,0 +1,3 @@
+begin []int lele = (1,2,3);
+      assert (ELEMS (lele) = ELEMS (lele))
+end