]> git.sur5r.net Git - cc65/commitdiff
Added some names to the list of test-suite programs that need the --all-cdecl work... 162/head
authorGreg King <gregdk@users.sf.net>
Thu, 25 Jun 2015 17:57:17 +0000 (13:57 -0400)
committerGreg King <gregdk@users.sf.net>
Thu, 25 Jun 2015 17:57:17 +0000 (13:57 -0400)
Added a work-around for a cc65 bug that made the yacc tests fail.

test/ref/Makefile
test/val/Makefile
test/val/ptrfunc.c

index 3e7a5ad6c38778953e757f6698c3a5ce48ef5fbe..dbe0b0f75dde729154c3963fbf17c2db5ba6425f 100644 (file)
@@ -36,6 +36,20 @@ $(WORKDIR)/%.ref: %.c
        $(CC) $(CFLAGS) $< -o $(WORKDIR)/$*.host
        $(WORKDIR)/$*.host > $@
 
+# Some files have "K & R"-style syntax.  Therefore, some forward
+# function-declarations don't match the later function definitions.
+# Those programs fail when fastcall is used; but, the cdecl calling convention
+# tolerates those conflicts.  Therefore, make their functions default to cdecl.
+#
+$(WORKDIR)/init%prg: CC65FLAGS += -Wc --all-cdecl
+$(WORKDIR)/switch.%rg: CC65FLAGS += -Wc --all-cdecl
+
+# Also, yacc.c does some things that fail when stack operations are optimized.
+# Therefore, don't optimize them.
+#
+$(WORKDIR)/yacc.%rg: CC65FLAGS += -Wc --all-cdecl,--disable-opt,OptStackOps
+$(WORKDIR)/yaccdbg%prg: CC65FLAGS += -Wc --all-cdecl,--disable-opt,OptStackOps
+
 $(WORKDIR)/%.prg: %.c $(WORKDIR)/%.ref
        $(CL65) $(CC65FLAGS) $< -o $@
        $(SIM65) $(SIM65FLAGS) $@ > $(WORKDIR)/$*.out
index cb954a307a98801e3bd7ed1dfc0ebd0efc4e7404..b2a2481b4125c99224dda8eb0f8648062174506e 100644 (file)
@@ -26,12 +26,12 @@ TESTS := $(foreach option,. .o. .os. .osi. .osir. .oi. .oir. .or.,$(SOURCES:%.c=
 
 all: $(TESTS)
 
-# cq71.c and cq84.c have "K & R"-style syntax.  And, some local forward
-# function-declarations don't match the later global function definitions.
+# Some files have "K & R"-style syntax.  Therefore, some forward
+# function-declarations don't match the later function definitions.
 # Those programs fail when fastcall is used; but, the cdecl calling convention
 # tolerates those conflicts.  Therefore, make their functions default to cdecl.
 #
-$(WORKDIR)/cq71%prg $(WORKDIR)/cq84%prg: CC65FLAGS += -Wc --all-cdecl
+$(WORKDIR)/cq4%prg $(WORKDIR)/cq71.%rg $(WORKDIR)/cq81%prg $(WORKDIR)/cq84%prg: CC65FLAGS += -Wc --all-cdecl
 
 $(WORKDIR)/%.prg: %.c
        $(CL65) $(CC65FLAGS) $< -o $@
index e1682507ae80c39fcb27244dd8b0e2c120cb8085..55503e176d1ebe11177d27ab4536b93ff3d82779 100644 (file)
@@ -5,7 +5,8 @@
 */
 
 #include <stdio.h>
-#include <limits.h>
+
+#define NO_IMPLICIT_FUNCPTR_CONV
 
 unsigned char success=0;
 unsigned char failures=0;