1141240Snjl/* { dg-do run } */
2141240Snjl/* { dg-options "-O1 -Wno-attributes" } */
3141240Snjl
4141240Snjlextern void abort (void);
5141240Snjl
6141240Snjlstatic void __attribute__((always_inline))
7141240Snjlreverse(int *first, int *last)
8141240Snjl{
9141240Snjl  if (first == last--)
10141240Snjl    return;
11141240Snjl  while (first != last)
12141240Snjl    {
13141240Snjl      int t = *first;
14141240Snjl      *first = *last;
15141240Snjl      *last = t;
16141240Snjl      if (++first == last--)
17141240Snjl        break;
18141240Snjl    }
19141240Snjl}
20141240Snjl
21141240Snjlint main()
22141240Snjl{
23141240Snjl  int seq[] = { 1, 2, 3, 4, 5, 6, 7, 8 };
24141240Snjl
25141240Snjl  reverse(seq, seq + 8);
26141240Snjl  if (seq[3] != 5 || seq[4] != 4)
27141240Snjl    abort ();
28141240Snjl
29141240Snjl  return 0;
30141240Snjl}
31141240Snjl