summaryrefslogtreecommitdiff
path: root/regress/usr.bin/pcc/cpp
diff options
context:
space:
mode:
Diffstat (limited to 'regress/usr.bin/pcc/cpp')
-rw-r--r--regress/usr.bin/pcc/cpp/Makefile9
-rw-r--r--regress/usr.bin/pcc/cpp/res17
-rw-r--r--regress/usr.bin/pcc/cpp/res226
-rw-r--r--regress/usr.bin/pcc/cpp/res316
-rw-r--r--regress/usr.bin/pcc/cpp/res45
-rw-r--r--regress/usr.bin/pcc/cpp/res54
-rw-r--r--regress/usr.bin/pcc/cpp/res66
-rw-r--r--regress/usr.bin/pcc/cpp/res75
-rw-r--r--regress/usr.bin/pcc/cpp/res88
-rw-r--r--regress/usr.bin/pcc/cpp/res95
-rw-r--r--regress/usr.bin/pcc/cpp/skip001.c3
-rw-r--r--regress/usr.bin/pcc/cpp/skip001.out16
-rw-r--r--regress/usr.bin/pcc/cpp/subdir/include.h1
-rw-r--r--regress/usr.bin/pcc/cpp/test16
-rw-r--r--regress/usr.bin/pcc/cpp/test225
-rw-r--r--regress/usr.bin/pcc/cpp/test315
-rw-r--r--regress/usr.bin/pcc/cpp/test44
-rw-r--r--regress/usr.bin/pcc/cpp/test53
-rw-r--r--regress/usr.bin/pcc/cpp/test65
-rw-r--r--regress/usr.bin/pcc/cpp/test74
-rw-r--r--regress/usr.bin/pcc/cpp/test87
-rw-r--r--regress/usr.bin/pcc/cpp/test94
22 files changed, 184 insertions, 0 deletions
diff --git a/regress/usr.bin/pcc/cpp/Makefile b/regress/usr.bin/pcc/cpp/Makefile
new file mode 100644
index 00000000000..36d74871b02
--- /dev/null
+++ b/regress/usr.bin/pcc/cpp/Makefile
@@ -0,0 +1,9 @@
+# $OpenBSD: Makefile,v 1.1 2007/10/07 18:12:43 otto Exp $
+
+CC=/usr/local/bin/cc
+
+regress:
+ @echo skip001.c
+ ${CC} -E -I ${.CURDIR}/subdir ${.CURDIR}/skip001.c | cmp - ${.CURDIR}/skip001.out
+
+.include <bsd.regress.mk>
diff --git a/regress/usr.bin/pcc/cpp/res1 b/regress/usr.bin/pcc/cpp/res1
new file mode 100644
index 00000000000..c0bb48019f3
--- /dev/null
+++ b/regress/usr.bin/pcc/cpp/res1
@@ -0,0 +1,7 @@
+# 1 "<stdin>"
+
+
+
+
+char p[] = "x ## y";
+
diff --git a/regress/usr.bin/pcc/cpp/res2 b/regress/usr.bin/pcc/cpp/res2
new file mode 100644
index 00000000000..1eb808aac47
--- /dev/null
+++ b/regress/usr.bin/pcc/cpp/res2
@@ -0,0 +1,26 @@
+# 1 "<stdin>"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+f(2 * (y+1)) + f(2 * (f(2 * (z[0])))) % f(2 * (0)) + t (1);
+f(2 * (2+(3,4)-0,1)) | f(2 * (~ 5)) &
+f(2 * (0,1))^m (0,1);
+int i[] = { 1, 23, 4, 5, };
+char c[2][6] = { "hello", "" };
+
+
+
+
+
+
diff --git a/regress/usr.bin/pcc/cpp/res3 b/regress/usr.bin/pcc/cpp/res3
new file mode 100644
index 00000000000..4219319ddff
--- /dev/null
+++ b/regress/usr.bin/pcc/cpp/res3
@@ -0,0 +1,16 @@
+# 1 "<stdin>"
+
+
+
+
+
+
+
+
+
+printf("x" "1" "= %d, x" "2" "= %s", x1, x2);
+fputs(
+"strncmp(\"abc\\0d\", \"abc\", '\\4') == 0" ": @\n", s);
+\#include "vers2.h"
+"hello";
+"hello" ", world"
diff --git a/regress/usr.bin/pcc/cpp/res4 b/regress/usr.bin/pcc/cpp/res4
new file mode 100644
index 00000000000..d7046a01507
--- /dev/null
+++ b/regress/usr.bin/pcc/cpp/res4
@@ -0,0 +1,5 @@
+# 1 "<stdin>"
+
+
+
+(1)
diff --git a/regress/usr.bin/pcc/cpp/res5 b/regress/usr.bin/pcc/cpp/res5
new file mode 100644
index 00000000000..291405dcfee
--- /dev/null
+++ b/regress/usr.bin/pcc/cpp/res5
@@ -0,0 +1,4 @@
+# 1 "<stdin>"
+
+int j[] = { 123, 45, 67, 89,
+ 10, 11, 12, };
diff --git a/regress/usr.bin/pcc/cpp/res6 b/regress/usr.bin/pcc/cpp/res6
new file mode 100644
index 00000000000..0bb0f9a1dbf
--- /dev/null
+++ b/regress/usr.bin/pcc/cpp/res6
@@ -0,0 +1,6 @@
+# 1 "<stdin>"
+
+
+
+
+foo
diff --git a/regress/usr.bin/pcc/cpp/res7 b/regress/usr.bin/pcc/cpp/res7
new file mode 100644
index 00000000000..18c492bda72
--- /dev/null
+++ b/regress/usr.bin/pcc/cpp/res7
@@ -0,0 +1,5 @@
+# 1 "<stdin>"
+
+
+
+a YES
diff --git a/regress/usr.bin/pcc/cpp/res8 b/regress/usr.bin/pcc/cpp/res8
new file mode 100644
index 00000000000..e7de0945f47
--- /dev/null
+++ b/regress/usr.bin/pcc/cpp/res8
@@ -0,0 +1,8 @@
+# 1 "<stdin>"
+
+
+
+
+
+(hej.s_s.s_pos)
+
diff --git a/regress/usr.bin/pcc/cpp/res9 b/regress/usr.bin/pcc/cpp/res9
new file mode 100644
index 00000000000..aea239fc9aa
--- /dev/null
+++ b/regress/usr.bin/pcc/cpp/res9
@@ -0,0 +1,5 @@
+# 1 "<stdin>"
+
+
+
+ao
diff --git a/regress/usr.bin/pcc/cpp/skip001.c b/regress/usr.bin/pcc/cpp/skip001.c
new file mode 100644
index 00000000000..2b6b4c440b5
--- /dev/null
+++ b/regress/usr.bin/pcc/cpp/skip001.c
@@ -0,0 +1,3 @@
+#include "include.h" /* line which is bound to trash
+yytext */
+
diff --git a/regress/usr.bin/pcc/cpp/skip001.out b/regress/usr.bin/pcc/cpp/skip001.out
new file mode 100644
index 00000000000..0fd118a035d
--- /dev/null
+++ b/regress/usr.bin/pcc/cpp/skip001.out
@@ -0,0 +1,16 @@
+# 1 "/usr/src/regress/usr.bin/pcc/cpp/skip001.c"
+
+
+
+
+
+
+
+
+# 1 "/usr/src/regress/usr.bin/pcc/cpp/skip001.c"
+
+
+# 1 "/usr/src/regress/usr.bin/pcc/cpp/subdir/include.h"
+line from include.h
+# 3 "/usr/src/regress/usr.bin/pcc/cpp/skip001.c"
+
diff --git a/regress/usr.bin/pcc/cpp/subdir/include.h b/regress/usr.bin/pcc/cpp/subdir/include.h
new file mode 100644
index 00000000000..da14e47f9f1
--- /dev/null
+++ b/regress/usr.bin/pcc/cpp/subdir/include.h
@@ -0,0 +1 @@
+line from include.h
diff --git a/regress/usr.bin/pcc/cpp/test1 b/regress/usr.bin/pcc/cpp/test1
new file mode 100644
index 00000000000..79a3c5dc5d4
--- /dev/null
+++ b/regress/usr.bin/pcc/cpp/test1
@@ -0,0 +1,6 @@
+#define hash_hash # ## #
+#define mkstr(a) # a
+#define in_between(a) mkstr(a)
+#define join(c, d) in_between(c hash_hash d)
+char p[] = join(x, y); // equivalent to
+ // char p[] = "x ## y";
diff --git a/regress/usr.bin/pcc/cpp/test2 b/regress/usr.bin/pcc/cpp/test2
new file mode 100644
index 00000000000..283d4fbc1f0
--- /dev/null
+++ b/regress/usr.bin/pcc/cpp/test2
@@ -0,0 +1,25 @@
+#define x 3
+#define f(a) f(x * (a))
+#undef x
+#define x 2
+#define g f
+#define z z[0]
+#define h g(~
+#define m(a) a(w)
+#define w 0,1
+#define t(a) a
+#define p() int
+#define q(x) x
+#define r(x,y) x ## y
+#define str(x) # x
+f(y+1) + f(f(z)) % t(t(g)(0) + t)(1);
+g(x+(3,4)-w) | h 5) & m
+(f)^m(m);
+p() i[q()] = { q(1), r(2,3), r(4,), r(,5), r(,) };
+char c[2][6] = { str(hello), str() };
+/*
+ * f(2 * (y+1)) + f(2 * (f(2 * (z[0])))) % f(2 * (0)) + t(1);
+ * f(2 * (2+(3,4)-0,1)) | f(2 * (~ 5)) & f(2 * (0,1))^m(0,1);
+ * int i[] = { 1, 23, 4, 5, };
+ * char c[2][6] = { "hello", "" };
+ */
diff --git a/regress/usr.bin/pcc/cpp/test3 b/regress/usr.bin/pcc/cpp/test3
new file mode 100644
index 00000000000..a659245ecbc
--- /dev/null
+++ b/regress/usr.bin/pcc/cpp/test3
@@ -0,0 +1,15 @@
+#define str(s) # s
+#define xstr(s) str(s)
+#define debug(s, t) printf("x" # s "= %d, x" # t "= %s", \
+ x ## s, x ## t)
+#define INCFILE(n) vers ## n
+#define glue(a, b) a ## b
+#define xglue(a, b) glue(a, b)
+#define HIGHLOW "hello"
+#define LOW LOW ", world"
+debug(1, 2);
+fputs(str(strncmp("abc\0d", "abc", '\4') // this goes away
+ == 0) str(: @\n), s);
+\#include xstr(INCFILE(2).h)
+glue(HIGH, LOW);
+xglue(HIGH, LOW)
diff --git a/regress/usr.bin/pcc/cpp/test4 b/regress/usr.bin/pcc/cpp/test4
new file mode 100644
index 00000000000..0068f3751b8
--- /dev/null
+++ b/regress/usr.bin/pcc/cpp/test4
@@ -0,0 +1,4 @@
+#define foobar 1
+#define C(x,y) x##y
+#define D(x) (C(x,bar))
+D(foo)
diff --git a/regress/usr.bin/pcc/cpp/test5 b/regress/usr.bin/pcc/cpp/test5
new file mode 100644
index 00000000000..3ca0bb6c9c0
--- /dev/null
+++ b/regress/usr.bin/pcc/cpp/test5
@@ -0,0 +1,3 @@
+#define t(x,y,z) x ## y ## z
+int j[] = { t(1,2,3), t(,4,5), t(6,,7), t(8,9,),
+ t(10,,), t(,11,), t(,,12), t(,,) };
diff --git a/regress/usr.bin/pcc/cpp/test6 b/regress/usr.bin/pcc/cpp/test6
new file mode 100644
index 00000000000..28cfddece68
--- /dev/null
+++ b/regress/usr.bin/pcc/cpp/test6
@@ -0,0 +1,5 @@
+#define X(a,b, \
+ c,d) \
+ foo
+
+X(1,2,3,4)
diff --git a/regress/usr.bin/pcc/cpp/test7 b/regress/usr.bin/pcc/cpp/test7
new file mode 100644
index 00000000000..b22b22bbcc9
--- /dev/null
+++ b/regress/usr.bin/pcc/cpp/test7
@@ -0,0 +1,4 @@
+#define a() YES
+#define b() a
+b()
+b()()
diff --git a/regress/usr.bin/pcc/cpp/test8 b/regress/usr.bin/pcc/cpp/test8
new file mode 100644
index 00000000000..c5d2f9a1449
--- /dev/null
+++ b/regress/usr.bin/pcc/cpp/test8
@@ -0,0 +1,7 @@
+// test macro expansion in arguments
+#define s_pos s_s.s_pos
+#define foo(x) (x)
+
+//hej.s_pos
+foo(hej.s_pos)
+
diff --git a/regress/usr.bin/pcc/cpp/test9 b/regress/usr.bin/pcc/cpp/test9
new file mode 100644
index 00000000000..4d4368d5663
--- /dev/null
+++ b/regress/usr.bin/pcc/cpp/test9
@@ -0,0 +1,4 @@
+#define C(a,b,c) a##b##c
+#define N(x,y) C(x,_,y)
+#define A_O ao
+N(A,O)