OSDN Git Service

PR c/10175
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / 980709-1.c
1 /* { dg-do compile { target i?86-*-* } } */
2 /* { dg-options -O2 } */
3
4 extern __inline__ int test_and_set_bit(int nr, volatile void * addr)
5 {
6         int oldbit;
7         __asm__ __volatile__( "" 
8                 "btsl %2,%1\n\tsbbl %0,%0"
9                 :"=r" (oldbit),"=m" (addr)
10                 :"ir" (nr));
11         return oldbit;
12 }
13 struct buffer_head {
14         unsigned long b_state;           
15 };
16 extern void lock_buffer(struct buffer_head * bh)
17 {
18         while (test_and_set_bit(2 , &bh->b_state))
19                 __wait_on_buffer(bh);
20 }