From e2ea8d40f159f4826a76dc82aa94be08a622930e Mon Sep 17 00:00:00 2001 From: "Jose E. Marchesi" Date: Sat, 27 Dec 2025 19:54:20 +0100 Subject: [PATCH] a68: fix error handling in top-down parser Signed-off-by: Jose E. Marchesi gcc/algol68/ChangeLog * a68-parser-top-down.cc (a68_top_down_parser): Stop parsing after longjump. gcc/testsuite/ChangeLog * algol68/compile/error-loop-1.a68: New test. --- gcc/algol68/a68-parser-top-down.cc | 8 ++++---- gcc/testsuite/algol68/compile/error-loop-1.a68 | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) create mode 100644 gcc/testsuite/algol68/compile/error-loop-1.a68 diff --git a/gcc/algol68/a68-parser-top-down.cc b/gcc/algol68/a68-parser-top-down.cc index e4a3bf8c854..4a79e58217a 100644 --- a/gcc/algol68/a68-parser-top-down.cc +++ b/gcc/algol68/a68-parser-top-down.cc @@ -891,9 +891,9 @@ a68_top_down_parser (NODE_T *p) (void) top_down_prelude_packet (p); else (void) top_down_particular_program (p); - } - top_down_loops (p); - top_down_formats (p); - top_down_access (p); + top_down_loops (p); + top_down_formats (p); + top_down_access (p); + } } diff --git a/gcc/testsuite/algol68/compile/error-loop-1.a68 b/gcc/testsuite/algol68/compile/error-loop-1.a68 new file mode 100644 index 00000000000..bc3b2e2ad70 --- /dev/null +++ b/gcc/testsuite/algol68/compile/error-loop-1.a68 @@ -0,0 +1 @@ +from i from 1 to 10 do skip od { dg-error "" } -- 2.47.3