1 /*
2    20080424-1.c from the execute part of the gcc torture tests.
3  */
4 
5 #include <testfwk.h>
6 
7 #ifdef __SDCC
8 #pragma std_c99
9 #endif
10 
11 /* PR tree-optimization/36008 */
12 
13 #if !defined(__SDCC_mcs51) && !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // Lack of memory
14 int g[48][3][3];
15 
16 void
bar(int x[3][3],int y[3][3])17 bar (int x[3][3], int y[3][3])
18 {
19   static int i;
20   if (x != g[i + 8] || y != g[i++])
21     ASSERT (0);
22 }
23 
24 static inline void
foo(int x[][3][3])25 foo (int x[][3][3])
26 {
27   int i;
28   for (i = 0; i < 8; i++)
29     {
30       int k = i + 8;
31       bar (x[k], x[k - 8]);
32     }
33 }
34 #endif
35 
36 void
testTortureExecute(void)37 testTortureExecute (void)
38 {
39 #if !defined(__SDCC_mcs51) && !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // Lack of memory
40   foo (g);
41   return;
42 #endif
43 }
44 
45