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