1/* { dg-do compile } */
2/* { dg-options -O2 } */
3
4extern __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}
13struct buffer_head {
14	unsigned long b_state;
15};
16extern void lock_buffer(struct buffer_head * bh)
17{
18	while (test_and_set_bit(2 , &bh->b_state))
19		__wait_on_buffer(bh);
20}
21