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