12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- /* { dg-do run } */
- /* { dg-additional-options "-ftree-parallelize-loops=2" } */
- extern void abort (void);
- char *
- foo (int count, char **list)
- {
- char *minaddr = list[0];
- int i;
- for (i = 0; i < count; i++)
- {
- char *addr = list[i];
- if (addr < minaddr)
- minaddr = addr;
- }
- return minaddr;
- }
- char *
- foo2 (int count, char **list)
- {
- char *maxaddr = list[0];
- int i;
- for (i = 0; i < count; i++)
- {
- char *addr = list[i];
- if (addr > maxaddr)
- maxaddr = addr;
- }
- return maxaddr;
- }
- #define N 5
- static void
- init (char **list)
- {
- int i;
- for (i = 0; i < N; ++i)
- list[i] = (char *)&list[i];
- }
- int
- main (void)
- {
- char *list[N];
- char * res;
- init (list);
- res = foo (N, list);
- if (res != (char *)&list[0])
- abort ();
- res = foo2 (N, list);
- if (res != (char *)&list[N-1])
- abort ();
- return 0;
- }
|