Merge from the pain train
[official-gcc.git] / gcc / testsuite / gcc.dg / noncompile / 971104-1.c
blob722b71c784f8079d84d67718035ca7e1d40920e2
1 extern int printf(const char *, ...);
2 typedef unsigned short ushort;
3 struct sembuf {
4 ushort sem_num;
5 short sem_op;
6 short sem_flg;
7 };
8 union semun {
9 int val;
10 struct semid_ds *buf;
11 ushort *array;
12 struct seminfo *__buf;
13 void *__pad;
15 static union semun semctl_arg;
16 static int semid;
17 static void up(int sem){
18 struct sembuf sb;
19 sb.sem_num = (unsigned short) sem;
20 sb.sem_op = 1;
21 sb.sem_flg = 0x1000 ;
22 if(semop(semid, &sb, 1) == -1) error("up failure");
23 if(semctl(semid, sb.sem_num, 12 , semctl_arg) == 0)
24 printf("%s had processes sleeping on it!\n",
25 ({ "MUTEX ", "BARB_SEM 1", "BARB_SEM 2", "CUST_SEM 1",
26 "CUST_SEM 2", "WAIT_SEM 1", "WAIT_SEM 2", "WAIT_SEM 3",
27 "WAIT_SEM 4"} /* { dg-error "parse error|syntax error|expected" } */
28 [( sb.sem_num )]) ); /* { dg-error "expected" } */