mirror of
https://github.com/cc65/cc65.git
synced 2024-06-07 23:29:39 +00:00
test some more possible cases and move test into test/val
This commit is contained in:
parent
d371046ae4
commit
ce6ee1b891
|
@ -58,14 +58,6 @@ $(ISEQUAL): ../isequal.c | $(WORKDIR)
|
||||||
|
|
||||||
define PRG_template
|
define PRG_template
|
||||||
|
|
||||||
# should compile, but gives an error
|
|
||||||
$(WORKDIR)/bug1252.$1.$2.prg: bug1252.c | $(WORKDIR)
|
|
||||||
@echo "FIXME: " $$@ "currently does not compile."
|
|
||||||
$(if $(QUIET),echo misc/bug1252.$1.$2.prg)
|
|
||||||
$(CC65) -t sim$2 -$1 -o $$@ $$< $(NULLERR)
|
|
||||||
$(NOT) $(CA65) -t sim$2 -o $$(@:.prg=.o) $$(@:.prg=.s) $(NULLERR)
|
|
||||||
# $(NOT) $(LD65) -t sim$2 -o $$@ $$(@:.prg=.o) sim$2.lib $(NULLERR)
|
|
||||||
|
|
||||||
# should compile, but gives an error
|
# should compile, but gives an error
|
||||||
$(WORKDIR)/bug1768.$1.$2.prg: bug1768.c | $(WORKDIR)
|
$(WORKDIR)/bug1768.$1.$2.prg: bug1768.c | $(WORKDIR)
|
||||||
@echo "FIXME: " $$@ "currently does not compile."
|
@echo "FIXME: " $$@ "currently does not compile."
|
||||||
|
|
|
@ -1,19 +0,0 @@
|
||||||
|
|
||||||
#include <stdlib.h>
|
|
||||||
|
|
||||||
int main(void)
|
|
||||||
{
|
|
||||||
// this works
|
|
||||||
c_label:
|
|
||||||
asm("inx\n"
|
|
||||||
"bne %g\n",
|
|
||||||
c_label);
|
|
||||||
|
|
||||||
// this does not work
|
|
||||||
c_label2:
|
|
||||||
asm("inx\n"
|
|
||||||
"bne %g \n",
|
|
||||||
c_label2);
|
|
||||||
|
|
||||||
return EXIT_SUCCESS;
|
|
||||||
}
|
|
45
test/val/bug1252.c
Normal file
45
test/val/bug1252.c
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
|
||||||
|
// bug #1252 - inline asm: cc65 chokes on label ref if space/tab follows
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
// first test the recommended way to use labels in inline assembly:
|
||||||
|
|
||||||
|
// this works
|
||||||
|
c_label:
|
||||||
|
asm("inx\n"
|
||||||
|
"bne %g\n",
|
||||||
|
c_label);
|
||||||
|
|
||||||
|
// this does not work
|
||||||
|
c_label2:
|
||||||
|
asm("inx\n"
|
||||||
|
"bne %g \n",
|
||||||
|
c_label2);
|
||||||
|
|
||||||
|
// now the following is from the original bug report. note that using labels
|
||||||
|
// this way only works by chance - the name of the label may clash with
|
||||||
|
// generated labels
|
||||||
|
|
||||||
|
// this works
|
||||||
|
asm("label1: inx\n"
|
||||||
|
"bne label1\n");
|
||||||
|
|
||||||
|
// this does not work
|
||||||
|
asm("label2: inx\n"
|
||||||
|
"bne label2 \n");
|
||||||
|
|
||||||
|
// a variant of the above using local labels.
|
||||||
|
|
||||||
|
// this works
|
||||||
|
asm("@label1: inx\n"
|
||||||
|
"bne @label1\n");
|
||||||
|
|
||||||
|
// this does not work
|
||||||
|
asm("@label2: inx\n"
|
||||||
|
"bne @label2 \n");
|
||||||
|
|
||||||
|
return EXIT_SUCCESS;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user