aboutsummaryrefslogtreecommitdiff
path: root/tests/xfail
diff options
context:
space:
mode:
Diffstat (limited to 'tests/xfail')
-rw-r--r--tests/xfail/Makefile15
-rw-r--r--tests/xfail/val.c18
2 files changed, 33 insertions, 0 deletions
diff --git a/tests/xfail/Makefile b/tests/xfail/Makefile
new file mode 100644
index 0000000..b38feae
--- /dev/null
+++ b/tests/xfail/Makefile
@@ -0,0 +1,15 @@
+FILES != echo *.c
+TARGETS := $(FILES:%.c=build/%)
+
+all: $(TARGETS)
+
+build/%: %.c ../../ngc1
+ @mkdir -p build
+ @gcc -E $< -o $@.i
+ @(../../ngc1 $@.i > $@.c 2>/dev/null && gcc $@.c -o $@ 2>/dev/null) \
+ && echo "FAIL $@" \
+ || echo "XFAIL $@"
+
+.PHONY: clean
+clean:
+ $(RM) -rf build
diff --git a/tests/xfail/val.c b/tests/xfail/val.c
new file mode 100644
index 0000000..d231a4a
--- /dev/null
+++ b/tests/xfail/val.c
@@ -0,0 +1,18 @@
+#include <stdio.h>
+
+typedef tmpl[](int v){
+ int <>_ok()
+ {
+ return v;
+ }
+};
+
+/* float vs int, should fail */
+typedef inst = tmpl[](20.0);
+
+int main()
+{
+ int ok = inst_ok();
+ if (ok == 20)
+ puts("OK");
+}