1extern int __VERIFIER_nondet_int(void);
2
3
4
5#line 2 "libacc.c"
6struct JoinPoint {
7 void **(*fp)(struct JoinPoint * ) ;
8 void **args ;
9 int argsCount ;
10 char const **argsType ;
11 void *(*arg)(int , struct JoinPoint * ) ;
12 char const *(*argType)(int , struct JoinPoint * ) ;
13 void **retValue ;
14 char const *retType ;
15 char const *funcName ;
16 char const *targetName ;
17 char const *fileName ;
18 char const *kind ;
19 void *excep_return ;
20};
21#line 18 "libacc.c"
22struct __UTAC__CFLOW_FUNC {
23 int (*func)(int , int ) ;
24 int val ;
25 struct __UTAC__CFLOW_FUNC *next ;
26};
27#line 18 "libacc.c"
28struct __UTAC__EXCEPTION {
29 void *jumpbuf ;
30 unsigned long long prtValue ;
31 int pops ;
32 struct __UTAC__CFLOW_FUNC *cflowfuncs ;
33};
34#line 211 "/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h"
35typedef unsigned long size_t;
36#line 76 "libacc.c"
37struct __ACC__ERR {
38 void *v ;
39 struct __ACC__ERR *next ;
40};
41#line 1 "featureselect.o"
42#pragma merger(0,"featureselect.i","")
43#line 9 "featureselect.h"
44int select_one(void) ;
45#line 11
46void select_features(void) ;
47#line 13
48void select_helpers(void) ;
49#line 15
50int valid_product(void) ;
51#line 8 "featureselect.c"
52int select_one(void)
53{ int retValue_acc ;
54 int choice = __VERIFIER_nondet_int();
55
56 {
57#line 63 "featureselect.c"
58 retValue_acc = choice;
59#line 65
60 return (retValue_acc);
61#line 72
62 return (retValue_acc);
63}
64}
65#line 14 "featureselect.c"
66void select_features(void)
67{
68
69 {
70#line 94 "featureselect.c"
71 return;
72}
73}
74#line 20 "featureselect.c"
75void select_helpers(void)
76{
77
78 {
79#line 112 "featureselect.c"
80 return;
81}
82}
83#line 25 "featureselect.c"
84int valid_product(void)
85{ int retValue_acc ;
86
87 {
88#line 130 "featureselect.c"
89 retValue_acc = 1;
90#line 132
91 return (retValue_acc);
92#line 139
93 return (retValue_acc);
94}
95}
96#line 1 "scenario.o"
97#pragma merger(0,"scenario.i","")
98#line 2 "scenario.c"
99void bigMacCall(void) ;
100#line 3
101void cleanup(void) ;
102#line 1 "scenario.c"
103void test(void)
104{
105
106 {
107 {
108#line 2
109 bigMacCall();
110#line 3
111 cleanup();
112 }
113#line 53 "scenario.c"
114 return;
115}
116}
117#line 1 "Specification2_spec.o"
118#pragma merger(0,"Specification2_spec.i","")
119#line 4 "wsllib.h"
120void __automaton_fail(void) ;
121#line 38 "Elevator.h"
122int areDoorsOpen(void) ;
123#line 40
124int getCurrentFloorID(void) ;
125#line 45 "Elevator.h"
126int weight = 0;
127#line 47 "Elevator.h"
128int maximumWeight = 100;
129#line 7 "Specification2_spec.c"
130int floorButtons_spc2_0 ;
131#line 8 "Specification2_spec.c"
132int floorButtons_spc2_1 ;
133#line 9 "Specification2_spec.c"
134int floorButtons_spc2_2 ;
135#line 10 "Specification2_spec.c"
136int floorButtons_spc2_3 ;
137#line 11 "Specification2_spec.c"
138int floorButtons_spc2_4 ;
139#line 15 "Specification2_spec.c"
140__inline void __utac_acc__Specification2_spec__1(void)
141{
142
143 {
144#line 17
145 floorButtons_spc2_0 = 0;
146#line 18
147 floorButtons_spc2_1 = 0;
148#line 19
149 floorButtons_spc2_2 = 0;
150#line 20
151 floorButtons_spc2_3 = 0;
152#line 21
153 floorButtons_spc2_4 = 0;
154#line 21
155 return;
156}
157}
158#line 25 "Specification2_spec.c"
159__inline void __utac_acc__Specification2_spec__2(int floor )
160{
161
162 {
163#line 33
164 if (floor == 0) {
165#line 34
166 floorButtons_spc2_0 = 1;
167 } else {
168#line 35
169 if (floor == 1) {
170#line 36
171 floorButtons_spc2_1 = 1;
172 } else {
173#line 37
174 if (floor == 2) {
175#line 38
176 floorButtons_spc2_2 = 1;
177 } else {
178#line 39
179 if (floor == 3) {
180#line 40
181 floorButtons_spc2_3 = 1;
182 } else {
183#line 41
184 if (floor == 4) {
185#line 42
186 floorButtons_spc2_4 = 1;
187 } else {
188
189 }
190 }
191 }
192 }
193 }
194#line 42
195 return;
196}
197}
198#line 35 "Specification2_spec.c"
199__inline void __utac_acc__Specification2_spec__3(void)
200{ int floor ;
201 int tmp ;
202 int tmp___0 ;
203 int tmp___1 ;
204 int tmp___2 ;
205 int tmp___3 ;
206 int tmp___4 ;
207
208 {
209 {
210#line 37
211 tmp = getCurrentFloorID();
212#line 37
213 floor = tmp;
214 }
215#line 38
216 if (floor == 0) {
217#line 38
218 if (floorButtons_spc2_0) {
219 {
220#line 38
221 tmp___4 = areDoorsOpen();
222 }
223#line 38
224 if (tmp___4) {
225#line 39
226 floorButtons_spc2_0 = 0;
227 } else {
228 goto _L___6;
229 }
230 } else {
231 goto _L___6;
232 }
233 } else {
234 _L___6:
235#line 40
236 if (floor == 1) {
237#line 40
238 if (floorButtons_spc2_1) {
239 {
240#line 40
241 tmp___3 = areDoorsOpen();
242 }
243#line 40
244 if (tmp___3) {
245#line 41
246 floorButtons_spc2_1 = 0;
247 } else {
248 goto _L___4;
249 }
250 } else {
251 goto _L___4;
252 }
253 } else {
254 _L___4:
255#line 42
256 if (floor == 2) {
257#line 42
258 if (floorButtons_spc2_2) {
259 {
260#line 42
261 tmp___2 = areDoorsOpen();
262 }
263#line 42
264 if (tmp___2) {
265#line 43
266 floorButtons_spc2_2 = 0;
267 } else {
268 goto _L___2;
269 }
270 } else {
271 goto _L___2;
272 }
273 } else {
274 _L___2:
275#line 44
276 if (floor == 3) {
277#line 44
278 if (floorButtons_spc2_3) {
279 {
280#line 44
281 tmp___1 = areDoorsOpen();
282 }
283#line 44
284 if (tmp___1) {
285#line 45
286 floorButtons_spc2_3 = 0;
287 } else {
288 goto _L___0;
289 }
290 } else {
291 goto _L___0;
292 }
293 } else {
294 _L___0:
295#line 46
296 if (floor == 4) {
297#line 46
298 if (floorButtons_spc2_4) {
299 {
300#line 46
301 tmp___0 = areDoorsOpen();
302 }
303#line 46
304 if (tmp___0) {
305#line 47
306 floorButtons_spc2_4 = 0;
307 } else {
308
309 }
310 } else {
311
312 }
313 } else {
314
315 }
316 }
317 }
318 }
319 }
320#line 47
321 return;
322}
323}
324#line 52 "Specification2_spec.c"
325__inline void __utac_acc__Specification2_spec__4(void)
326{
327
328 {
329#line 60
330 if (floorButtons_spc2_0) {
331 {
332#line 61
333 __automaton_fail();
334 }
335 } else {
336#line 62
337 if (floorButtons_spc2_1) {
338 {
339#line 63
340 __automaton_fail();
341 }
342 } else {
343#line 64
344 if (floorButtons_spc2_2) {
345 {
346#line 65
347 __automaton_fail();
348 }
349 } else {
350#line 66
351 if (floorButtons_spc2_3) {
352 {
353#line 67
354 __automaton_fail();
355 }
356 } else {
357#line 68
358 if (floorButtons_spc2_4) {
359 {
360#line 69
361 __automaton_fail();
362 }
363 } else {
364
365 }
366 }
367 }
368 }
369 }
370#line 69
371 return;
372}
373}
374#line 1 "Elevator.o"
375#pragma merger(0,"Elevator.i","")
376#line 359 "/usr/include/stdio.h"
377extern int printf(char const * __restrict __format , ...) ;
378#line 10 "Person.h"
379int getWeight(int person ) ;
380#line 14
381int getDestination(int person ) ;
382#line 16
383void enterElevator(int p ) ;
384#line 12 "Floor.h"
385int isFloorCalling(int floorID ) ;
386#line 14
387void resetCallOnFloor(int floorID ) ;
388#line 18
389int isPersonOnFloor(int person , int floor ) ;
390#line 22
391void removePersonFromFloor(int person , int floor ) ;
392#line 24
393int isTopFloor(int floorID ) ;
394#line 28
395void initFloors(void) ;
396#line 20 "Elevator.h"
397void timeShift(void) ;
398#line 22
399int isBlocked(void) ;
400#line 24
401void printState(void) ;
402#line 26
403int isEmpty(void) ;
404#line 28
405int isAnyLiftButtonPressed(void) ;
406#line 30
407int buttonForFloorIsPressed(int floorID ) ;
408#line 33
409void initTopDown(void) ;
410#line 35
411void initBottomUp(void) ;
412#line 42
413int isIdle(void) ;
414#line 16 "Elevator.c"
415int currentHeading = 1;
416#line 18 "Elevator.c"
417int currentFloorID = 0;
418#line 20 "Elevator.c"
419int persons_0 ;
420#line 22 "Elevator.c"
421int persons_1 ;
422#line 24 "Elevator.c"
423int persons_2 ;
424#line 26 "Elevator.c"
425int persons_3 ;
426#line 28 "Elevator.c"
427int persons_4 ;
428#line 30 "Elevator.c"
429int persons_5 ;
430#line 33 "Elevator.c"
431int doorState = 1;
432#line 35 "Elevator.c"
433int floorButtons_0 ;
434#line 37 "Elevator.c"
435int floorButtons_1 ;
436#line 39 "Elevator.c"
437int floorButtons_2 ;
438#line 41 "Elevator.c"
439int floorButtons_3 ;
440#line 43 "Elevator.c"
441int floorButtons_4 ;
442#line 51 "Elevator.c"
443void initTopDown(void)
444{
445
446 {
447 {
448#line 52
449 currentFloorID = 4;
450#line 53
451 currentHeading = 0;
452#line 54
453 floorButtons_0 = 0;
454#line 55
455 floorButtons_1 = 0;
456#line 56
457 floorButtons_2 = 0;
458#line 57
459 floorButtons_3 = 0;
460#line 58
461 floorButtons_4 = 0;
462#line 59
463 persons_0 = 0;
464#line 60
465 persons_1 = 0;
466#line 61
467 persons_2 = 0;
468#line 62
469 persons_3 = 0;
470#line 63
471 persons_4 = 0;
472#line 64
473 persons_5 = 0;
474#line 65
475 initFloors();
476 }
477#line 1075 "Elevator.c"
478 return;
479}
480}
481#line 68 "Elevator.c"
482void initBottomUp(void)
483{
484
485 {
486 {
487#line 69
488 currentFloorID = 0;
489#line 70
490 currentHeading = 1;
491#line 71
492 floorButtons_0 = 0;
493#line 72
494 floorButtons_1 = 0;
495#line 73
496 floorButtons_2 = 0;
497#line 74
498 floorButtons_3 = 0;
499#line 75
500 floorButtons_4 = 0;
501#line 76
502 persons_0 = 0;
503#line 77
504 persons_1 = 0;
505#line 78
506 persons_2 = 0;
507#line 79
508 persons_3 = 0;
509#line 80
510 persons_4 = 0;
511#line 81
512 persons_5 = 0;
513#line 82
514 initFloors();
515 }
516#line 1121 "Elevator.c"
517 return;
518}
519}
520#line 86 "Elevator.c"
521int isBlocked(void)
522{ int retValue_acc ;
523
524 {
525#line 1139 "Elevator.c"
526 retValue_acc = 0;
527#line 1141
528 return (retValue_acc);
529#line 1148
530 return (retValue_acc);
531}
532}
533#line 91 "Elevator.c"
534void enterElevator__wrappee__base(int p )
535{
536
537 {
538#line 100
539 if (p == 0) {
540#line 101
541 persons_0 = 1;
542 } else {
543#line 102
544 if (p == 1) {
545#line 103
546 persons_1 = 1;
547 } else {
548#line 104
549 if (p == 2) {
550#line 105
551 persons_2 = 1;
552 } else {
553#line 106
554 if (p == 3) {
555#line 107
556 persons_3 = 1;
557 } else {
558#line 108
559 if (p == 4) {
560#line 109
561 persons_4 = 1;
562 } else {
563#line 110
564 if (p == 5) {
565#line 111
566 persons_5 = 1;
567 } else {
568
569 }
570 }
571 }
572 }
573 }
574 }
575#line 1183 "Elevator.c"
576 return;
577}
578}
579#line 102 "Elevator.c"
580void enterElevator(int p )
581{ int tmp ;
582
583 {
584 {
585#line 103
586 enterElevator__wrappee__base(p);
587#line 104
588 tmp = getWeight(p);
589#line 104
590 weight = weight + tmp;
591 }
592#line 1205 "Elevator.c"
593 return;
594}
595}
596#line 107 "Elevator.c"
597void leaveElevator__wrappee__base(int p )
598{
599
600 {
601#line 115
602 if (p == 0) {
603#line 116
604 persons_0 = 0;
605 } else {
606#line 117
607 if (p == 1) {
608#line 118
609 persons_1 = 0;
610 } else {
611#line 119
612 if (p == 2) {
613#line 120
614 persons_2 = 0;
615 } else {
616#line 121
617 if (p == 3) {
618#line 122
619 persons_3 = 0;
620 } else {
621#line 123
622 if (p == 4) {
623#line 124
624 persons_4 = 0;
625 } else {
626#line 125
627 if (p == 5) {
628#line 126
629 persons_5 = 0;
630 } else {
631
632 }
633 }
634 }
635 }
636 }
637 }
638#line 1236 "Elevator.c"
639 return;
640}
641}
642#line 117 "Elevator.c"
643void leaveElevator__wrappee__weight(int p )
644{ int tmp ;
645
646 {
647 {
648#line 118
649 leaveElevator__wrappee__base(p);
650#line 119
651 tmp = getWeight(p);
652#line 119
653 weight = weight - tmp;
654 }
655#line 1258 "Elevator.c"
656 return;
657}
658}
659#line 123 "Elevator.c"
660void leaveElevator(int p )
661{ int tmp ;
662
663 {
664 {
665#line 124
666 leaveElevator__wrappee__weight(p);
667#line 126
668 tmp = isEmpty();
669 }
670#line 126
671 if (tmp) {
672#line 127
673 floorButtons_0 = 0;
674#line 128
675 floorButtons_1 = 0;
676#line 129
677 floorButtons_2 = 0;
678#line 130
679 floorButtons_3 = 0;
680#line 131
681 floorButtons_4 = 0;
682 } else {
683
684 }
685#line 1291 "Elevator.c"
686 return;
687}
688}
689#line 135 "Elevator.c"
690void pressInLiftFloorButton(int floorID )
691{ int __utac__ad__arg1 ;
692
693 {
694 {
695#line 1304 "Elevator.c"
696 __utac__ad__arg1 = floorID;
697#line 1305
698 __utac_acc__Specification2_spec__2(__utac__ad__arg1);
699 }
700#line 141
701 if (floorID == 0) {
702#line 142
703 floorButtons_0 = 1;
704 } else {
705#line 143
706 if (floorID == 1) {
707#line 144
708 floorButtons_1 = 1;
709 } else {
710#line 145
711 if (floorID == 2) {
712#line 146
713 floorButtons_2 = 1;
714 } else {
715#line 147
716 if (floorID == 3) {
717#line 148
718 floorButtons_3 = 1;
719 } else {
720#line 149
721 if (floorID == 4) {
722#line 150 "Elevator.c"
723 floorButtons_4 = 1;
724 } else {
725
726 }
727 }
728 }
729 }
730 }
731#line 1329 "Elevator.c"
732 return;
733}
734}
735#line 143 "Elevator.c"
736void resetFloorButton(int floorID )
737{
738
739 {
740#line 149
741 if (floorID == 0) {
742#line 150
743 floorButtons_0 = 0;
744 } else {
745#line 151
746 if (floorID == 1) {
747#line 152
748 floorButtons_1 = 0;
749 } else {
750#line 153
751 if (floorID == 2) {
752#line 154
753 floorButtons_2 = 0;
754 } else {
755#line 155
756 if (floorID == 3) {
757#line 156
758 floorButtons_3 = 0;
759 } else {
760#line 157
761 if (floorID == 4) {
762#line 158
763 floorButtons_4 = 0;
764 } else {
765
766 }
767 }
768 }
769 }
770 }
771#line 1358 "Elevator.c"
772 return;
773}
774}
775#line 151 "Elevator.c"
776int getCurrentFloorID(void)
777{ int retValue_acc ;
778
779 {
780#line 1376 "Elevator.c"
781 retValue_acc = currentFloorID;
782#line 1378
783 return (retValue_acc);
784#line 1385
785 return (retValue_acc);
786}
787}
788#line 155 "Elevator.c"
789int areDoorsOpen(void)
790{ int retValue_acc ;
791
792 {
793#line 1407 "Elevator.c"
794 retValue_acc = doorState;
795#line 1409
796 return (retValue_acc);
797#line 1416
798 return (retValue_acc);
799}
800}
801#line 159 "Elevator.c"
802int buttonForFloorIsPressed(int floorID )
803{ int retValue_acc ;
804
805 {
806#line 165 "Elevator.c"
807 if (floorID == 0) {
808#line 1439
809 retValue_acc = floorButtons_0;
810#line 1441
811 return (retValue_acc);
812 } else {
813#line 1443
814 if (floorID == 1) {
815#line 1446
816 retValue_acc = floorButtons_1;
817#line 1448
818 return (retValue_acc);
819 } else {
820#line 1450
821 if (floorID == 2) {
822#line 1453
823 retValue_acc = floorButtons_2;
824#line 1455
825 return (retValue_acc);
826 } else {
827#line 1457
828 if (floorID == 3) {
829#line 1460
830 retValue_acc = floorButtons_3;
831#line 1462
832 return (retValue_acc);
833 } else {
834#line 1464
835 if (floorID == 4) {
836#line 1467
837 retValue_acc = floorButtons_4;
838#line 1469
839 return (retValue_acc);
840 } else {
841#line 1473 "Elevator.c"
842 retValue_acc = 0;
843#line 1475
844 return (retValue_acc);
845 }
846 }
847 }
848 }
849 }
850#line 1482 "Elevator.c"
851 return (retValue_acc);
852}
853}
854#line 168 "Elevator.c"
855int getCurrentHeading(void)
856{ int retValue_acc ;
857
858 {
859#line 1504 "Elevator.c"
860 retValue_acc = currentHeading;
861#line 1506
862 return (retValue_acc);
863#line 1513
864 return (retValue_acc);
865}
866}
867#line 172 "Elevator.c"
868int isEmpty(void)
869{ int retValue_acc ;
870
871 {
872#line 179 "Elevator.c"
873 if (persons_0 == 1) {
874#line 1536
875 retValue_acc = 0;
876#line 1538
877 return (retValue_acc);
878 } else {
879#line 1540
880 if (persons_1 == 1) {
881#line 1543
882 retValue_acc = 0;
883#line 1545
884 return (retValue_acc);
885 } else {
886#line 1547
887 if (persons_2 == 1) {
888#line 1550
889 retValue_acc = 0;
890#line 1552
891 return (retValue_acc);
892 } else {
893#line 1554
894 if (persons_3 == 1) {
895#line 1557
896 retValue_acc = 0;
897#line 1559
898 return (retValue_acc);
899 } else {
900#line 1561
901 if (persons_4 == 1) {
902#line 1564
903 retValue_acc = 0;
904#line 1566
905 return (retValue_acc);
906 } else {
907#line 1568
908 if (persons_5 == 1) {
909#line 1571 "Elevator.c"
910 retValue_acc = 0;
911#line 1573
912 return (retValue_acc);
913 } else {
914
915 }
916 }
917 }
918 }
919 }
920 }
921#line 1578 "Elevator.c"
922 retValue_acc = 1;
923#line 1580
924 return (retValue_acc);
925#line 1587
926 return (retValue_acc);
927}
928}
929#line 183 "Elevator.c"
930int anyStopRequested(void)
931{ int retValue_acc ;
932 int tmp ;
933 int tmp___0 ;
934 int tmp___1 ;
935 int tmp___2 ;
936 int tmp___3 ;
937
938 {
939 {
940#line 194
941 tmp___3 = isFloorCalling(0);
942 }
943#line 194 "Elevator.c"
944 if (tmp___3) {
945#line 1610
946 retValue_acc = 1;
947#line 1612
948 return (retValue_acc);
949 } else {
950#line 1614
951 if (floorButtons_0) {
952#line 1617
953 retValue_acc = 1;
954#line 1619
955 return (retValue_acc);
956 } else {
957 {
958#line 1621 "Elevator.c"
959 tmp___2 = isFloorCalling(1);
960 }
961#line 1621
962 if (tmp___2) {
963#line 1624
964 retValue_acc = 1;
965#line 1626
966 return (retValue_acc);
967 } else {
968#line 1628
969 if (floorButtons_1) {
970#line 1631
971 retValue_acc = 1;
972#line 1633
973 return (retValue_acc);
974 } else {
975 {
976#line 1635
977 tmp___1 = isFloorCalling(2);
978 }
979#line 1635
980 if (tmp___1) {
981#line 1638
982 retValue_acc = 1;
983#line 1640
984 return (retValue_acc);
985 } else {
986#line 1642
987 if (floorButtons_2) {
988#line 1645
989 retValue_acc = 1;
990#line 1647
991 return (retValue_acc);
992 } else {
993 {
994#line 1649
995 tmp___0 = isFloorCalling(3);
996 }
997#line 1649
998 if (tmp___0) {
999#line 1652
1000 retValue_acc = 1;
1001#line 1654
1002 return (retValue_acc);
1003 } else {
1004#line 1656
1005 if (floorButtons_3) {
1006#line 1659
1007 retValue_acc = 1;
1008#line 1661
1009 return (retValue_acc);
1010 } else {
1011 {
1012#line 1663
1013 tmp = isFloorCalling(4);
1014 }
1015#line 1663
1016 if (tmp) {
1017#line 1666
1018 retValue_acc = 1;
1019#line 1668
1020 return (retValue_acc);
1021 } else {
1022#line 1670
1023 if (floorButtons_4) {
1024#line 1673
1025 retValue_acc = 1;
1026#line 1675
1027 return (retValue_acc);
1028 } else {
1029
1030 }
1031 }
1032 }
1033 }
1034 }
1035 }
1036 }
1037 }
1038 }
1039 }
1040#line 1680 "Elevator.c"
1041 retValue_acc = 0;
1042#line 1682
1043 return (retValue_acc);
1044#line 1689
1045 return (retValue_acc);
1046}
1047}
1048#line 197 "Elevator.c"
1049int isIdle(void)
1050{ int retValue_acc ;
1051 int tmp ;
1052
1053 {
1054 {
1055#line 1711 "Elevator.c"
1056 tmp = anyStopRequested();
1057#line 1711
1058 retValue_acc = tmp == 0;
1059 }
1060#line 1713
1061 return (retValue_acc);
1062#line 1720
1063 return (retValue_acc);
1064}
1065}
1066#line 201 "Elevator.c"
1067int stopRequestedInDirection(int dir , int respectFloorCalls , int respectInLiftCalls )
1068{ int retValue_acc ;
1069 int tmp ;
1070 int tmp___0 ;
1071 int tmp___1 ;
1072 int tmp___2 ;
1073 int tmp___3 ;
1074 int tmp___4 ;
1075 int tmp___5 ;
1076 int tmp___6 ;
1077 int tmp___7 ;
1078 int tmp___8 ;
1079 int tmp___9 ;
1080
1081 {
1082#line 252
1083 if (dir == 1) {
1084 {
1085#line 212
1086 tmp = isTopFloor(currentFloorID);
1087 }
1088#line 212 "Elevator.c"
1089 if (tmp) {
1090#line 1746 "Elevator.c"
1091 retValue_acc = 0;
1092#line 1748
1093 return (retValue_acc);
1094 } else {
1095
1096 }
1097#line 212
1098 if (currentFloorID < 0) {
1099#line 212
1100 if (respectFloorCalls) {
1101 {
1102#line 212 "Elevator.c"
1103 tmp___4 = isFloorCalling(0);
1104 }
1105#line 212 "Elevator.c"
1106 if (tmp___4) {
1107#line 1754 "Elevator.c"
1108 retValue_acc = 1;
1109#line 1756
1110 return (retValue_acc);
1111 } else {
1112 goto _L___16;
1113 }
1114 } else {
1115 goto _L___16;
1116 }
1117 } else {
1118 _L___16:
1119#line 1758
1120 if (currentFloorID < 0) {
1121#line 1758
1122 if (respectInLiftCalls) {
1123#line 1758
1124 if (floorButtons_0) {
1125#line 1761
1126 retValue_acc = 1;
1127#line 1763
1128 return (retValue_acc);
1129 } else {
1130 goto _L___14;
1131 }
1132 } else {
1133 goto _L___14;
1134 }
1135 } else {
1136 _L___14:
1137#line 1765
1138 if (currentFloorID < 1) {
1139#line 1765
1140 if (respectFloorCalls) {
1141 {
1142#line 1765
1143 tmp___3 = isFloorCalling(1);
1144 }
1145#line 1765
1146 if (tmp___3) {
1147#line 1768
1148 retValue_acc = 1;
1149#line 1770
1150 return (retValue_acc);
1151 } else {
1152 goto _L___12;
1153 }
1154 } else {
1155 goto _L___12;
1156 }
1157 } else {
1158 _L___12:
1159#line 1772
1160 if (currentFloorID < 1) {
1161#line 1772
1162 if (respectInLiftCalls) {
1163#line 1772
1164 if (floorButtons_1) {
1165#line 1775
1166 retValue_acc = 1;
1167#line 1777
1168 return (retValue_acc);
1169 } else {
1170 goto _L___10;
1171 }
1172 } else {
1173 goto _L___10;
1174 }
1175 } else {
1176 _L___10:
1177#line 1779
1178 if (currentFloorID < 2) {
1179#line 1779
1180 if (respectFloorCalls) {
1181 {
1182#line 1779
1183 tmp___2 = isFloorCalling(2);
1184 }
1185#line 1779
1186 if (tmp___2) {
1187#line 1782
1188 retValue_acc = 1;
1189#line 1784
1190 return (retValue_acc);
1191 } else {
1192 goto _L___8;
1193 }
1194 } else {
1195 goto _L___8;
1196 }
1197 } else {
1198 _L___8:
1199#line 1786
1200 if (currentFloorID < 2) {
1201#line 1786
1202 if (respectInLiftCalls) {
1203#line 1786
1204 if (floorButtons_2) {
1205#line 1789
1206 retValue_acc = 1;
1207#line 1791
1208 return (retValue_acc);
1209 } else {
1210 goto _L___6;
1211 }
1212 } else {
1213 goto _L___6;
1214 }
1215 } else {
1216 _L___6:
1217#line 1793
1218 if (currentFloorID < 3) {
1219#line 1793
1220 if (respectFloorCalls) {
1221 {
1222#line 1793
1223 tmp___1 = isFloorCalling(3);
1224 }
1225#line 1793
1226 if (tmp___1) {
1227#line 1796
1228 retValue_acc = 1;
1229#line 1798
1230 return (retValue_acc);
1231 } else {
1232 goto _L___4;
1233 }
1234 } else {
1235 goto _L___4;
1236 }
1237 } else {
1238 _L___4:
1239#line 1800
1240 if (currentFloorID < 3) {
1241#line 1800
1242 if (respectInLiftCalls) {
1243#line 1800
1244 if (floorButtons_3) {
1245#line 1803
1246 retValue_acc = 1;
1247#line 1805
1248 return (retValue_acc);
1249 } else {
1250 goto _L___2;
1251 }
1252 } else {
1253 goto _L___2;
1254 }
1255 } else {
1256 _L___2:
1257#line 1807
1258 if (currentFloorID < 4) {
1259#line 1807
1260 if (respectFloorCalls) {
1261 {
1262#line 1807
1263 tmp___0 = isFloorCalling(4);
1264 }
1265#line 1807
1266 if (tmp___0) {
1267#line 1810
1268 retValue_acc = 1;
1269#line 1812
1270 return (retValue_acc);
1271 } else {
1272 goto _L___0;
1273 }
1274 } else {
1275 goto _L___0;
1276 }
1277 } else {
1278 _L___0:
1279#line 1814
1280 if (currentFloorID < 4) {
1281#line 1814
1282 if (respectInLiftCalls) {
1283#line 1814
1284 if (floorButtons_4) {
1285#line 1817
1286 retValue_acc = 1;
1287#line 1819
1288 return (retValue_acc);
1289 } else {
1290#line 1823
1291 retValue_acc = 0;
1292#line 1825
1293 return (retValue_acc);
1294 }
1295 } else {
1296#line 1823
1297 retValue_acc = 0;
1298#line 1825
1299 return (retValue_acc);
1300 }
1301 } else {
1302#line 1823 "Elevator.c"
1303 retValue_acc = 0;
1304#line 1825
1305 return (retValue_acc);
1306 }
1307 }
1308 }
1309 }
1310 }
1311 }
1312 }
1313 }
1314 }
1315 }
1316 } else {
1317#line 237 "Elevator.c"
1318 if (currentFloorID == 0) {
1319#line 1833 "Elevator.c"
1320 retValue_acc = 0;
1321#line 1835
1322 return (retValue_acc);
1323 } else {
1324
1325 }
1326#line 237
1327 if (currentFloorID > 0) {
1328#line 237
1329 if (respectFloorCalls) {
1330 {
1331#line 237 "Elevator.c"
1332 tmp___9 = isFloorCalling(0);
1333 }
1334#line 237 "Elevator.c"
1335 if (tmp___9) {
1336#line 1841 "Elevator.c"
1337 retValue_acc = 1;
1338#line 1843
1339 return (retValue_acc);
1340 } else {
1341 goto _L___34;
1342 }
1343 } else {
1344 goto _L___34;
1345 }
1346 } else {
1347 _L___34:
1348#line 1845
1349 if (currentFloorID > 0) {
1350#line 1845
1351 if (respectInLiftCalls) {
1352#line 1845
1353 if (floorButtons_0) {
1354#line 1848
1355 retValue_acc = 1;
1356#line 1850
1357 return (retValue_acc);
1358 } else {
1359 goto _L___32;
1360 }
1361 } else {
1362 goto _L___32;
1363 }
1364 } else {
1365 _L___32:
1366#line 1852
1367 if (currentFloorID > 1) {
1368#line 1852
1369 if (respectFloorCalls) {
1370 {
1371#line 1852
1372 tmp___8 = isFloorCalling(1);
1373 }
1374#line 1852
1375 if (tmp___8) {
1376#line 1855
1377 retValue_acc = 1;
1378#line 1857
1379 return (retValue_acc);
1380 } else {
1381 goto _L___30;
1382 }
1383 } else {
1384 goto _L___30;
1385 }
1386 } else {
1387 _L___30:
1388#line 1859
1389 if (currentFloorID > 1) {
1390#line 1859
1391 if (respectInLiftCalls) {
1392#line 1859
1393 if (floorButtons_1) {
1394#line 1862
1395 retValue_acc = 1;
1396#line 1864
1397 return (retValue_acc);
1398 } else {
1399 goto _L___28;
1400 }
1401 } else {
1402 goto _L___28;
1403 }
1404 } else {
1405 _L___28:
1406#line 1866
1407 if (currentFloorID > 2) {
1408#line 1866
1409 if (respectFloorCalls) {
1410 {
1411#line 1866
1412 tmp___7 = isFloorCalling(2);
1413 }
1414#line 1866
1415 if (tmp___7) {
1416#line 1869
1417 retValue_acc = 1;
1418#line 1871
1419 return (retValue_acc);
1420 } else {
1421 goto _L___26;
1422 }
1423 } else {
1424 goto _L___26;
1425 }
1426 } else {
1427 _L___26:
1428#line 1873
1429 if (currentFloorID > 2) {
1430#line 1873
1431 if (respectInLiftCalls) {
1432#line 1873
1433 if (floorButtons_2) {
1434#line 1876
1435 retValue_acc = 1;
1436#line 1878
1437 return (retValue_acc);
1438 } else {
1439 goto _L___24;
1440 }
1441 } else {
1442 goto _L___24;
1443 }
1444 } else {
1445 _L___24:
1446#line 1880
1447 if (currentFloorID > 3) {
1448#line 1880
1449 if (respectFloorCalls) {
1450 {
1451#line 1880
1452 tmp___6 = isFloorCalling(3);
1453 }
1454#line 1880
1455 if (tmp___6) {
1456#line 1883
1457 retValue_acc = 1;
1458#line 1885
1459 return (retValue_acc);
1460 } else {
1461 goto _L___22;
1462 }
1463 } else {
1464 goto _L___22;
1465 }
1466 } else {
1467 _L___22:
1468#line 1887
1469 if (currentFloorID > 3) {
1470#line 1887
1471 if (respectInLiftCalls) {
1472#line 1887
1473 if (floorButtons_3) {
1474#line 1890
1475 retValue_acc = 1;
1476#line 1892
1477 return (retValue_acc);
1478 } else {
1479 goto _L___20;
1480 }
1481 } else {
1482 goto _L___20;
1483 }
1484 } else {
1485 _L___20:
1486#line 1894
1487 if (currentFloorID > 4) {
1488#line 1894
1489 if (respectFloorCalls) {
1490 {
1491#line 1894
1492 tmp___5 = isFloorCalling(4);
1493 }
1494#line 1894
1495 if (tmp___5) {
1496#line 1897
1497 retValue_acc = 1;
1498#line 1899
1499 return (retValue_acc);
1500 } else {
1501 goto _L___18;
1502 }
1503 } else {
1504 goto _L___18;
1505 }
1506 } else {
1507 _L___18:
1508#line 1901
1509 if (currentFloorID > 4) {
1510#line 1901
1511 if (respectInLiftCalls) {
1512#line 1901
1513 if (floorButtons_4) {
1514#line 1904
1515 retValue_acc = 1;
1516#line 1906
1517 return (retValue_acc);
1518 } else {
1519#line 1910
1520 retValue_acc = 0;
1521#line 1912
1522 return (retValue_acc);
1523 }
1524 } else {
1525#line 1910
1526 retValue_acc = 0;
1527#line 1912
1528 return (retValue_acc);
1529 }
1530 } else {
1531#line 1910 "Elevator.c"
1532 retValue_acc = 0;
1533#line 1912
1534 return (retValue_acc);
1535 }
1536 }
1537 }
1538 }
1539 }
1540 }
1541 }
1542 }
1543 }
1544 }
1545 }
1546#line 1919 "Elevator.c"
1547 return (retValue_acc);
1548}
1549}
1550#line 255 "Elevator.c"
1551int isAnyLiftButtonPressed(void)
1552{ int retValue_acc ;
1553
1554 {
1555#line 261 "Elevator.c"
1556 if (floorButtons_0) {
1557#line 1942
1558 retValue_acc = 1;
1559#line 1944
1560 return (retValue_acc);
1561 } else {
1562#line 1946
1563 if (floorButtons_1) {
1564#line 1949
1565 retValue_acc = 1;
1566#line 1951
1567 return (retValue_acc);
1568 } else {
1569#line 1953
1570 if (floorButtons_2) {
1571#line 1956
1572 retValue_acc = 1;
1573#line 1958
1574 return (retValue_acc);
1575 } else {
1576#line 1960
1577 if (floorButtons_3) {
1578#line 1963
1579 retValue_acc = 1;
1580#line 1965
1581 return (retValue_acc);
1582 } else {
1583#line 1967
1584 if (floorButtons_4) {
1585#line 1970
1586 retValue_acc = 1;
1587#line 1972
1588 return (retValue_acc);
1589 } else {
1590#line 1976 "Elevator.c"
1591 retValue_acc = 0;
1592#line 1978
1593 return (retValue_acc);
1594 }
1595 }
1596 }
1597 }
1598 }
1599#line 1985 "Elevator.c"
1600 return (retValue_acc);
1601}
1602}
1603#line 264 "Elevator.c"
1604void continueInDirection(int dir )
1605{ int tmp ;
1606
1607 {
1608#line 265
1609 currentHeading = dir;
1610#line 266
1611 if (currentHeading == 1) {
1612 {
1613#line 271
1614 tmp = isTopFloor(currentFloorID);
1615 }
1616#line 271
1617 if (tmp) {
1618#line 269
1619 currentHeading = 0;
1620 } else {
1621
1622 }
1623 } else {
1624#line 276
1625 if (currentFloorID == 0) {
1626#line 274
1627 currentHeading = 1;
1628 } else {
1629
1630 }
1631 }
1632#line 277
1633 if (currentHeading == 1) {
1634#line 278
1635 currentFloorID = currentFloorID + 1;
1636 } else {
1637#line 280
1638 currentFloorID = currentFloorID - 1;
1639 }
1640#line 2031 "Elevator.c"
1641 return;
1642}
1643}
1644#line 284 "Elevator.c"
1645int stopRequestedAtCurrentFloor(void)
1646{ int retValue_acc ;
1647 int tmp ;
1648 int tmp___0 ;
1649
1650 {
1651 {
1652#line 291
1653 tmp___0 = isFloorCalling(currentFloorID);
1654 }
1655#line 291 "Elevator.c"
1656 if (tmp___0) {
1657#line 2052
1658 retValue_acc = 1;
1659#line 2054
1660 return (retValue_acc);
1661 } else {
1662 {
1663#line 2056 "Elevator.c"
1664 tmp = buttonForFloorIsPressed(currentFloorID);
1665 }
1666#line 2056
1667 if (tmp) {
1668#line 2061
1669 retValue_acc = 1;
1670#line 2063
1671 return (retValue_acc);
1672 } else {
1673#line 2069
1674 retValue_acc = 0;
1675#line 2071
1676 return (retValue_acc);
1677 }
1678 }
1679#line 2078 "Elevator.c"
1680 return (retValue_acc);
1681}
1682}
1683#line 294 "Elevator.c"
1684int getReverseHeading(int ofHeading )
1685{ int retValue_acc ;
1686
1687 {
1688#line 297 "Elevator.c"
1689 if (ofHeading == 0) {
1690#line 2103
1691 retValue_acc = 1;
1692#line 2105
1693 return (retValue_acc);
1694 } else {
1695#line 2109 "Elevator.c"
1696 retValue_acc = 0;
1697#line 2111
1698 return (retValue_acc);
1699 }
1700#line 2118 "Elevator.c"
1701 return (retValue_acc);
1702}
1703}
1704#line 301 "Elevator.c"
1705void processWaitingOnFloor(int floorID )
1706{ int tmp ;
1707 int tmp___0 ;
1708 int tmp___1 ;
1709 int tmp___2 ;
1710 int tmp___3 ;
1711 int tmp___4 ;
1712 int tmp___5 ;
1713 int tmp___6 ;
1714 int tmp___7 ;
1715 int tmp___8 ;
1716 int tmp___9 ;
1717 int tmp___10 ;
1718
1719 {
1720 {
1721#line 307
1722 tmp___0 = isPersonOnFloor(0, floorID);
1723 }
1724#line 307
1725 if (tmp___0) {
1726 {
1727#line 303
1728 removePersonFromFloor(0, floorID);
1729#line 304
1730 tmp = getDestination(0);
1731#line 304
1732 pressInLiftFloorButton(tmp);
1733#line 305
1734 enterElevator(0);
1735 }
1736 } else {
1737
1738 }
1739 {
1740#line 307
1741 tmp___2 = isPersonOnFloor(1, floorID);
1742 }
1743#line 307
1744 if (tmp___2) {
1745 {
1746#line 308
1747 removePersonFromFloor(1, floorID);
1748#line 309
1749 tmp___1 = getDestination(1);
1750#line 309
1751 pressInLiftFloorButton(tmp___1);
1752#line 310
1753 enterElevator(1);
1754 }
1755 } else {
1756
1757 }
1758 {
1759#line 312
1760 tmp___4 = isPersonOnFloor(2, floorID);
1761 }
1762#line 312
1763 if (tmp___4) {
1764 {
1765#line 313
1766 removePersonFromFloor(2, floorID);
1767#line 314
1768 tmp___3 = getDestination(2);
1769#line 314
1770 pressInLiftFloorButton(tmp___3);
1771#line 315
1772 enterElevator(2);
1773 }
1774 } else {
1775
1776 }
1777 {
1778#line 317
1779 tmp___6 = isPersonOnFloor(3, floorID);
1780 }
1781#line 317
1782 if (tmp___6) {
1783 {
1784#line 318
1785 removePersonFromFloor(3, floorID);
1786#line 319
1787 tmp___5 = getDestination(3);
1788#line 319
1789 pressInLiftFloorButton(tmp___5);
1790#line 320
1791 enterElevator(3);
1792 }
1793 } else {
1794
1795 }
1796 {
1797#line 322
1798 tmp___8 = isPersonOnFloor(4, floorID);
1799 }
1800#line 322
1801 if (tmp___8) {
1802 {
1803#line 323
1804 removePersonFromFloor(4, floorID);
1805#line 324
1806 tmp___7 = getDestination(4);
1807#line 324
1808 pressInLiftFloorButton(tmp___7);
1809#line 325
1810 enterElevator(4);
1811 }
1812 } else {
1813
1814 }
1815 {
1816#line 327
1817 tmp___10 = isPersonOnFloor(5, floorID);
1818 }
1819#line 327
1820 if (tmp___10) {
1821 {
1822#line 328
1823 removePersonFromFloor(5, floorID);
1824#line 329
1825 tmp___9 = getDestination(5);
1826#line 329
1827 pressInLiftFloorButton(tmp___9);
1828#line 330
1829 enterElevator(5);
1830 }
1831 } else {
1832
1833 }
1834 {
1835#line 332
1836 resetCallOnFloor(floorID);
1837 }
1838#line 2196 "Elevator.c"
1839 return;
1840}
1841}
1842#line 336 "Elevator.c"
1843void timeShift(void)
1844{ int tmp ;
1845 int tmp___0 ;
1846 int tmp___1 ;
1847 int tmp___2 ;
1848 int tmp___3 ;
1849 int tmp___4 ;
1850 int tmp___5 ;
1851 int tmp___6 ;
1852 int tmp___7 ;
1853 int tmp___8 ;
1854 int tmp___9 ;
1855
1856 {
1857 {
1858#line 369
1859 tmp___9 = stopRequestedAtCurrentFloor();
1860 }
1861#line 369
1862 if (tmp___9) {
1863#line 341
1864 doorState = 1;
1865#line 343
1866 if (persons_0) {
1867 {
1868#line 343
1869 tmp = getDestination(0);
1870 }
1871#line 343
1872 if (tmp == currentFloorID) {
1873 {
1874#line 344
1875 leaveElevator(0);
1876 }
1877 } else {
1878
1879 }
1880 } else {
1881
1882 }
1883#line 344
1884 if (persons_1) {
1885 {
1886#line 344
1887 tmp___0 = getDestination(1);
1888 }
1889#line 344
1890 if (tmp___0 == currentFloorID) {
1891 {
1892#line 345
1893 leaveElevator(1);
1894 }
1895 } else {
1896
1897 }
1898 } else {
1899
1900 }
1901#line 345
1902 if (persons_2) {
1903 {
1904#line 345
1905 tmp___1 = getDestination(2);
1906 }
1907#line 345
1908 if (tmp___1 == currentFloorID) {
1909 {
1910#line 346
1911 leaveElevator(2);
1912 }
1913 } else {
1914
1915 }
1916 } else {
1917
1918 }
1919#line 346
1920 if (persons_3) {
1921 {
1922#line 346
1923 tmp___2 = getDestination(3);
1924 }
1925#line 346
1926 if (tmp___2 == currentFloorID) {
1927 {
1928#line 347
1929 leaveElevator(3);
1930 }
1931 } else {
1932
1933 }
1934 } else {
1935
1936 }
1937#line 347
1938 if (persons_4) {
1939 {
1940#line 347
1941 tmp___3 = getDestination(4);
1942 }
1943#line 347
1944 if (tmp___3 == currentFloorID) {
1945 {
1946#line 348
1947 leaveElevator(4);
1948 }
1949 } else {
1950
1951 }
1952 } else {
1953
1954 }
1955#line 348
1956 if (persons_5) {
1957 {
1958#line 348
1959 tmp___4 = getDestination(5);
1960 }
1961#line 348
1962 if (tmp___4 == currentFloorID) {
1963 {
1964#line 349
1965 leaveElevator(5);
1966 }
1967 } else {
1968
1969 }
1970 } else {
1971
1972 }
1973 {
1974#line 349
1975 processWaitingOnFloor(currentFloorID);
1976#line 350
1977 resetFloorButton(currentFloorID);
1978 }
1979 } else {
1980#line 356
1981 if (doorState == 1) {
1982#line 353
1983 doorState = 0;
1984 } else {
1985
1986 }
1987 {
1988#line 356
1989 tmp___8 = stopRequestedInDirection(currentHeading, 1, 1);
1990 }
1991#line 356
1992 if (tmp___8) {
1993 {
1994#line 359
1995 continueInDirection(currentHeading);
1996 }
1997 } else {
1998 {
1999#line 360
2000 tmp___6 = getReverseHeading(currentHeading);
2001#line 360
2002 tmp___7 = stopRequestedInDirection(tmp___6, 1, 1);
2003 }
2004#line 360
2005 if (tmp___7) {
2006 {
2007#line 363
2008 tmp___5 = getReverseHeading(currentHeading);
2009#line 363
2010 continueInDirection(tmp___5);
2011 }
2012 } else {
2013 {
2014#line 367
2015 continueInDirection(currentHeading);
2016 }
2017 }
2018 }
2019 }
2020 {
2021#line 2261 "Elevator.c"
2022 __utac_acc__Specification2_spec__3();
2023 }
2024#line 2267
2025 return;
2026}
2027}
2028#line 372 "Elevator.c"
2029void printState(void)
2030{ int tmp ;
2031 int tmp___0 ;
2032 int tmp___1 ;
2033 int tmp___2 ;
2034 int tmp___3 ;
2035 char const * __restrict __cil_tmp6 ;
2036 char const * __restrict __cil_tmp7 ;
2037 char const * __restrict __cil_tmp8 ;
2038 char const * __restrict __cil_tmp9 ;
2039 char const * __restrict __cil_tmp10 ;
2040 char const * __restrict __cil_tmp11 ;
2041 char const * __restrict __cil_tmp12 ;
2042 char const * __restrict __cil_tmp13 ;
2043 char const * __restrict __cil_tmp14 ;
2044 char const * __restrict __cil_tmp15 ;
2045 char const * __restrict __cil_tmp16 ;
2046 char const * __restrict __cil_tmp17 ;
2047 char const * __restrict __cil_tmp18 ;
2048 char const * __restrict __cil_tmp19 ;
2049 char const * __restrict __cil_tmp20 ;
2050 char const * __restrict __cil_tmp21 ;
2051 char const * __restrict __cil_tmp22 ;
2052 char const * __restrict __cil_tmp23 ;
2053 char const * __restrict __cil_tmp24 ;
2054 char const * __restrict __cil_tmp25 ;
2055 char const * __restrict __cil_tmp26 ;
2056
2057 {
2058 {
2059#line 373
2060 __cil_tmp6 = (char const * __restrict )"Elevator ";
2061#line 373
2062 printf(__cil_tmp6);
2063 }
2064#line 374
2065 if (doorState) {
2066 {
2067#line 375
2068 __cil_tmp7 = (char const * __restrict )"[_]";
2069#line 375
2070 printf(__cil_tmp7);
2071 }
2072 } else {
2073 {
2074#line 376
2075 __cil_tmp8 = (char const * __restrict )"[] ";
2076#line 376
2077 printf(__cil_tmp8);
2078 }
2079 }
2080 {
2081#line 376
2082 __cil_tmp9 = (char const * __restrict )" at ";
2083#line 376
2084 printf(__cil_tmp9);
2085#line 377
2086 __cil_tmp10 = (char const * __restrict )"%i";
2087#line 377
2088 printf(__cil_tmp10, currentFloorID);
2089#line 378
2090 __cil_tmp11 = (char const * __restrict )" heading ";
2091#line 378
2092 printf(__cil_tmp11);
2093 }
2094#line 379
2095 if (currentHeading) {
2096 {
2097#line 380
2098 __cil_tmp12 = (char const * __restrict )"up";
2099#line 380
2100 printf(__cil_tmp12);
2101 }
2102 } else {
2103 {
2104#line 381
2105 __cil_tmp13 = (char const * __restrict )"down";
2106#line 381
2107 printf(__cil_tmp13);
2108 }
2109 }
2110 {
2111#line 381
2112 __cil_tmp14 = (char const * __restrict )" IL_p:";
2113#line 381
2114 printf(__cil_tmp14);
2115 }
2116#line 382
2117 if (floorButtons_0) {
2118 {
2119#line 383
2120 __cil_tmp15 = (char const * __restrict )" %i";
2121#line 383
2122 printf(__cil_tmp15, 0);
2123 }
2124 } else {
2125
2126 }
2127#line 383
2128 if (floorButtons_1) {
2129 {
2130#line 384
2131 __cil_tmp16 = (char const * __restrict )" %i";
2132#line 384
2133 printf(__cil_tmp16, 1);
2134 }
2135 } else {
2136
2137 }
2138#line 384
2139 if (floorButtons_2) {
2140 {
2141#line 385
2142 __cil_tmp17 = (char const * __restrict )" %i";
2143#line 385
2144 printf(__cil_tmp17, 2);
2145 }
2146 } else {
2147
2148 }
2149#line 385
2150 if (floorButtons_3) {
2151 {
2152#line 386
2153 __cil_tmp18 = (char const * __restrict )" %i";
2154#line 386
2155 printf(__cil_tmp18, 3);
2156 }
2157 } else {
2158
2159 }
2160#line 386
2161 if (floorButtons_4) {
2162 {
2163#line 387
2164 __cil_tmp19 = (char const * __restrict )" %i";
2165#line 387
2166 printf(__cil_tmp19, 4);
2167 }
2168 } else {
2169
2170 }
2171 {
2172#line 387
2173 __cil_tmp20 = (char const * __restrict )" F_p:";
2174#line 387
2175 printf(__cil_tmp20);
2176#line 388
2177 tmp = isFloorCalling(0);
2178 }
2179#line 388
2180 if (tmp) {
2181 {
2182#line 389
2183 __cil_tmp21 = (char const * __restrict )" %i";
2184#line 389
2185 printf(__cil_tmp21, 0);
2186 }
2187 } else {
2188
2189 }
2190 {
2191#line 389
2192 tmp___0 = isFloorCalling(1);
2193 }
2194#line 389
2195 if (tmp___0) {
2196 {
2197#line 390
2198 __cil_tmp22 = (char const * __restrict )" %i";
2199#line 390
2200 printf(__cil_tmp22, 1);
2201 }
2202 } else {
2203
2204 }
2205 {
2206#line 390
2207 tmp___1 = isFloorCalling(2);
2208 }
2209#line 390
2210 if (tmp___1) {
2211 {
2212#line 391
2213 __cil_tmp23 = (char const * __restrict )" %i";
2214#line 391
2215 printf(__cil_tmp23, 2);
2216 }
2217 } else {
2218
2219 }
2220 {
2221#line 391
2222 tmp___2 = isFloorCalling(3);
2223 }
2224#line 391
2225 if (tmp___2) {
2226 {
2227#line 392
2228 __cil_tmp24 = (char const * __restrict )" %i";
2229#line 392
2230 printf(__cil_tmp24, 3);
2231 }
2232 } else {
2233
2234 }
2235 {
2236#line 392
2237 tmp___3 = isFloorCalling(4);
2238 }
2239#line 392
2240 if (tmp___3) {
2241 {
2242#line 393
2243 __cil_tmp25 = (char const * __restrict )" %i";
2244#line 393
2245 printf(__cil_tmp25, 4);
2246 }
2247 } else {
2248
2249 }
2250 {
2251#line 393
2252 __cil_tmp26 = (char const * __restrict )"\n";
2253#line 393
2254 printf(__cil_tmp26);
2255 }
2256#line 2337 "Elevator.c"
2257 return;
2258}
2259}
2260#line 397 "Elevator.c"
2261int existInLiftCallsInDirection(int d )
2262{ int retValue_acc ;
2263 int i ;
2264 int i___0 ;
2265
2266 {
2267#line 418
2268 if (d == 1) {
2269#line 399 "Elevator.c"
2270 i = 0;
2271#line 400
2272 i = currentFloorID + 1;
2273 {
2274#line 400
2275 while (1) {
2276 while_0_continue: ;
2277#line 400
2278 if (i < 5) {
2279
2280 } else {
2281 goto while_0_break;
2282 }
2283#line 406
2284 if (i == 0) {
2285#line 406 "Elevator.c"
2286 if (floorButtons_0) {
2287#line 2365
2288 retValue_acc = 1;
2289#line 2367
2290 return (retValue_acc);
2291 } else {
2292 goto _L___2;
2293 }
2294 } else {
2295 _L___2:
2296#line 2369
2297 if (i == 1) {
2298#line 2369
2299 if (floorButtons_1) {
2300#line 2372
2301 retValue_acc = 1;
2302#line 2374
2303 return (retValue_acc);
2304 } else {
2305 goto _L___1;
2306 }
2307 } else {
2308 _L___1:
2309#line 2376
2310 if (i == 2) {
2311#line 2376
2312 if (floorButtons_2) {
2313#line 2379
2314 retValue_acc = 1;
2315#line 2381
2316 return (retValue_acc);
2317 } else {
2318 goto _L___0;
2319 }
2320 } else {
2321 _L___0:
2322#line 2383
2323 if (i == 3) {
2324#line 2383
2325 if (floorButtons_3) {
2326#line 2386
2327 retValue_acc = 1;
2328#line 2388
2329 return (retValue_acc);
2330 } else {
2331 goto _L;
2332 }
2333 } else {
2334 _L:
2335#line 2390
2336 if (i == 4) {
2337#line 2390
2338 if (floorButtons_4) {
2339#line 2393 "Elevator.c"
2340 retValue_acc = 1;
2341#line 2395
2342 return (retValue_acc);
2343 } else {
2344
2345 }
2346 } else {
2347
2348 }
2349 }
2350 }
2351 }
2352 }
2353#line 400
2354 i = i + 1;
2355 }
2356 while_0_break: ;
2357 }
2358 } else {
2359#line 2397 "Elevator.c"
2360 if (d == 0) {
2361#line 408
2362 i___0 = 0;
2363#line 409
2364 i___0 = currentFloorID - 1;
2365 {
2366#line 409
2367 while (1) {
2368 while_1_continue: ;
2369#line 409
2370 if (i___0 >= 0) {
2371
2372 } else {
2373 goto while_1_break;
2374 }
2375#line 409
2376 i___0 = currentFloorID + 1;
2377 {
2378#line 409
2379 while (1) {
2380 while_2_continue: ;
2381#line 409
2382 if (i___0 < 5) {
2383
2384 } else {
2385 goto while_2_break;
2386 }
2387#line 416
2388 if (i___0 == 0) {
2389#line 416 "Elevator.c"
2390 if (floorButtons_0) {
2391#line 2409
2392 retValue_acc = 1;
2393#line 2411
2394 return (retValue_acc);
2395 } else {
2396 goto _L___6;
2397 }
2398 } else {
2399 _L___6:
2400#line 2413
2401 if (i___0 == 1) {
2402#line 2413
2403 if (floorButtons_1) {
2404#line 2416
2405 retValue_acc = 1;
2406#line 2418
2407 return (retValue_acc);
2408 } else {
2409 goto _L___5;
2410 }
2411 } else {
2412 _L___5:
2413#line 2420
2414 if (i___0 == 2) {
2415#line 2420
2416 if (floorButtons_2) {
2417#line 2423
2418 retValue_acc = 1;
2419#line 2425
2420 return (retValue_acc);
2421 } else {
2422 goto _L___4;
2423 }
2424 } else {
2425 _L___4:
2426#line 2427
2427 if (i___0 == 3) {
2428#line 2427
2429 if (floorButtons_3) {
2430#line 2430
2431 retValue_acc = 1;
2432#line 2432
2433 return (retValue_acc);
2434 } else {
2435 goto _L___3;
2436 }
2437 } else {
2438 _L___3:
2439#line 2434
2440 if (i___0 == 4) {
2441#line 2434
2442 if (floorButtons_4) {
2443#line 2437 "Elevator.c"
2444 retValue_acc = 1;
2445#line 2439
2446 return (retValue_acc);
2447 } else {
2448
2449 }
2450 } else {
2451
2452 }
2453 }
2454 }
2455 }
2456 }
2457#line 409
2458 i___0 = i___0 + 1;
2459 }
2460 while_2_break: ;
2461 }
2462#line 409
2463 i___0 = i___0 - 1;
2464 }
2465 while_1_break: ;
2466 }
2467 } else {
2468
2469 }
2470 }
2471#line 2444 "Elevator.c"
2472 retValue_acc = 0;
2473#line 2446
2474 return (retValue_acc);
2475#line 2453
2476 return (retValue_acc);
2477}
2478}
2479#line 1 "Person.o"
2480#pragma merger(0,"Person.i","")
2481#line 12 "Person.h"
2482int getOrigin(int person ) ;
2483#line 20 "Person.c"
2484int getWeight(int person )
2485{ int retValue_acc ;
2486
2487 {
2488#line 35 "Person.c"
2489 if (person == 0) {
2490#line 974
2491 retValue_acc = 40;
2492#line 976
2493 return (retValue_acc);
2494 } else {
2495#line 978
2496 if (person == 1) {
2497#line 983
2498 retValue_acc = 40;
2499#line 985
2500 return (retValue_acc);
2501 } else {
2502#line 987
2503 if (person == 2) {
2504#line 992
2505 retValue_acc = 40;
2506#line 994
2507 return (retValue_acc);
2508 } else {
2509#line 996
2510 if (person == 3) {
2511#line 1001
2512 retValue_acc = 40;
2513#line 1003
2514 return (retValue_acc);
2515 } else {
2516#line 1005
2517 if (person == 4) {
2518#line 1010
2519 retValue_acc = 30;
2520#line 1012
2521 return (retValue_acc);
2522 } else {
2523#line 1014
2524 if (person == 5) {
2525#line 1019
2526 retValue_acc = 150;
2527#line 1021
2528 return (retValue_acc);
2529 } else {
2530#line 1027 "Person.c"
2531 retValue_acc = 0;
2532#line 1029
2533 return (retValue_acc);
2534 }
2535 }
2536 }
2537 }
2538 }
2539 }
2540#line 1036 "Person.c"
2541 return (retValue_acc);
2542}
2543}
2544#line 39 "Person.c"
2545int getOrigin(int person )
2546{ int retValue_acc ;
2547
2548 {
2549#line 54 "Person.c"
2550 if (person == 0) {
2551#line 1061
2552 retValue_acc = 4;
2553#line 1063
2554 return (retValue_acc);
2555 } else {
2556#line 1065
2557 if (person == 1) {
2558#line 1070
2559 retValue_acc = 3;
2560#line 1072
2561 return (retValue_acc);
2562 } else {
2563#line 1074
2564 if (person == 2) {
2565#line 1079
2566 retValue_acc = 2;
2567#line 1081
2568 return (retValue_acc);
2569 } else {
2570#line 1083
2571 if (person == 3) {
2572#line 1088
2573 retValue_acc = 1;
2574#line 1090
2575 return (retValue_acc);
2576 } else {
2577#line 1092
2578 if (person == 4) {
2579#line 1097
2580 retValue_acc = 0;
2581#line 1099
2582 return (retValue_acc);
2583 } else {
2584#line 1101
2585 if (person == 5) {
2586#line 1106
2587 retValue_acc = 1;
2588#line 1108
2589 return (retValue_acc);
2590 } else {
2591#line 1114 "Person.c"
2592 retValue_acc = 0;
2593#line 1116
2594 return (retValue_acc);
2595 }
2596 }
2597 }
2598 }
2599 }
2600 }
2601#line 1123 "Person.c"
2602 return (retValue_acc);
2603}
2604}
2605#line 57 "Person.c"
2606int getDestination(int person )
2607{ int retValue_acc ;
2608
2609 {
2610#line 72 "Person.c"
2611 if (person == 0) {
2612#line 1148
2613 retValue_acc = 0;
2614#line 1150
2615 return (retValue_acc);
2616 } else {
2617#line 1152
2618 if (person == 1) {
2619#line 1157
2620 retValue_acc = 0;
2621#line 1159
2622 return (retValue_acc);
2623 } else {
2624#line 1161
2625 if (person == 2) {
2626#line 1166
2627 retValue_acc = 1;
2628#line 1168
2629 return (retValue_acc);
2630 } else {
2631#line 1170
2632 if (person == 3) {
2633#line 1175
2634 retValue_acc = 3;
2635#line 1177
2636 return (retValue_acc);
2637 } else {
2638#line 1179
2639 if (person == 4) {
2640#line 1184
2641 retValue_acc = 1;
2642#line 1186
2643 return (retValue_acc);
2644 } else {
2645#line 1188
2646 if (person == 5) {
2647#line 1193
2648 retValue_acc = 3;
2649#line 1195
2650 return (retValue_acc);
2651 } else {
2652#line 1201 "Person.c"
2653 retValue_acc = 0;
2654#line 1203
2655 return (retValue_acc);
2656 }
2657 }
2658 }
2659 }
2660 }
2661 }
2662#line 1210 "Person.c"
2663 return (retValue_acc);
2664}
2665}
2666#line 1 "Floor.o"
2667#pragma merger(0,"Floor.i","")
2668#line 16 "Floor.h"
2669void callOnFloor(int floorID ) ;
2670#line 20
2671void initPersonOnFloor(int person , int floor ) ;
2672#line 9 "Floor.c"
2673int calls_0 ;
2674#line 11 "Floor.c"
2675int calls_1 ;
2676#line 13 "Floor.c"
2677int calls_2 ;
2678#line 15 "Floor.c"
2679int calls_3 ;
2680#line 17 "Floor.c"
2681int calls_4 ;
2682#line 20 "Floor.c"
2683int personOnFloor_0_0 ;
2684#line 22 "Floor.c"
2685int personOnFloor_0_1 ;
2686#line 24 "Floor.c"
2687int personOnFloor_0_2 ;
2688#line 26 "Floor.c"
2689int personOnFloor_0_3 ;
2690#line 28 "Floor.c"
2691int personOnFloor_0_4 ;
2692#line 30 "Floor.c"
2693int personOnFloor_1_0 ;
2694#line 32 "Floor.c"
2695int personOnFloor_1_1 ;
2696#line 34 "Floor.c"
2697int personOnFloor_1_2 ;
2698#line 36 "Floor.c"
2699int personOnFloor_1_3 ;
2700#line 38 "Floor.c"
2701int personOnFloor_1_4 ;
2702#line 40 "Floor.c"
2703int personOnFloor_2_0 ;
2704#line 42 "Floor.c"
2705int personOnFloor_2_1 ;
2706#line 44 "Floor.c"
2707int personOnFloor_2_2 ;
2708#line 46 "Floor.c"
2709int personOnFloor_2_3 ;
2710#line 48 "Floor.c"
2711int personOnFloor_2_4 ;
2712#line 50 "Floor.c"
2713int personOnFloor_3_0 ;
2714#line 52 "Floor.c"
2715int personOnFloor_3_1 ;
2716#line 54 "Floor.c"
2717int personOnFloor_3_2 ;
2718#line 56 "Floor.c"
2719int personOnFloor_3_3 ;
2720#line 58 "Floor.c"
2721int personOnFloor_3_4 ;
2722#line 60 "Floor.c"
2723int personOnFloor_4_0 ;
2724#line 62 "Floor.c"
2725int personOnFloor_4_1 ;
2726#line 64 "Floor.c"
2727int personOnFloor_4_2 ;
2728#line 66 "Floor.c"
2729int personOnFloor_4_3 ;
2730#line 68 "Floor.c"
2731int personOnFloor_4_4 ;
2732#line 70 "Floor.c"
2733int personOnFloor_5_0 ;
2734#line 72 "Floor.c"
2735int personOnFloor_5_1 ;
2736#line 74 "Floor.c"
2737int personOnFloor_5_2 ;
2738#line 76 "Floor.c"
2739int personOnFloor_5_3 ;
2740#line 78 "Floor.c"
2741int personOnFloor_5_4 ;
2742#line 81 "Floor.c"
2743void initFloors(void)
2744{
2745
2746 {
2747#line 82
2748 calls_0 = 0;
2749#line 83
2750 calls_1 = 0;
2751#line 84
2752 calls_2 = 0;
2753#line 85
2754 calls_3 = 0;
2755#line 86
2756 calls_4 = 0;
2757#line 87
2758 personOnFloor_0_0 = 0;
2759#line 88
2760 personOnFloor_0_1 = 0;
2761#line 89
2762 personOnFloor_0_2 = 0;
2763#line 90
2764 personOnFloor_0_3 = 0;
2765#line 91
2766 personOnFloor_0_4 = 0;
2767#line 92
2768 personOnFloor_1_0 = 0;
2769#line 93
2770 personOnFloor_1_1 = 0;
2771#line 94
2772 personOnFloor_1_2 = 0;
2773#line 95
2774 personOnFloor_1_3 = 0;
2775#line 96
2776 personOnFloor_1_4 = 0;
2777#line 97
2778 personOnFloor_2_0 = 0;
2779#line 98
2780 personOnFloor_2_1 = 0;
2781#line 99
2782 personOnFloor_2_2 = 0;
2783#line 100
2784 personOnFloor_2_3 = 0;
2785#line 101
2786 personOnFloor_2_4 = 0;
2787#line 102
2788 personOnFloor_3_0 = 0;
2789#line 103
2790 personOnFloor_3_1 = 0;
2791#line 104
2792 personOnFloor_3_2 = 0;
2793#line 105
2794 personOnFloor_3_3 = 0;
2795#line 106
2796 personOnFloor_3_4 = 0;
2797#line 107
2798 personOnFloor_4_0 = 0;
2799#line 108
2800 personOnFloor_4_1 = 0;
2801#line 109
2802 personOnFloor_4_2 = 0;
2803#line 110
2804 personOnFloor_4_3 = 0;
2805#line 111
2806 personOnFloor_4_4 = 0;
2807#line 112
2808 personOnFloor_5_0 = 0;
2809#line 113
2810 personOnFloor_5_1 = 0;
2811#line 114
2812 personOnFloor_5_2 = 0;
2813#line 115
2814 personOnFloor_5_3 = 0;
2815#line 116
2816 personOnFloor_5_4 = 0;
2817#line 1120 "Floor.c"
2818 return;
2819}
2820}
2821#line 120 "Floor.c"
2822int isFloorCalling(int floorID )
2823{ int retValue_acc ;
2824
2825 {
2826#line 126 "Floor.c"
2827 if (floorID == 0) {
2828#line 1139
2829 retValue_acc = calls_0;
2830#line 1141
2831 return (retValue_acc);
2832 } else {
2833#line 1143
2834 if (floorID == 1) {
2835#line 1146
2836 retValue_acc = calls_1;
2837#line 1148
2838 return (retValue_acc);
2839 } else {
2840#line 1150
2841 if (floorID == 2) {
2842#line 1153
2843 retValue_acc = calls_2;
2844#line 1155
2845 return (retValue_acc);
2846 } else {
2847#line 1157
2848 if (floorID == 3) {
2849#line 1160
2850 retValue_acc = calls_3;
2851#line 1162
2852 return (retValue_acc);
2853 } else {
2854#line 1164
2855 if (floorID == 4) {
2856#line 1167 "Floor.c"
2857 retValue_acc = calls_4;
2858#line 1169
2859 return (retValue_acc);
2860 } else {
2861
2862 }
2863 }
2864 }
2865 }
2866 }
2867#line 1174 "Floor.c"
2868 retValue_acc = 0;
2869#line 1176
2870 return (retValue_acc);
2871#line 1183
2872 return (retValue_acc);
2873}
2874}
2875#line 130 "Floor.c"
2876void resetCallOnFloor(int floorID )
2877{
2878
2879 {
2880#line 136
2881 if (floorID == 0) {
2882#line 137
2883 calls_0 = 0;
2884 } else {
2885#line 138
2886 if (floorID == 1) {
2887#line 139
2888 calls_1 = 0;
2889 } else {
2890#line 140
2891 if (floorID == 2) {
2892#line 141
2893 calls_2 = 0;
2894 } else {
2895#line 142
2896 if (floorID == 3) {
2897#line 143
2898 calls_3 = 0;
2899 } else {
2900#line 144
2901 if (floorID == 4) {
2902#line 145
2903 calls_4 = 0;
2904 } else {
2905
2906 }
2907 }
2908 }
2909 }
2910 }
2911#line 1216 "Floor.c"
2912 return;
2913}
2914}
2915#line 139 "Floor.c"
2916void callOnFloor(int floorID )
2917{
2918
2919 {
2920#line 145
2921 if (floorID == 0) {
2922#line 146
2923 calls_0 = 1;
2924 } else {
2925#line 147
2926 if (floorID == 1) {
2927#line 148
2928 calls_1 = 1;
2929 } else {
2930#line 149
2931 if (floorID == 2) {
2932#line 150
2933 calls_2 = 1;
2934 } else {
2935#line 151
2936 if (floorID == 3) {
2937#line 152
2938 calls_3 = 1;
2939 } else {
2940#line 153
2941 if (floorID == 4) {
2942#line 154
2943 calls_4 = 1;
2944 } else {
2945
2946 }
2947 }
2948 }
2949 }
2950 }
2951#line 1245 "Floor.c"
2952 return;
2953}
2954}
2955#line 148 "Floor.c"
2956int isPersonOnFloor(int person , int floor )
2957{ int retValue_acc ;
2958
2959 {
2960#line 185
2961 if (floor == 0) {
2962#line 156 "Floor.c"
2963 if (person == 0) {
2964#line 1267
2965 retValue_acc = personOnFloor_0_0;
2966#line 1269
2967 return (retValue_acc);
2968 } else {
2969#line 1271
2970 if (person == 1) {
2971#line 1274
2972 retValue_acc = personOnFloor_1_0;
2973#line 1276
2974 return (retValue_acc);
2975 } else {
2976#line 1278
2977 if (person == 2) {
2978#line 1281
2979 retValue_acc = personOnFloor_2_0;
2980#line 1283
2981 return (retValue_acc);
2982 } else {
2983#line 1285
2984 if (person == 3) {
2985#line 1288
2986 retValue_acc = personOnFloor_3_0;
2987#line 1290
2988 return (retValue_acc);
2989 } else {
2990#line 1292
2991 if (person == 4) {
2992#line 1295
2993 retValue_acc = personOnFloor_4_0;
2994#line 1297
2995 return (retValue_acc);
2996 } else {
2997#line 1299
2998 if (person == 5) {
2999#line 1302
3000 retValue_acc = personOnFloor_5_0;
3001#line 1304
3002 return (retValue_acc);
3003 } else {
3004
3005 }
3006 }
3007 }
3008 }
3009 }
3010 }
3011 } else {
3012#line 1306 "Floor.c"
3013 if (floor == 1) {
3014#line 163 "Floor.c"
3015 if (person == 0) {
3016#line 1312
3017 retValue_acc = personOnFloor_0_1;
3018#line 1314
3019 return (retValue_acc);
3020 } else {
3021#line 1316
3022 if (person == 1) {
3023#line 1319
3024 retValue_acc = personOnFloor_1_1;
3025#line 1321
3026 return (retValue_acc);
3027 } else {
3028#line 1323
3029 if (person == 2) {
3030#line 1326
3031 retValue_acc = personOnFloor_2_1;
3032#line 1328
3033 return (retValue_acc);
3034 } else {
3035#line 1330
3036 if (person == 3) {
3037#line 1333
3038 retValue_acc = personOnFloor_3_1;
3039#line 1335
3040 return (retValue_acc);
3041 } else {
3042#line 1337
3043 if (person == 4) {
3044#line 1340
3045 retValue_acc = personOnFloor_4_1;
3046#line 1342
3047 return (retValue_acc);
3048 } else {
3049#line 1344
3050 if (person == 5) {
3051#line 1347
3052 retValue_acc = personOnFloor_5_1;
3053#line 1349
3054 return (retValue_acc);
3055 } else {
3056
3057 }
3058 }
3059 }
3060 }
3061 }
3062 }
3063 } else {
3064#line 1351 "Floor.c"
3065 if (floor == 2) {
3066#line 170 "Floor.c"
3067 if (person == 0) {
3068#line 1357
3069 retValue_acc = personOnFloor_0_2;
3070#line 1359
3071 return (retValue_acc);
3072 } else {
3073#line 1361
3074 if (person == 1) {
3075#line 1364
3076 retValue_acc = personOnFloor_1_2;
3077#line 1366
3078 return (retValue_acc);
3079 } else {
3080#line 1368
3081 if (person == 2) {
3082#line 1371
3083 retValue_acc = personOnFloor_2_2;
3084#line 1373
3085 return (retValue_acc);
3086 } else {
3087#line 1375
3088 if (person == 3) {
3089#line 1378
3090 retValue_acc = personOnFloor_3_2;
3091#line 1380
3092 return (retValue_acc);
3093 } else {
3094#line 1382
3095 if (person == 4) {
3096#line 1385
3097 retValue_acc = personOnFloor_4_2;
3098#line 1387
3099 return (retValue_acc);
3100 } else {
3101#line 1389
3102 if (person == 5) {
3103#line 1392
3104 retValue_acc = personOnFloor_5_2;
3105#line 1394
3106 return (retValue_acc);
3107 } else {
3108
3109 }
3110 }
3111 }
3112 }
3113 }
3114 }
3115 } else {
3116#line 1396 "Floor.c"
3117 if (floor == 3) {
3118#line 177 "Floor.c"
3119 if (person == 0) {
3120#line 1402
3121 retValue_acc = personOnFloor_0_3;
3122#line 1404
3123 return (retValue_acc);
3124 } else {
3125#line 1406
3126 if (person == 1) {
3127#line 1409
3128 retValue_acc = personOnFloor_1_3;
3129#line 1411
3130 return (retValue_acc);
3131 } else {
3132#line 1413
3133 if (person == 2) {
3134#line 1416
3135 retValue_acc = personOnFloor_2_3;
3136#line 1418
3137 return (retValue_acc);
3138 } else {
3139#line 1420
3140 if (person == 3) {
3141#line 1423
3142 retValue_acc = personOnFloor_3_3;
3143#line 1425
3144 return (retValue_acc);
3145 } else {
3146#line 1427
3147 if (person == 4) {
3148#line 1430
3149 retValue_acc = personOnFloor_4_3;
3150#line 1432
3151 return (retValue_acc);
3152 } else {
3153#line 1434
3154 if (person == 5) {
3155#line 1437
3156 retValue_acc = personOnFloor_5_3;
3157#line 1439
3158 return (retValue_acc);
3159 } else {
3160
3161 }
3162 }
3163 }
3164 }
3165 }
3166 }
3167 } else {
3168#line 1441 "Floor.c"
3169 if (floor == 4) {
3170#line 184 "Floor.c"
3171 if (person == 0) {
3172#line 1447
3173 retValue_acc = personOnFloor_0_4;
3174#line 1449
3175 return (retValue_acc);
3176 } else {
3177#line 1451
3178 if (person == 1) {
3179#line 1454
3180 retValue_acc = personOnFloor_1_4;
3181#line 1456
3182 return (retValue_acc);
3183 } else {
3184#line 1458
3185 if (person == 2) {
3186#line 1461
3187 retValue_acc = personOnFloor_2_4;
3188#line 1463
3189 return (retValue_acc);
3190 } else {
3191#line 1465
3192 if (person == 3) {
3193#line 1468
3194 retValue_acc = personOnFloor_3_4;
3195#line 1470
3196 return (retValue_acc);
3197 } else {
3198#line 1472
3199 if (person == 4) {
3200#line 1475
3201 retValue_acc = personOnFloor_4_4;
3202#line 1477
3203 return (retValue_acc);
3204 } else {
3205#line 1479
3206 if (person == 5) {
3207#line 1482 "Floor.c"
3208 retValue_acc = personOnFloor_5_4;
3209#line 1484
3210 return (retValue_acc);
3211 } else {
3212
3213 }
3214 }
3215 }
3216 }
3217 }
3218 }
3219 } else {
3220
3221 }
3222 }
3223 }
3224 }
3225 }
3226#line 1489 "Floor.c"
3227 retValue_acc = 0;
3228#line 1491
3229 return (retValue_acc);
3230#line 1498
3231 return (retValue_acc);
3232}
3233}
3234#line 188 "Floor.c"
3235void initPersonOnFloor(int person , int floor )
3236{
3237
3238 {
3239#line 225
3240 if (floor == 0) {
3241#line 196
3242 if (person == 0) {
3243#line 197
3244 personOnFloor_0_0 = 1;
3245 } else {
3246#line 198
3247 if (person == 1) {
3248#line 199
3249 personOnFloor_1_0 = 1;
3250 } else {
3251#line 200
3252 if (person == 2) {
3253#line 201
3254 personOnFloor_2_0 = 1;
3255 } else {
3256#line 202
3257 if (person == 3) {
3258#line 203
3259 personOnFloor_3_0 = 1;
3260 } else {
3261#line 204
3262 if (person == 4) {
3263#line 205
3264 personOnFloor_4_0 = 1;
3265 } else {
3266#line 206
3267 if (person == 5) {
3268#line 207
3269 personOnFloor_5_0 = 1;
3270 } else {
3271
3272 }
3273 }
3274 }
3275 }
3276 }
3277 }
3278 } else {
3279#line 208
3280 if (floor == 1) {
3281#line 203
3282 if (person == 0) {
3283#line 204
3284 personOnFloor_0_1 = 1;
3285 } else {
3286#line 205
3287 if (person == 1) {
3288#line 206
3289 personOnFloor_1_1 = 1;
3290 } else {
3291#line 207
3292 if (person == 2) {
3293#line 208
3294 personOnFloor_2_1 = 1;
3295 } else {
3296#line 209
3297 if (person == 3) {
3298#line 210
3299 personOnFloor_3_1 = 1;
3300 } else {
3301#line 211
3302 if (person == 4) {
3303#line 212
3304 personOnFloor_4_1 = 1;
3305 } else {
3306#line 213
3307 if (person == 5) {
3308#line 214
3309 personOnFloor_5_1 = 1;
3310 } else {
3311
3312 }
3313 }
3314 }
3315 }
3316 }
3317 }
3318 } else {
3319#line 215
3320 if (floor == 2) {
3321#line 210
3322 if (person == 0) {
3323#line 211
3324 personOnFloor_0_2 = 1;
3325 } else {
3326#line 212
3327 if (person == 1) {
3328#line 213
3329 personOnFloor_1_2 = 1;
3330 } else {
3331#line 214
3332 if (person == 2) {
3333#line 215
3334 personOnFloor_2_2 = 1;
3335 } else {
3336#line 216
3337 if (person == 3) {
3338#line 217
3339 personOnFloor_3_2 = 1;
3340 } else {
3341#line 218
3342 if (person == 4) {
3343#line 219
3344 personOnFloor_4_2 = 1;
3345 } else {
3346#line 220
3347 if (person == 5) {
3348#line 221
3349 personOnFloor_5_2 = 1;
3350 } else {
3351
3352 }
3353 }
3354 }
3355 }
3356 }
3357 }
3358 } else {
3359#line 222
3360 if (floor == 3) {
3361#line 217
3362 if (person == 0) {
3363#line 218
3364 personOnFloor_0_3 = 1;
3365 } else {
3366#line 219
3367 if (person == 1) {
3368#line 220
3369 personOnFloor_1_3 = 1;
3370 } else {
3371#line 221
3372 if (person == 2) {
3373#line 222
3374 personOnFloor_2_3 = 1;
3375 } else {
3376#line 223
3377 if (person == 3) {
3378#line 224
3379 personOnFloor_3_3 = 1;
3380 } else {
3381#line 225
3382 if (person == 4) {
3383#line 226
3384 personOnFloor_4_3 = 1;
3385 } else {
3386#line 227
3387 if (person == 5) {
3388#line 228
3389 personOnFloor_5_3 = 1;
3390 } else {
3391
3392 }
3393 }
3394 }
3395 }
3396 }
3397 }
3398 } else {
3399#line 229
3400 if (floor == 4) {
3401#line 224
3402 if (person == 0) {
3403#line 225
3404 personOnFloor_0_4 = 1;
3405 } else {
3406#line 226
3407 if (person == 1) {
3408#line 227
3409 personOnFloor_1_4 = 1;
3410 } else {
3411#line 228
3412 if (person == 2) {
3413#line 229
3414 personOnFloor_2_4 = 1;
3415 } else {
3416#line 230
3417 if (person == 3) {
3418#line 231
3419 personOnFloor_3_4 = 1;
3420 } else {
3421#line 232
3422 if (person == 4) {
3423#line 233
3424 personOnFloor_4_4 = 1;
3425 } else {
3426#line 234
3427 if (person == 5) {
3428#line 235
3429 personOnFloor_5_4 = 1;
3430 } else {
3431
3432 }
3433 }
3434 }
3435 }
3436 }
3437 }
3438 } else {
3439
3440 }
3441 }
3442 }
3443 }
3444 }
3445 {
3446#line 225
3447 callOnFloor(floor);
3448 }
3449#line 1598 "Floor.c"
3450 return;
3451}
3452}
3453#line 228 "Floor.c"
3454void removePersonFromFloor(int person , int floor )
3455{
3456
3457 {
3458#line 265
3459 if (floor == 0) {
3460#line 236
3461 if (person == 0) {
3462#line 237
3463 personOnFloor_0_0 = 0;
3464 } else {
3465#line 238
3466 if (person == 1) {
3467#line 239
3468 personOnFloor_1_0 = 0;
3469 } else {
3470#line 240
3471 if (person == 2) {
3472#line 241
3473 personOnFloor_2_0 = 0;
3474 } else {
3475#line 242
3476 if (person == 3) {
3477#line 243
3478 personOnFloor_3_0 = 0;
3479 } else {
3480#line 244
3481 if (person == 4) {
3482#line 245
3483 personOnFloor_4_0 = 0;
3484 } else {
3485#line 246
3486 if (person == 5) {
3487#line 247
3488 personOnFloor_5_0 = 0;
3489 } else {
3490
3491 }
3492 }
3493 }
3494 }
3495 }
3496 }
3497 } else {
3498#line 248
3499 if (floor == 1) {
3500#line 243
3501 if (person == 0) {
3502#line 244
3503 personOnFloor_0_1 = 0;
3504 } else {
3505#line 245
3506 if (person == 1) {
3507#line 246
3508 personOnFloor_1_1 = 0;
3509 } else {
3510#line 247
3511 if (person == 2) {
3512#line 248
3513 personOnFloor_2_1 = 0;
3514 } else {
3515#line 249
3516 if (person == 3) {
3517#line 250
3518 personOnFloor_3_1 = 0;
3519 } else {
3520#line 251
3521 if (person == 4) {
3522#line 252
3523 personOnFloor_4_1 = 0;
3524 } else {
3525#line 253
3526 if (person == 5) {
3527#line 254
3528 personOnFloor_5_1 = 0;
3529 } else {
3530
3531 }
3532 }
3533 }
3534 }
3535 }
3536 }
3537 } else {
3538#line 255
3539 if (floor == 2) {
3540#line 250
3541 if (person == 0) {
3542#line 251
3543 personOnFloor_0_2 = 0;
3544 } else {
3545#line 252
3546 if (person == 1) {
3547#line 253
3548 personOnFloor_1_2 = 0;
3549 } else {
3550#line 254
3551 if (person == 2) {
3552#line 255
3553 personOnFloor_2_2 = 0;
3554 } else {
3555#line 256
3556 if (person == 3) {
3557#line 257
3558 personOnFloor_3_2 = 0;
3559 } else {
3560#line 258
3561 if (person == 4) {
3562#line 259
3563 personOnFloor_4_2 = 0;
3564 } else {
3565#line 260
3566 if (person == 5) {
3567#line 261
3568 personOnFloor_5_2 = 0;
3569 } else {
3570
3571 }
3572 }
3573 }
3574 }
3575 }
3576 }
3577 } else {
3578#line 262
3579 if (floor == 3) {
3580#line 257
3581 if (person == 0) {
3582#line 258
3583 personOnFloor_0_3 = 0;
3584 } else {
3585#line 259
3586 if (person == 1) {
3587#line 260
3588 personOnFloor_1_3 = 0;
3589 } else {
3590#line 261
3591 if (person == 2) {
3592#line 262
3593 personOnFloor_2_3 = 0;
3594 } else {
3595#line 263
3596 if (person == 3) {
3597#line 264
3598 personOnFloor_3_3 = 0;
3599 } else {
3600#line 265
3601 if (person == 4) {
3602#line 266
3603 personOnFloor_4_3 = 0;
3604 } else {
3605#line 267
3606 if (person == 5) {
3607#line 268
3608 personOnFloor_5_3 = 0;
3609 } else {
3610
3611 }
3612 }
3613 }
3614 }
3615 }
3616 }
3617 } else {
3618#line 269
3619 if (floor == 4) {
3620#line 264
3621 if (person == 0) {
3622#line 265
3623 personOnFloor_0_4 = 0;
3624 } else {
3625#line 266
3626 if (person == 1) {
3627#line 267
3628 personOnFloor_1_4 = 0;
3629 } else {
3630#line 268
3631 if (person == 2) {
3632#line 269
3633 personOnFloor_2_4 = 0;
3634 } else {
3635#line 270
3636 if (person == 3) {
3637#line 271
3638 personOnFloor_3_4 = 0;
3639 } else {
3640#line 272
3641 if (person == 4) {
3642#line 273
3643 personOnFloor_4_4 = 0;
3644 } else {
3645#line 274
3646 if (person == 5) {
3647#line 275
3648 personOnFloor_5_4 = 0;
3649 } else {
3650
3651 }
3652 }
3653 }
3654 }
3655 }
3656 }
3657 } else {
3658
3659 }
3660 }
3661 }
3662 }
3663 }
3664 {
3665#line 265
3666 resetCallOnFloor(floor);
3667 }
3668#line 1694 "Floor.c"
3669 return;
3670}
3671}
3672#line 268 "Floor.c"
3673int isTopFloor(int floorID )
3674{ int retValue_acc ;
3675
3676 {
3677#line 1712 "Floor.c"
3678 retValue_acc = floorID == 4;
3679#line 1714
3680 return (retValue_acc);
3681#line 1721
3682 return (retValue_acc);
3683}
3684}
3685#line 1 "UnitTests.o"
3686#pragma merger(0,"UnitTests.i","")
3687#line 13 "UnitTests.c"
3688int cleanupTimeShifts = 12;
3689#line 24 "UnitTests.c"
3690void spec1(void)
3691{ int tmp ;
3692 int tmp___0 ;
3693 int i ;
3694 int tmp___1 ;
3695
3696 {
3697 {
3698#line 25
3699 initBottomUp();
3700#line 26
3701 tmp = getOrigin(5);
3702#line 26
3703 initPersonOnFloor(5, tmp);
3704#line 27
3705 printState();
3706#line 30
3707 tmp___0 = getOrigin(2);
3708#line 30
3709 initPersonOnFloor(2, tmp___0);
3710#line 31
3711 printState();
3712#line 35
3713 i = 0;
3714 }
3715 {
3716#line 35
3717 while (1) {
3718 while_3_continue: ;
3719#line 35
3720 if (i < cleanupTimeShifts) {
3721 {
3722#line 35
3723 tmp___1 = isBlocked();
3724 }
3725#line 35
3726 if (tmp___1 != 1) {
3727
3728 } else {
3729 goto while_3_break;
3730 }
3731 } else {
3732 goto while_3_break;
3733 }
3734 {
3735#line 36
3736 timeShift();
3737#line 37
3738 printState();
3739#line 35
3740 i = i + 1;
3741 }
3742 }
3743 while_3_break: ;
3744 }
3745#line 1071 "UnitTests.c"
3746 return;
3747}
3748}
3749#line 42 "UnitTests.c"
3750void spec14(void)
3751{ int tmp ;
3752 int tmp___0 ;
3753 int i ;
3754 int tmp___1 ;
3755
3756 {
3757 {
3758#line 43
3759 initTopDown();
3760#line 44
3761 tmp = getOrigin(5);
3762#line 44
3763 initPersonOnFloor(5, tmp);
3764#line 45
3765 printState();
3766#line 47
3767 timeShift();
3768#line 48
3769 timeShift();
3770#line 49
3771 timeShift();
3772#line 50
3773 timeShift();
3774#line 52
3775 tmp___0 = getOrigin(0);
3776#line 52
3777 initPersonOnFloor(0, tmp___0);
3778#line 53
3779 printState();
3780#line 57
3781 i = 0;
3782 }
3783 {
3784#line 57
3785 while (1) {
3786 while_4_continue: ;
3787#line 57
3788 if (i < cleanupTimeShifts) {
3789 {
3790#line 57
3791 tmp___1 = isBlocked();
3792 }
3793#line 57
3794 if (tmp___1 != 1) {
3795
3796 } else {
3797 goto while_4_break;
3798 }
3799 } else {
3800 goto while_4_break;
3801 }
3802 {
3803#line 58
3804 timeShift();
3805#line 59
3806 printState();
3807#line 57
3808 i = i + 1;
3809 }
3810 }
3811 while_4_break: ;
3812 }
3813#line 1117 "UnitTests.c"
3814 return;
3815}
3816}
3817#line 1 "libacc.o"
3818#pragma merger(0,"libacc.i","")
3819#line 73 "/usr/include/assert.h"
3820extern __attribute__((__nothrow__, __noreturn__)) void __assert_fail(char const *__assertion ,
3821 char const *__file ,
3822 unsigned int __line ,
3823 char const *__function ) ;
3824#line 471 "/usr/include/stdlib.h"
3825extern __attribute__((__nothrow__)) void *malloc(size_t __size ) __attribute__((__malloc__)) ;
3826#line 488
3827extern __attribute__((__nothrow__)) void free(void *__ptr ) ;
3828#line 32 "libacc.c"
3829void __utac__exception__cf_handler_set(void *exception , int (*cflow_func)(int ,
3830 int ) ,
3831 int val )
3832{ struct __UTAC__EXCEPTION *excep ;
3833 struct __UTAC__CFLOW_FUNC *cf ;
3834 void *tmp ;
3835 unsigned long __cil_tmp7 ;
3836 unsigned long __cil_tmp8 ;
3837 unsigned long __cil_tmp9 ;
3838 unsigned long __cil_tmp10 ;
3839 unsigned long __cil_tmp11 ;
3840 unsigned long __cil_tmp12 ;
3841 unsigned long __cil_tmp13 ;
3842 unsigned long __cil_tmp14 ;
3843 int (**mem_15)(int , int ) ;
3844 int *mem_16 ;
3845 struct __UTAC__CFLOW_FUNC **mem_17 ;
3846 struct __UTAC__CFLOW_FUNC **mem_18 ;
3847 struct __UTAC__CFLOW_FUNC **mem_19 ;
3848
3849 {
3850 {
3851#line 33
3852 excep = (struct __UTAC__EXCEPTION *)exception;
3853#line 34
3854 tmp = malloc(24UL);
3855#line 34
3856 cf = (struct __UTAC__CFLOW_FUNC *)tmp;
3857#line 36
3858 mem_15 = (int (**)(int , int ))cf;
3859#line 36
3860 *mem_15 = cflow_func;
3861#line 37
3862 __cil_tmp7 = (unsigned long )cf;
3863#line 37
3864 __cil_tmp8 = __cil_tmp7 + 8;
3865#line 37
3866 mem_16 = (int *)__cil_tmp8;
3867#line 37
3868 *mem_16 = val;
3869#line 38
3870 __cil_tmp9 = (unsigned long )cf;
3871#line 38
3872 __cil_tmp10 = __cil_tmp9 + 16;
3873#line 38
3874 __cil_tmp11 = (unsigned long )excep;
3875#line 38
3876 __cil_tmp12 = __cil_tmp11 + 24;
3877#line 38
3878 mem_17 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp10;
3879#line 38
3880 mem_18 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp12;
3881#line 38
3882 *mem_17 = *mem_18;
3883#line 39
3884 __cil_tmp13 = (unsigned long )excep;
3885#line 39
3886 __cil_tmp14 = __cil_tmp13 + 24;
3887#line 39
3888 mem_19 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp14;
3889#line 39
3890 *mem_19 = cf;
3891 }
3892#line 654 "libacc.c"
3893 return;
3894}
3895}
3896#line 44 "libacc.c"
3897void __utac__exception__cf_handler_free(void *exception )
3898{ struct __UTAC__EXCEPTION *excep ;
3899 struct __UTAC__CFLOW_FUNC *cf ;
3900 struct __UTAC__CFLOW_FUNC *tmp ;
3901 unsigned long __cil_tmp5 ;
3902 unsigned long __cil_tmp6 ;
3903 struct __UTAC__CFLOW_FUNC *__cil_tmp7 ;
3904 unsigned long __cil_tmp8 ;
3905 unsigned long __cil_tmp9 ;
3906 unsigned long __cil_tmp10 ;
3907 unsigned long __cil_tmp11 ;
3908 void *__cil_tmp12 ;
3909 unsigned long __cil_tmp13 ;
3910 unsigned long __cil_tmp14 ;
3911 struct __UTAC__CFLOW_FUNC **mem_15 ;
3912 struct __UTAC__CFLOW_FUNC **mem_16 ;
3913 struct __UTAC__CFLOW_FUNC **mem_17 ;
3914
3915 {
3916#line 45
3917 excep = (struct __UTAC__EXCEPTION *)exception;
3918#line 46
3919 __cil_tmp5 = (unsigned long )excep;
3920#line 46
3921 __cil_tmp6 = __cil_tmp5 + 24;
3922#line 46
3923 mem_15 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp6;
3924#line 46
3925 cf = *mem_15;
3926 {
3927#line 49
3928 while (1) {
3929 while_5_continue: ;
3930 {
3931#line 49
3932 __cil_tmp7 = (struct __UTAC__CFLOW_FUNC *)0;
3933#line 49
3934 __cil_tmp8 = (unsigned long )__cil_tmp7;
3935#line 49
3936 __cil_tmp9 = (unsigned long )cf;
3937#line 49
3938 if (__cil_tmp9 != __cil_tmp8) {
3939
3940 } else {
3941 goto while_5_break;
3942 }
3943 }
3944 {
3945#line 50
3946 tmp = cf;
3947#line 51
3948 __cil_tmp10 = (unsigned long )cf;
3949#line 51
3950 __cil_tmp11 = __cil_tmp10 + 16;
3951#line 51
3952 mem_16 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp11;
3953#line 51
3954 cf = *mem_16;
3955#line 52
3956 __cil_tmp12 = (void *)tmp;
3957#line 52
3958 free(__cil_tmp12);
3959 }
3960 }
3961 while_5_break: ;
3962 }
3963#line 55
3964 __cil_tmp13 = (unsigned long )excep;
3965#line 55
3966 __cil_tmp14 = __cil_tmp13 + 24;
3967#line 55
3968 mem_17 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp14;
3969#line 55
3970 *mem_17 = (struct __UTAC__CFLOW_FUNC *)0;
3971#line 694 "libacc.c"
3972 return;
3973}
3974}
3975#line 59 "libacc.c"
3976void __utac__exception__cf_handler_reset(void *exception )
3977{ struct __UTAC__EXCEPTION *excep ;
3978 struct __UTAC__CFLOW_FUNC *cf ;
3979 unsigned long __cil_tmp5 ;
3980 unsigned long __cil_tmp6 ;
3981 struct __UTAC__CFLOW_FUNC *__cil_tmp7 ;
3982 unsigned long __cil_tmp8 ;
3983 unsigned long __cil_tmp9 ;
3984 int (*__cil_tmp10)(int , int ) ;
3985 unsigned long __cil_tmp11 ;
3986 unsigned long __cil_tmp12 ;
3987 int __cil_tmp13 ;
3988 unsigned long __cil_tmp14 ;
3989 unsigned long __cil_tmp15 ;
3990 struct __UTAC__CFLOW_FUNC **mem_16 ;
3991 int (**mem_17)(int , int ) ;
3992 int *mem_18 ;
3993 struct __UTAC__CFLOW_FUNC **mem_19 ;
3994
3995 {
3996#line 60
3997 excep = (struct __UTAC__EXCEPTION *)exception;
3998#line 61
3999 __cil_tmp5 = (unsigned long )excep;
4000#line 61
4001 __cil_tmp6 = __cil_tmp5 + 24;
4002#line 61
4003 mem_16 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp6;
4004#line 61
4005 cf = *mem_16;
4006 {
4007#line 64
4008 while (1) {
4009 while_6_continue: ;
4010 {
4011#line 64
4012 __cil_tmp7 = (struct __UTAC__CFLOW_FUNC *)0;
4013#line 64
4014 __cil_tmp8 = (unsigned long )__cil_tmp7;
4015#line 64
4016 __cil_tmp9 = (unsigned long )cf;
4017#line 64
4018 if (__cil_tmp9 != __cil_tmp8) {
4019
4020 } else {
4021 goto while_6_break;
4022 }
4023 }
4024 {
4025#line 65
4026 mem_17 = (int (**)(int , int ))cf;
4027#line 65
4028 __cil_tmp10 = *mem_17;
4029#line 65
4030 __cil_tmp11 = (unsigned long )cf;
4031#line 65
4032 __cil_tmp12 = __cil_tmp11 + 8;
4033#line 65
4034 mem_18 = (int *)__cil_tmp12;
4035#line 65
4036 __cil_tmp13 = *mem_18;
4037#line 65
4038 (*__cil_tmp10)(4, __cil_tmp13);
4039#line 66
4040 __cil_tmp14 = (unsigned long )cf;
4041#line 66
4042 __cil_tmp15 = __cil_tmp14 + 16;
4043#line 66
4044 mem_19 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp15;
4045#line 66
4046 cf = *mem_19;
4047 }
4048 }
4049 while_6_break: ;
4050 }
4051 {
4052#line 69
4053 __utac__exception__cf_handler_free(exception);
4054 }
4055#line 732 "libacc.c"
4056 return;
4057}
4058}
4059#line 80 "libacc.c"
4060void *__utac__error_stack_mgt(void *env , int mode , int count ) ;
4061#line 80 "libacc.c"
4062static struct __ACC__ERR *head = (struct __ACC__ERR *)0;
4063#line 79 "libacc.c"
4064void *__utac__error_stack_mgt(void *env , int mode , int count )
4065{ void *retValue_acc ;
4066 struct __ACC__ERR *new ;
4067 void *tmp ;
4068 struct __ACC__ERR *temp ;
4069 struct __ACC__ERR *next ;
4070 void *excep ;
4071 unsigned long __cil_tmp10 ;
4072 unsigned long __cil_tmp11 ;
4073 unsigned long __cil_tmp12 ;
4074 unsigned long __cil_tmp13 ;
4075 void *__cil_tmp14 ;
4076 unsigned long __cil_tmp15 ;
4077 unsigned long __cil_tmp16 ;
4078 void *__cil_tmp17 ;
4079 void **mem_18 ;
4080 struct __ACC__ERR **mem_19 ;
4081 struct __ACC__ERR **mem_20 ;
4082 void **mem_21 ;
4083 struct __ACC__ERR **mem_22 ;
4084 void **mem_23 ;
4085 void **mem_24 ;
4086
4087 {
4088#line 82 "libacc.c"
4089 if (count == 0) {
4090#line 758 "libacc.c"
4091 return (retValue_acc);
4092 } else {
4093
4094 }
4095#line 86 "libacc.c"
4096 if (mode == 0) {
4097 {
4098#line 87
4099 tmp = malloc(16UL);
4100#line 87
4101 new = (struct __ACC__ERR *)tmp;
4102#line 88
4103 mem_18 = (void **)new;
4104#line 88
4105 *mem_18 = env;
4106#line 89
4107 __cil_tmp10 = (unsigned long )new;
4108#line 89
4109 __cil_tmp11 = __cil_tmp10 + 8;
4110#line 89
4111 mem_19 = (struct __ACC__ERR **)__cil_tmp11;
4112#line 89
4113 *mem_19 = head;
4114#line 90
4115 head = new;
4116#line 776 "libacc.c"
4117 retValue_acc = (void *)new;
4118 }
4119#line 778
4120 return (retValue_acc);
4121 } else {
4122
4123 }
4124#line 94 "libacc.c"
4125 if (mode == 1) {
4126#line 95
4127 temp = head;
4128 {
4129#line 98
4130 while (1) {
4131 while_7_continue: ;
4132#line 98
4133 if (count > 1) {
4134
4135 } else {
4136 goto while_7_break;
4137 }
4138 {
4139#line 99
4140 __cil_tmp12 = (unsigned long )temp;
4141#line 99
4142 __cil_tmp13 = __cil_tmp12 + 8;
4143#line 99
4144 mem_20 = (struct __ACC__ERR **)__cil_tmp13;
4145#line 99
4146 next = *mem_20;
4147#line 100
4148 mem_21 = (void **)temp;
4149#line 100
4150 excep = *mem_21;
4151#line 101
4152 __cil_tmp14 = (void *)temp;
4153#line 101
4154 free(__cil_tmp14);
4155#line 102
4156 __utac__exception__cf_handler_reset(excep);
4157#line 103
4158 temp = next;
4159#line 104
4160 count = count - 1;
4161 }
4162 }
4163 while_7_break: ;
4164 }
4165 {
4166#line 107
4167 __cil_tmp15 = (unsigned long )temp;
4168#line 107
4169 __cil_tmp16 = __cil_tmp15 + 8;
4170#line 107
4171 mem_22 = (struct __ACC__ERR **)__cil_tmp16;
4172#line 107
4173 head = *mem_22;
4174#line 108
4175 mem_23 = (void **)temp;
4176#line 108
4177 excep = *mem_23;
4178#line 109
4179 __cil_tmp17 = (void *)temp;
4180#line 109
4181 free(__cil_tmp17);
4182#line 110
4183 __utac__exception__cf_handler_reset(excep);
4184#line 820 "libacc.c"
4185 retValue_acc = excep;
4186 }
4187#line 822
4188 return (retValue_acc);
4189 } else {
4190
4191 }
4192#line 114
4193 if (mode == 2) {
4194#line 118 "libacc.c"
4195 if (head) {
4196#line 831
4197 mem_24 = (void **)head;
4198#line 831
4199 retValue_acc = *mem_24;
4200#line 833
4201 return (retValue_acc);
4202 } else {
4203#line 837 "libacc.c"
4204 retValue_acc = (void *)0;
4205#line 839
4206 return (retValue_acc);
4207 }
4208 } else {
4209
4210 }
4211#line 846 "libacc.c"
4212 return (retValue_acc);
4213}
4214}
4215#line 122 "libacc.c"
4216void *__utac__get_this_arg(int i , struct JoinPoint *this )
4217{ void *retValue_acc ;
4218 unsigned long __cil_tmp4 ;
4219 unsigned long __cil_tmp5 ;
4220 int __cil_tmp6 ;
4221 int __cil_tmp7 ;
4222 unsigned long __cil_tmp8 ;
4223 unsigned long __cil_tmp9 ;
4224 void **__cil_tmp10 ;
4225 void **__cil_tmp11 ;
4226 int *mem_12 ;
4227 void ***mem_13 ;
4228
4229 {
4230#line 123
4231 if (i > 0) {
4232 {
4233#line 123
4234 __cil_tmp4 = (unsigned long )this;
4235#line 123
4236 __cil_tmp5 = __cil_tmp4 + 16;
4237#line 123
4238 mem_12 = (int *)__cil_tmp5;
4239#line 123
4240 __cil_tmp6 = *mem_12;
4241#line 123
4242 if (i <= __cil_tmp6) {
4243
4244 } else {
4245 {
4246#line 123
4247 __assert_fail("i > 0 && i <= this->argsCount", "libacc.c",
4248 123U, "__utac__get_this_arg");
4249 }
4250 }
4251 }
4252 } else {
4253 {
4254#line 123
4255 __assert_fail("i > 0 && i <= this->argsCount", "libacc.c",
4256 123U, "__utac__get_this_arg");
4257 }
4258 }
4259#line 870 "libacc.c"
4260 __cil_tmp7 = i - 1;
4261#line 870
4262 __cil_tmp8 = (unsigned long )this;
4263#line 870
4264 __cil_tmp9 = __cil_tmp8 + 8;
4265#line 870
4266 mem_13 = (void ***)__cil_tmp9;
4267#line 870
4268 __cil_tmp10 = *mem_13;
4269#line 870
4270 __cil_tmp11 = __cil_tmp10 + __cil_tmp7;
4271#line 870
4272 retValue_acc = *__cil_tmp11;
4273#line 872
4274 return (retValue_acc);
4275#line 879
4276 return (retValue_acc);
4277}
4278}
4279#line 129 "libacc.c"
4280char const *__utac__get_this_argtype(int i , struct JoinPoint *this )
4281{ char const *retValue_acc ;
4282 unsigned long __cil_tmp4 ;
4283 unsigned long __cil_tmp5 ;
4284 int __cil_tmp6 ;
4285 int __cil_tmp7 ;
4286 unsigned long __cil_tmp8 ;
4287 unsigned long __cil_tmp9 ;
4288 char const **__cil_tmp10 ;
4289 char const **__cil_tmp11 ;
4290 int *mem_12 ;
4291 char const ***mem_13 ;
4292
4293 {
4294#line 131
4295 if (i > 0) {
4296 {
4297#line 131
4298 __cil_tmp4 = (unsigned long )this;
4299#line 131
4300 __cil_tmp5 = __cil_tmp4 + 16;
4301#line 131
4302 mem_12 = (int *)__cil_tmp5;
4303#line 131
4304 __cil_tmp6 = *mem_12;
4305#line 131
4306 if (i <= __cil_tmp6) {
4307
4308 } else {
4309 {
4310#line 131
4311 __assert_fail("i > 0 && i <= this->argsCount", "libacc.c",
4312 131U, "__utac__get_this_argtype");
4313 }
4314 }
4315 }
4316 } else {
4317 {
4318#line 131
4319 __assert_fail("i > 0 && i <= this->argsCount", "libacc.c",
4320 131U, "__utac__get_this_argtype");
4321 }
4322 }
4323#line 903 "libacc.c"
4324 __cil_tmp7 = i - 1;
4325#line 903
4326 __cil_tmp8 = (unsigned long )this;
4327#line 903
4328 __cil_tmp9 = __cil_tmp8 + 24;
4329#line 903
4330 mem_13 = (char const ***)__cil_tmp9;
4331#line 903
4332 __cil_tmp10 = *mem_13;
4333#line 903
4334 __cil_tmp11 = __cil_tmp10 + __cil_tmp7;
4335#line 903
4336 retValue_acc = *__cil_tmp11;
4337#line 905
4338 return (retValue_acc);
4339#line 912
4340 return (retValue_acc);
4341}
4342}
4343#line 1 "wsllib_check.o"
4344#pragma merger(0,"wsllib_check.i","")
4345#line 3 "wsllib_check.c"
4346void __automaton_fail(void)
4347{
4348
4349 {
4350 goto ERROR;
4351 ERROR: ;
4352#line 53 "wsllib_check.c"
4353 return;
4354}
4355}
4356#line 1 "Test.o"
4357#pragma merger(0,"Test.i","")
4358#line 544 "/usr/include/stdlib.h"
4359extern __attribute__((__nothrow__, __noreturn__)) void exit(int __status ) ;
4360#line 17 "Test.c"
4361#line 23 "Test.c"
4362int get_nondetMinMax07(void)
4363{ int retValue_acc ;
4364 int nd ;
4365 nd = __VERIFIER_nondet_int();
4366
4367 {
4368#line 26 "Test.c"
4369 if (nd == 0) {
4370#line 1108
4371 retValue_acc = 0;
4372#line 1110
4373 return (retValue_acc);
4374 } else {
4375#line 1112
4376 if (nd == 1) {
4377#line 1117
4378 retValue_acc = 1;
4379#line 1119
4380 return (retValue_acc);
4381 } else {
4382#line 1121
4383 if (nd == 2) {
4384#line 1126
4385 retValue_acc = 2;
4386#line 1128
4387 return (retValue_acc);
4388 } else {
4389#line 1130
4390 if (nd == 3) {
4391#line 1135
4392 retValue_acc = 3;
4393#line 1137
4394 return (retValue_acc);
4395 } else {
4396#line 1139
4397 if (nd == 4) {
4398#line 1144
4399 retValue_acc = 4;
4400#line 1146
4401 return (retValue_acc);
4402 } else {
4403#line 1148
4404 if (nd == 5) {
4405#line 1153
4406 retValue_acc = 5;
4407#line 1155
4408 return (retValue_acc);
4409 } else {
4410#line 1157
4411 if (nd == 6) {
4412#line 1162
4413 retValue_acc = 6;
4414#line 1164
4415 return (retValue_acc);
4416 } else {
4417#line 1166
4418 if (nd == 7) {
4419#line 1171 "Test.c"
4420 retValue_acc = 7;
4421#line 1173
4422 return (retValue_acc);
4423 } else {
4424 {
4425#line 43
4426 exit(0);
4427 }
4428 }
4429 }
4430 }
4431 }
4432 }
4433 }
4434 }
4435 }
4436#line 1183 "Test.c"
4437 return (retValue_acc);
4438}
4439}
4440#line 48 "Test.c"
4441void bobCall(void)
4442{ int tmp ;
4443
4444 {
4445 {
4446#line 48
4447 tmp = getOrigin(0);
4448#line 48
4449 initPersonOnFloor(0, tmp);
4450 }
4451#line 1207 "Test.c"
4452 return;
4453}
4454}
4455#line 50 "Test.c"
4456void aliceCall(void)
4457{ int tmp ;
4458
4459 {
4460 {
4461#line 50
4462 tmp = getOrigin(1);
4463#line 50
4464 initPersonOnFloor(1, tmp);
4465 }
4466#line 1227 "Test.c"
4467 return;
4468}
4469}
4470#line 52 "Test.c"
4471void angelinaCall(void)
4472{ int tmp ;
4473
4474 {
4475 {
4476#line 52
4477 tmp = getOrigin(2);
4478#line 52
4479 initPersonOnFloor(2, tmp);
4480 }
4481#line 1247 "Test.c"
4482 return;
4483}
4484}
4485#line 54 "Test.c"
4486void chuckCall(void)
4487{ int tmp ;
4488
4489 {
4490 {
4491#line 54
4492 tmp = getOrigin(3);
4493#line 54
4494 initPersonOnFloor(3, tmp);
4495 }
4496#line 1267 "Test.c"
4497 return;
4498}
4499}
4500#line 56 "Test.c"
4501void monicaCall(void)
4502{ int tmp ;
4503
4504 {
4505 {
4506#line 56
4507 tmp = getOrigin(4);
4508#line 56
4509 initPersonOnFloor(4, tmp);
4510 }
4511#line 1287 "Test.c"
4512 return;
4513}
4514}
4515#line 58 "Test.c"
4516void bigMacCall(void)
4517{ int tmp ;
4518
4519 {
4520 {
4521#line 58
4522 tmp = getOrigin(5);
4523#line 58
4524 initPersonOnFloor(5, tmp);
4525 }
4526#line 1307 "Test.c"
4527 return;
4528}
4529}
4530#line 60 "Test.c"
4531void threeTS(void)
4532{
4533
4534 {
4535 {
4536#line 60
4537 timeShift();
4538#line 60
4539 timeShift();
4540#line 60
4541 timeShift();
4542 }
4543#line 1331 "Test.c"
4544 return;
4545}
4546}
4547#line 62 "Test.c"
4548void cleanup(void)
4549{ int i ;
4550 int tmp ;
4551 int tmp___0 ;
4552 int __cil_tmp4 ;
4553
4554 {
4555 {
4556#line 65
4557 timeShift();
4558#line 67
4559 i = 0;
4560 }
4561 {
4562#line 67
4563 while (1) {
4564 while_8_continue: ;
4565 {
4566#line 67
4567 __cil_tmp4 = cleanupTimeShifts - 1;
4568#line 67
4569 if (i < __cil_tmp4) {
4570 {
4571#line 67
4572 tmp___0 = isBlocked();
4573 }
4574#line 67
4575 if (tmp___0 != 1) {
4576
4577 } else {
4578 goto while_8_break;
4579 }
4580 } else {
4581 goto while_8_break;
4582 }
4583 }
4584 {
4585#line 71
4586 tmp = isIdle();
4587 }
4588#line 71
4589 if (tmp) {
4590#line 72
4591 return;
4592 } else {
4593 {
4594#line 74
4595 timeShift();
4596 }
4597 }
4598#line 67
4599 i = i + 1;
4600 }
4601 while_8_break: ;
4602 }
4603#line 1362 "Test.c"
4604 return;
4605}
4606}
4607#line 77 "Test.c"
4608void randomSequenceOfActions(void)
4609{ int maxLength ;
4610 int tmp ;
4611 int counter ;
4612 int action ;
4613 int tmp___0 ;
4614 int origin ;
4615 int tmp___1 ;
4616 int tmp___2 ;
4617
4618 {
4619 {
4620#line 78
4621 maxLength = 4;
4622#line 79
4623 tmp = __VERIFIER_nondet_int();
4624 }
4625#line 79
4626 if (tmp) {
4627 {
4628#line 81
4629 initTopDown();
4630 }
4631 } else {
4632 {
4633#line 85
4634 initBottomUp();
4635 }
4636 }
4637#line 90
4638 counter = 0;
4639 {
4640#line 91
4641 while (1) {
4642 while_9_continue: ;
4643#line 91
4644 if (counter < maxLength) {
4645
4646 } else {
4647 goto while_9_break;
4648 }
4649 {
4650#line 92
4651 counter = counter + 1;
4652#line 93
4653 tmp___0 = get_nondetMinMax07();
4654#line 93
4655 action = tmp___0;
4656 }
4657#line 99
4658 if (action < 6) {
4659 {
4660#line 100
4661 tmp___1 = getOrigin(action);
4662#line 100
4663 origin = tmp___1;
4664#line 101
4665 initPersonOnFloor(action, origin);
4666 }
4667 } else {
4668#line 102
4669 if (action == 6) {
4670 {
4671#line 103
4672 timeShift();
4673 }
4674 } else {
4675#line 104
4676 if (action == 7) {
4677 {
4678#line 106
4679 timeShift();
4680#line 107
4681 timeShift();
4682#line 108
4683 timeShift();
4684 }
4685 } else {
4686
4687 }
4688 }
4689 }
4690 {
4691#line 113
4692 tmp___2 = isBlocked();
4693 }
4694#line 113
4695 if (tmp___2) {
4696#line 114
4697 return;
4698 } else {
4699
4700 }
4701 }
4702 while_9_break: ;
4703 }
4704 {
4705#line 117
4706 cleanup();
4707 }
4708#line 1433 "Test.c"
4709 return;
4710}
4711}
4712#line 122 "Test.c"
4713void runTest_Simple(void)
4714{
4715
4716 {
4717 {
4718#line 123
4719 bigMacCall();
4720#line 124
4721 angelinaCall();
4722#line 125
4723 cleanup();
4724 }
4725#line 1457 "Test.c"
4726 return;
4727}
4728}
4729#line 130 "Test.c"
4730void Specification1(void)
4731{
4732
4733 {
4734 {
4735#line 131
4736 bigMacCall();
4737#line 132
4738 angelinaCall();
4739#line 133
4740 cleanup();
4741 }
4742#line 1481 "Test.c"
4743 return;
4744}
4745}
4746#line 137 "Test.c"
4747void Specification2(void)
4748{
4749
4750 {
4751 {
4752#line 138
4753 bigMacCall();
4754#line 139
4755 cleanup();
4756 }
4757#line 1503 "Test.c"
4758 return;
4759}
4760}
4761#line 142 "Test.c"
4762void Specification3(void)
4763{
4764
4765 {
4766 {
4767#line 143
4768 bobCall();
4769#line 144
4770 timeShift();
4771#line 145
4772 timeShift();
4773#line 146
4774 timeShift();
4775#line 147
4776 timeShift();
4777#line 149
4778 timeShift();
4779#line 154
4780 bobCall();
4781#line 155
4782 cleanup();
4783 }
4784#line 1537 "Test.c"
4785 return;
4786}
4787}
4788#line 160 "Test.c"
4789void setup(void)
4790{
4791
4792 {
4793#line 1555 "Test.c"
4794 return;
4795}
4796}
4797#line 165 "Test.c"
4798void runTest(void)
4799{
4800
4801 {
4802 {
4803#line 1571 "Test.c"
4804 __utac_acc__Specification2_spec__1();
4805#line 168 "Test.c"
4806 test();
4807#line 1585 "Test.c"
4808 __utac_acc__Specification2_spec__4();
4809 }
4810#line 1591
4811 return;
4812}
4813}
4814#line 173 "Test.c"
4815int main(void)
4816{ int retValue_acc ;
4817 int tmp ;
4818
4819 {
4820 {
4821#line 174
4822 select_helpers();
4823#line 175
4824 select_features();
4825#line 176
4826 tmp = valid_product();
4827 }
4828#line 176
4829 if (tmp) {
4830 {
4831#line 177
4832 setup();
4833#line 178
4834 runTest();
4835 }
4836 } else {
4837
4838 }
4839#line 1620 "Test.c"
4840 retValue_acc = 0;
4841#line 1622
4842 return (retValue_acc);
4843#line 1629
4844 return (retValue_acc);
4845}
4846}