diff options
author | Jeffrey A Law <law@cygnus.com> | 1998-07-08 23:40:33 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1998-07-08 17:40:33 -0600 |
commit | 6acaa318872d8ca93eaf8882077e6fa4679e585e (patch) | |
tree | 232f6c952f767d291eb023e54a4a884e9e077845 /gcc | |
parent | 752e74f910cfe9bacbca383e5ea87e7f39c0e00f (diff) | |
download | gcc-6acaa318872d8ca93eaf8882077e6fa4679e585e.zip gcc-6acaa318872d8ca93eaf8882077e6fa4679e585e.tar.gz gcc-6acaa318872d8ca93eaf8882077e6fa4679e585e.tar.bz2 |
* gcc.dg/980709-1.c: New test.
From-SVN: r21018
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/980709-1.c | 20 |
2 files changed, 24 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 5fc5384..4a0a684 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +Thu Jul 9 00:38:51 1998 Jeffrey A Law (law@cygnus.com) + + * gcc.dg/980709-1.c: New test. + Tue Jul 7 13:41:27 1998 Richard Henderson <rth@cygnus.com> * gcc.c-torture/execute/bcp-1.c: New test. diff --git a/gcc/testsuite/gcc.dg/980709-1.c b/gcc/testsuite/gcc.dg/980709-1.c new file mode 100644 index 0000000..a435930 --- /dev/null +++ b/gcc/testsuite/gcc.dg/980709-1.c @@ -0,0 +1,20 @@ +/* { dg-do compile { target i?86-*-* } } */ +/* { dg-options -O2 } */ + +extern __inline__ int test_and_set_bit(int nr, volatile void * addr) +{ + int oldbit; + __asm__ __volatile__( "" + "btsl %2,%1\n\tsbbl %0,%0" + :"=r" (oldbit),"=m" (addr) + :"ir" (nr)); + return oldbit; +} +struct buffer_head { + unsigned long b_state; +}; +extern void lock_buffer(struct buffer_head * bh) +{ + while (test_and_set_bit(2 , &bh->b_state)) + __wait_on_buffer(bh); +} |