xref: /openbsd-src/gnu/usr.bin/gcc/gcc/testsuite/gcc.dg/980709-1.c (revision f2da64fbbbf1b03f09f390ab01267c93dfd77c4c)
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 }
21