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