* gcc.dg/980709-1.c: New test.
authorJeffrey A Law <law@cygnus.com>
Wed, 8 Jul 1998 23:40:33 +0000 (23:40 +0000)
committerJeff Law <law@gcc.gnu.org>
Wed, 8 Jul 1998 23:40:33 +0000 (17:40 -0600)
From-SVN: r21018

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/980709-1.c [new file with mode: 0644]

index 5fc53848a6dee873568f0c4213bf64b3a3ec11c6..4a0a68495180275b2fd8ab975c44d03b27d7b90e 100644 (file)
@@ -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 (file)
index 0000000..a435930
--- /dev/null
@@ -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);
+}