aboutsummaryrefslogtreecommitdiffstats
path: root/test/regression/struct5.c
diff options
context:
space:
mode:
authorxleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2010-03-03 10:22:27 +0000
committerxleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2010-03-03 10:22:27 +0000
commit891377ce1962cdb31357d6580d6546ec22df2b4f (patch)
tree4ff7c38749cc7a4c1af411c5aa3eb7225c4ae6a1 /test/regression/struct5.c
parent018edf2d81bf94197892cf1df221f7eeac1f96f6 (diff)
downloadcompcert-kvx-891377ce1962cdb31357d6580d6546ec22df2b4f.tar.gz
compcert-kvx-891377ce1962cdb31357d6580d6546ec22df2b4f.zip
Switching to the new C parser/elaborator/simplifier
git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@1269 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e
Diffstat (limited to 'test/regression/struct5.c')
-rw-r--r--test/regression/struct5.c43
1 files changed, 43 insertions, 0 deletions
diff --git a/test/regression/struct5.c b/test/regression/struct5.c
new file mode 100644
index 00000000..13a1aa5c
--- /dev/null
+++ b/test/regression/struct5.c
@@ -0,0 +1,43 @@
+typedef struct HPointStruct
+{
+ double x;
+ double y;
+ double z;
+ double w;
+}HPoint;
+
+typedef struct ObjPointStruct
+{
+ double x;
+ double y;
+ double z;
+ double tx;
+ double ty;
+ double tz;
+}ObjPoint;
+
+HPoint PointToHPoint(ObjPoint P);
+
+HPoint PointToHPoint(ObjPoint P)
+{
+ HPoint res;
+ res.x = P.x;
+ res.y = P.y;
+ res.z = P.z;
+ res.w = 1;
+ return res;
+}
+
+double test1(HPoint (*f)(ObjPoint), double x)
+{
+ ObjPoint P;
+ HPoint HP;
+ P.x = x;
+ HP = f(P);
+ return HP.x;
+}
+
+double test2(double x)
+{
+ return test1(PointToHPoint, x);
+}