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