]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/testsuite/gcc.dg/pr35616.c
Update copyright years.
[thirdparty/gcc.git] / gcc / testsuite / gcc.dg / pr35616.c
1 /* { dg-do run } */
2 /* { dg-options "-O2" } */
3 typedef void (*listener_fun)(
4 int a,
5 int b,
6 int c);
7
8 struct data_t
9 {
10 int a;
11
12 listener_fun listener;
13
14 int b;
15 int c;
16 int d;
17 };
18
19 extern void abort(void);
20 void function_calling_listener (struct data_t data);
21
22 void function_calling_listener (struct data_t data)
23 {
24 data.listener(data.a, data.c, data.d);
25 }
26
27 void my_listener(int a, int b, int c)
28 {
29 if (a != 42 || b != 44 || c != 45)
30 abort ();
31 }
32
33 int main()
34 {
35 struct data_t d;
36 d.a = 42;
37 d.b = 43;
38 d.c = 44;
39 d.d = 45;
40 d.listener = my_listener;
41 function_calling_listener (d);
42 return 0;
43 }