1 struct things_to_sum {
2 int a;
3 int b;
4 int c;
5 };
6
sum_things(struct things_to_sum tts)7 int sum_things(struct things_to_sum tts)
8 {
9 return tts.a + tts.b + tts.c;
10 }
11
main(int argc,char const * argv[])12 int main (int argc, char const *argv[])
13 {
14 struct point_tag {
15 int x;
16 int y;
17 char padding[0];
18 }; //% self.expect("frame variable pt.padding[0]", DATA_TYPES_DISPLAYED_CORRECTLY, substrs = ["pt.padding[0] = "])
19 //% self.expect("frame variable pt.padding[1]", DATA_TYPES_DISPLAYED_CORRECTLY, substrs = ["pt.padding[1] = "])
20 //% self.expect_expr("pt.padding[0]", result_type="char")
21 //% self.expect("image lookup -t point_tag", DATA_TYPES_DISPLAYED_CORRECTLY, substrs = ['padding[]'])
22
23 struct {} empty;
24 //% self.expect("frame variable empty", substrs = ["empty = {}"])
25 //% self.expect("expression -- sizeof(empty)", substrs = ["= 0"])
26
27 struct rect_tag {
28 struct point_tag bottom_left;
29 struct point_tag top_right;
30 };
31 struct point_tag pt = { 2, 3, {} };
32 struct rect_tag rect = {{1, 2, {}}, {3, 4, {}}};
33 struct things_to_sum tts = { 2, 3, 4 };
34
35 int sum = sum_things(tts); //% self.expect_expr("&pt == (struct point_tag*)0", result_value="false")
36 //% self.expect_expr("sum_things(tts)", result_value="9")
37 return 0;
38 }
39