1 /* { dg-do run } */
2 /* { dg-options "-O2 -foptimize-sibling-calls" } */
3 
4 typedef struct {
5   int data[4];
6 } arr16_t;
7 
8 int result = 0;
9 
func2(int i,int j,arr16_t arr)10 void func2(int i, int j, arr16_t arr)
11 {
12   result = (arr.data[0] != 1
13 	    || arr.data[1] != 2
14 	    || arr.data[2] != 3
15 	    || arr.data[3] != 4);
16 }
17 
func1(int i,int j,int k,arr16_t a)18 void func1(int i, int j, int k, arr16_t a)
19 {
20   func2(i, j, a);
21 }
22 
main(int argc,const char * argv[])23 int main(int argc, const char *argv[])
24 {
25   arr16_t arr = {{1, 2, 3, 4}};
26 
27   func1(0, 0, 0, arr);
28   return result;
29 }
30 
31