| /* { dg-do compile } */ | |
| /* { dg-additional-options "-O3" } */ | |
| struct A | |
| { | |
| int m_fn1 (); | |
| short *m_fn2 (); | |
| }; | |
| struct B | |
| { | |
| void *fC; | |
| }; | |
| int a, b; | |
| unsigned char i; | |
| void fn1 (unsigned char *p1, A &p2) | |
| { | |
| int c = p2.m_fn1 (); | |
| for (int d = 0; c; d++) | |
| { | |
| short *e = p2.m_fn2 (); | |
| unsigned char *f = &p1[0]; | |
| for (int g = 0; g < a; g++) | |
| { | |
| int h = e[0]; | |
| b += h * f[g]; | |
| } | |
| } | |
| } | |
| void fn2 (A &p1, A &p2, B &p3) | |
| { | |
| int j = p2.m_fn1 (); | |
| for (int k = 0; j; k++) | |
| if (0) | |
| ; | |
| else | |
| fn1 (&i, p1); | |
| if (p3.fC) | |
| ; | |
| else | |
| ; | |
| } |