Deleted old testcase.
$(SIM65) $(SIM65FLAGS) $$@ > $(WORKDIR)/limits.$1.out
$(DIFF) $(WORKDIR)/limits.$1.out limits.ref
-# here we check if the right errors are produced
-$(WORKDIR)/goto.$1.$2.prg: goto.c $(DIFF)
- $(if $(QUIET),echo misc/goto.$1.$2.prg)
- $(NOT) $(CL65) -t sim$2 -$1 -o $$@ $$< 2>$(WORKDIR)/goto.$1.out
- $(DIFF) $(WORKDIR)/goto.$1.out goto.ref
-
# the rest are tests that fail currently for one reason or another
$(WORKDIR)/fields.$1.$2.prg: fields.c | $(WORKDIR)
@echo "FIXME: " $$@ "currently will fail."
+++ /dev/null
-#include <stdio.h>
-#define false 0
-#define true (!false)
-
-int main () {
- int var = 3;
- int quit = false;
-
- goto finish;
-
- while (!quit) {
- var += 1;
- {
- if (var % 2) {
- int var2 = 2;
- int var3 = 4;
- goto safe;
- goto unsafe;
- {
- another:
- var2 = 0x5599;
- safe:
- printf ("var2: %d\n", var2);
- }
- } else {
- int var3 = 3;
- int x = 4;
- goto unsafe;
- goto bad;
- unused:
- printf ("var3: %d\n", var3);
- {
- int var = 1;
- bad:
- var++;
- if (var < 4)
- goto bad;
- goto finish;
- }
- unsafe:
- var3 = 4;
- goto another;
- }
-
- {
- int var = 2;
- goto bad;
- }
-
-
- var += 1;
- if (var >= 10)
- goto finish;
- }
- }
-finish:
- return var;
-}
-
-int function () {
- goto end;
-
-end:
- return 0;
-}
+++ /dev/null
-goto.c(34): Error: Goto from line 29 to label 'bad' can result in a trashed stack
-goto.c(40): Error: Goto from line 18 to label 'unsafe' can result in a trashed stack
-goto.c(42): Error: Goto from line 42 to label 'another' can result in a trashed stack
-goto.c(47): Error: Goto from line 47 to label 'bad' can result in a trashed stack
-goto.c(56): Error: Goto from line 38 to label 'finish' can result in a trashed stack
-goto.c(58): Warning: `unused' is defined but never used
--- /dev/null
+#include <stdio.h>
+
+int main () {
+ char a[200] = "xyz";
+ int ctr = 0;
+start:
+ a[ctr] = ctr + 65;
+ goto second;
+
+ {
+ char b[64] = "xxx";
+ first:
+ b[0] = ctr + 97;
+ goto safe;
+ b[0] = 'Z';
+ safe:
+ printf ("%c%c", a[0], b[0]);
+ if (ctr++ > 20)
+ goto end;
+ else
+ goto second;
+ }
+ {
+ char c[100] = "aaa";
+ second:;
+ c[0] = '1';
+ c[99] = '2';
+ goto first;
+ }
+end:
+ a[ctr] = '\n';
+ printf ("\n%s\n", a);
+
+ return 0;
+}