New test.
authorJeff Law <law@gcc.gnu.org>
Wed, 5 Nov 1997 08:37:43 +0000 (01:37 -0700)
committerJeff Law <law@gcc.gnu.org>
Wed, 5 Nov 1997 08:37:43 +0000 (01:37 -0700)
From-SVN: r16340

gcc/testsuite/gcc.c-torture/compile/971104-1.c [new file with mode: 0644]

diff --git a/gcc/testsuite/gcc.c-torture/compile/971104-1.c b/gcc/testsuite/gcc.c-torture/compile/971104-1.c
new file mode 100644 (file)
index 0000000..3f0996d
--- /dev/null
@@ -0,0 +1,26 @@
+typedef unsigned short          ushort;
+struct sembuf {
+  ushort  sem_num;         
+  short   sem_op;          
+  short   sem_flg;         
+};
+union semun {
+  int val;                       
+  struct semid_ds *buf;          
+  ushort *array;                 
+  struct seminfo *__buf;         
+  void *__pad;
+};
+static union semun semctl_arg;
+static int semid;
+static void up(int sem){
+  struct sembuf sb;
+  sb.sem_num = (unsigned short) sem;
+  sb.sem_op  = 1;         
+  sb.sem_flg = 0x1000 ;  
+  if(semop(semid, &sb, 1) == -1) error("up failure");
+  if(semctl(semid, sb.sem_num, 12 , semctl_arg) == 0)
+    printf("%s had processes sleeping on it!\n",
+    ({ "MUTEX     ", "BARB_SEM 1", "BARB_SEM 2", "CUST_SEM 1", "CUST_SEM 2", "WA
+IT_SEM 1", "WAIT_SEM 2", "WAIT_SEM 3", "WAIT_SEM 4"} [( sb.sem_num )]) );
+}