aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJeffrey A Law <law@cygnus.com>1998-07-08 23:40:33 +0000
committerJeff Law <law@gcc.gnu.org>1998-07-08 17:40:33 -0600
commit6acaa318872d8ca93eaf8882077e6fa4679e585e (patch)
tree232f6c952f767d291eb023e54a4a884e9e077845 /gcc
parent752e74f910cfe9bacbca383e5ea87e7f39c0e00f (diff)
downloadgcc-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/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.dg/980709-1.c20
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);
+}