https://gcc.gnu.org/g:c504ab2de5ade6de24bf32bd56c9b2bfe8546e95

commit r16-6224-gc504ab2de5ade6de24bf32bd56c9b2bfe8546e95
Author: Jose E. Marchesi <[email protected]>
Date:   Wed Dec 17 18:17:26 2025 +0100

    a68: fix handling of flex modes in complete_encoded_mode [PR algol68/123006]
    
    gcc/algol68/ChangeLog
    
            PR algol68/123006
            * a68-imports.cc (complete_encoded_mode): Fix handling of flex
            modes.

Diff:
---
 gcc/algol68/a68-imports.cc | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/gcc/algol68/a68-imports.cc b/gcc/algol68/a68-imports.cc
index c628d21f5819..2fbe15d4156f 100644
--- a/gcc/algol68/a68-imports.cc
+++ b/gcc/algol68/a68-imports.cc
@@ -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 */

Reply via email to