aboutsummaryrefslogtreecommitdiffstats
path: root/test/regression
diff options
context:
space:
mode:
authorXavier Leroy <xavier.leroy@inria.fr>2015-11-13 15:20:12 +0100
committerXavier Leroy <xavier.leroy@inria.fr>2015-11-13 15:20:12 +0100
commit3f24b362f5ac2aa252ee14f1b793ebbf2f69ff08 (patch)
treefe290a38c7675f965d0ffb67cde20d161ce4444e /test/regression
parent4fad3b8da1227d4f5f7ff7d6cd2dbd2565d06ce4 (diff)
parentd90ba4443294b80bd940daedfdcdc3d4334fdc7c (diff)
downloadcompcert-3f24b362f5ac2aa252ee14f1b793ebbf2f69ff08.tar.gz
compcert-3f24b362f5ac2aa252ee14f1b793ebbf2f69ff08.zip
Merge branch 'master' of ssh://github.com/AbsInt/CompCert
Diffstat (limited to 'test/regression')
-rw-r--r--test/regression/Results/parsing11
-rw-r--r--test/regression/parsing.c81
2 files changed, 90 insertions, 2 deletions
diff --git a/test/regression/Results/parsing b/test/regression/Results/parsing
index e69de29b..bb0cffa4 100644
--- a/test/regression/Results/parsing
+++ b/test/regression/Results/parsing
@@ -0,0 +1,11 @@
+2
+3
+4
+5 4.500000 9.000000
+23
+3
+12 13 14
+4
+12 13 14
+4
+aaabbb
diff --git a/test/regression/parsing.c b/test/regression/parsing.c
index 24b954c1..f8ba2a73 100644
--- a/test/regression/parsing.c
+++ b/test/regression/parsing.c
@@ -7,6 +7,12 @@ T f(T a(T)) {
T b;
return 1;
}
+
+T f1(T(x));
+T f1(T x) {
+ return x;
+}
+
int g(int x) {
T:;
T y;
@@ -36,9 +42,9 @@ struct S {
unsigned T:3;
const T:3;
};
-
+struct S stru;
void i() {
- struct S s;
+ struct S s = stru;
s.T = -1;
if(s.T < 0) printf("ERROR i\n");
}
@@ -96,9 +102,80 @@ void m() {
else printf("ERROR m\n");
}
+int j() {
+ T T;
+}
+
+T k() {
+ { T T; }
+ T t;
+ for(T T; ; );
+ T u;
+}
+
+void krf(a)
+ int a;
+{
+ printf("%d\n", a);
+}
+
+void krg();
+void krg(int a)
+{
+ printf("%d\n", a);
+}
+
+void krh(int);
+void krh(b)
+ T b;
+{
+ printf("%d\n", b);
+}
+
+void kri();
+void kri(b, c)
+ int b;
+ double c;
+{
+ printf("%d %f %f\n", b, c, 2*c);
+}
+
+void krj();
+void krj(a, aa)
+ int a[];
+ void aa(int);
+{
+ printf("%d\n", *a);
+ aa(3);
+}
+
+void aa(int x) {
+ printf("%d\n", x);
+}
+
+void (*krk(a, b, c))(int)
+ int b, a, c;
+{
+ printf("%d %d %d\n", a, b, c);
+ return aa;
+}
+
+int hhh(int());
+
int main () {
f(g);
i();
m();
+
+ krf(2);
+ krg(3);
+ krh(4);
+ kri(5.5, 4.5);
+ int x = 23;
+ krj(&x, aa);
+ krk(12, 13, 14)(4);
+ (*krk(12, 13, 14))(4);
+
+ printf("aaa" "bbb\n");
return 0;
}