]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
a68: fix handling of flex modes in complete_encoded_mode [PR algol68/123006]
authorJose E. Marchesi <jose.marchesi@oracle.com>
Wed, 17 Dec 2025 17:17:26 +0000 (18:17 +0100)
committerJose E. Marchesi <jose.marchesi@oracle.com>
Wed, 17 Dec 2025 17:26:17 +0000 (18:26 +0100)
gcc/algol68/ChangeLog

PR algol68/123006
* a68-imports.cc (complete_encoded_mode): Fix handling of flex
modes.

gcc/algol68/a68-imports.cc

index c628d21f581952cec8d1bbe64a36748cf8356370..2fbe15d4156fc7744d569376c32a427af0f5c217 100644 (file)
@@ -706,7 +706,9 @@ complete_encoded_mode (encoded_modes_map_t &encoded_modes, uint64_t offset)
       /* For recursive declarations.  */
       em->moid = a68_create_mode (em->kind == GA68_MODE_NAME ? REF_SYMBOL : FLEX_SYMBOL,
                                  0, NO_NODE, M_ERROR, NO_PACK);
-      sub = complete_encoded_mode (encoded_modes, em->data.name.sub_offset);
+      sub = complete_encoded_mode (encoded_modes,
+                                  em->kind == GA68_MODE_NAME
+                                  ? em->data.name.sub_offset : em->data.flex.sub_offset);
       if (sub == NO_MOID)
        {
          /* Free em->moid */