| typedef struct st { | |
| int a; | |
| } ST; | |
| int __attribute__((noinline,noclone)) | |
| foo(ST *s, int c) | |
| { | |
| int first = 1; | |
| int count = c; | |
| ST *item = s; | |
| int a = s->a; | |
| int x; | |
| while (count--) | |
| { | |
| x = item->a; | |
| if (first) | |
| first = 0; | |
| else if (x >= a) | |
| return 1; | |
| a = x; | |
| item++; | |
| } | |
| return 0; | |
| } | |
| extern void abort (void); | |
| int main () | |
| { | |
| ST _1[2] = {{2}, {1}}; | |
| if (foo(_1, 2) != 0) | |
| abort (); | |
| return 0; | |
| } |