aboutsummaryrefslogtreecommitdiffstats
path: root/test/CodeGen/Generic/struct.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/CodeGen/Generic/struct.c')
-rw-r--r--test/CodeGen/Generic/struct.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/test/CodeGen/Generic/struct.c b/test/CodeGen/Generic/struct.c
new file mode 100644
index 0000000..c4181bc
--- /dev/null
+++ b/test/CodeGen/Generic/struct.c
@@ -0,0 +1,39 @@
+void printf(char*, ...);
+
+typedef struct params_ {
+ int i1;
+ float f1;
+ double d1;
+ short s1;
+ double d2;
+ char c1;
+ unsigned short s2;
+ float f2;
+ int i2;
+} params;
+
+void print_param(params p) {
+ printf("%d, %f, %f, %d, %f, %c, %d, %f, %d\n",
+ p.i1, p.f1, p.d1, p.s1, p.d2, p.c1, p.s2, p.f2, p.i2);
+}
+
+void print_param_addr(params *p) {
+ printf("%d, %f, %f, %d, %f, %c, %d, %f, %d\n",
+ p->i1, p->f1, p->d1, p->s1, p->d2, p->c1, p->s2, p->f2, p->i2);
+}
+
+int main() {
+ params p;
+ p.i1 = 1;
+ p.f1 = 2.0;
+ p.d1 = 3.0;
+ p.s1 = 4;
+ p.d2 = 5.0;
+ p.c1 = '6';
+ p.s2 = 7;
+ p.f2 = 8.0;
+ p.i2 = 9;
+ print_param(p);
+ print_param_addr(&p);
+ return 0;
+}