Hello Iain.
I just installed your fix slightly modified as below. Thanks! >From 600b106d9bd3901bfbf3335124c57b1ad46d149d Mon Sep 17 00:00:00 2001 From: Iain Buclaw <[email protected]> Date: Wed, 4 Feb 2026 00:21:32 +0100 Subject: [PATCH] a68: Fix ICE in a68_extract_indicants At the time a68_extract_indicants executes nothing guarantees that the module text following a module symbol is well formed. gcc/algol68/ChangeLog: * a68-parser-extract.cc (a68_extract_indicants): Don't call FORWARD if skip_module_text returns NO_NODE. gcc/testsuite/ChangeLog: * algol68/compile/error-module-definition-1.a68: New test. * algol68/compile/error-module-definition-2.a68: New test. --- gcc/algol68/a68-parser-extract.cc | 5 ++++- gcc/testsuite/algol68/compile/error-module-definition-1.a68 | 1 + gcc/testsuite/algol68/compile/error-module-definition-2.a68 | 3 +++ 3 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/algol68/compile/error-module-definition-1.a68 create mode 100644 gcc/testsuite/algol68/compile/error-module-definition-2.a68 diff --git a/gcc/algol68/a68-parser-extract.cc b/gcc/algol68/a68-parser-extract.cc index 32a9933bd72..34199595856 100644 --- a/gcc/algol68/a68-parser-extract.cc +++ b/gcc/algol68/a68-parser-extract.cc @@ -416,7 +416,10 @@ a68_extract_indicants (NODE_T *p) else { q = skip_module_text (NEXT (q)); - FORWARD (q); + if (q == NO_NODE) + siga = false; + else + FORWARD (q); } } else diff --git a/gcc/testsuite/algol68/compile/error-module-definition-1.a68 b/gcc/testsuite/algol68/compile/error-module-definition-1.a68 new file mode 100644 index 00000000000..bc763bd682b --- /dev/null +++ b/gcc/testsuite/algol68/compile/error-module-definition-1.a68 @@ -0,0 +1 @@ +module Module = { dg-error "" } diff --git a/gcc/testsuite/algol68/compile/error-module-definition-2.a68 b/gcc/testsuite/algol68/compile/error-module-definition-2.a68 new file mode 100644 index 00000000000..d2ad87b5d6c --- /dev/null +++ b/gcc/testsuite/algol68/compile/error-module-definition-2.a68 @@ -0,0 +1,3 @@ +module Module = { dg-error "" } +begin +end -- 2.39.5
