aboutsummaryrefslogtreecommitdiff
path: root/tinycc/tests/tests2/109_float_struct_calling.c
blob: 90fc045b5ad37903ef6866bff455a8d5c91c2d18 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>

/* This test used to fail on x86_64 on linux with sse registers */

struct Point {
   float x;
   float y;
};

struct Rect {
   struct Point top_left;
   struct Point size;
};

float foo(struct Point p, struct Rect r) {
   return r.size.x;
}

int main(int argc, char **argv) {
   struct Point p = {1, 2};
   struct Rect r = {{3, 4}, {5, 6}};
   printf("%f\n", foo(p, r));
   return 0;
}