DEADSOFTWARE

Программа прерывается если в конструкциях CASE и WITH не выполняется ни одно условие...
[dsw-obn.git] / src / oberon.c
index 59a5c3d5fa7f6f11dc9e65e6b1974f59fca12770..f67d3927dfdb0d72cbd620aeea0f4f606901376b 100644 (file)
@@ -3443,6 +3443,10 @@ oberon_case_statement(oberon_context_t * ctx)
                oberon_assert_token(ctx, ELSE);
                oberon_statement_seq(ctx);
        }
+       else
+       {
+               oberon_generate_trap(ctx, -1);
+       }
 
        oberon_generate_label(ctx, end);
        oberon_assert_token(ctx, END);
@@ -3509,6 +3513,10 @@ oberon_with_statement(oberon_context_t * ctx)
                oberon_assert_token(ctx, ELSE);
                oberon_statement_seq(ctx);
        }
+       else
+       {
+               oberon_generate_trap(ctx, -2);
+       }
 
        oberon_generate_label(ctx, end);
        oberon_assert_token(ctx, END);