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

commit r16-6413-ge2ea8d40f159f4826a76dc82aa94be08a622930e
Author: Jose E. Marchesi <[email protected]>
Date:   Sat Dec 27 19:54:20 2025 +0100

    a68: fix error handling in top-down parser
    
    Signed-off-by: Jose E. Marchesi <[email protected]>
    
    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.

Diff:
---
 gcc/algol68/a68-parser-top-down.cc             | 8 ++++----
 gcc/testsuite/algol68/compile/error-loop-1.a68 | 1 +
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/gcc/algol68/a68-parser-top-down.cc 
b/gcc/algol68/a68-parser-top-down.cc
index e4a3bf8c854a..4a79e58217a3 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 000000000000..bc3b2e2ad703
--- /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 "" }

Reply via email to