1extern int __VERIFIER_nondet_int(void);
2extern int printf (__const char *__restrict __format, ...);
3
4
5
6#line 2 "libacc.c"
7struct JoinPoint {
8 void **(*fp)(struct JoinPoint * ) ;
9 void **args ;
10 int argsCount ;
11 char const **argsType ;
12 void *(*arg)(int , struct JoinPoint * ) ;
13 char const *(*argType)(int , struct JoinPoint * ) ;
14 void **retValue ;
15 char const *retType ;
16 char const *funcName ;
17 char const *targetName ;
18 char const *fileName ;
19 char const *kind ;
20 void *excep_return ;
21};
22#line 18 "libacc.c"
23struct __UTAC__CFLOW_FUNC {
24 int (*func)(int , int ) ;
25 int val ;
26 struct __UTAC__CFLOW_FUNC *next ;
27};
28#line 18 "libacc.c"
29struct __UTAC__EXCEPTION {
30 void *jumpbuf ;
31 unsigned long long prtValue ;
32 int pops ;
33 struct __UTAC__CFLOW_FUNC *cflowfuncs ;
34};
35#line 211 "/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h"
36typedef unsigned long size_t;
37#line 76 "libacc.c"
38struct __ACC__ERR {
39 void *v ;
40 struct __ACC__ERR *next ;
41};
42#line 1 "scenario.o"
43#pragma merger(0,"scenario.i","")
44#line 5 "scenario.c"
45void waterRise(void) ;
46#line 7
47#line 8
48void changeMethaneLevel(void) ;
49#line 12
50void stopSystem(void) ;
51#line 14
52void timeShift(void) ;
53#line 16
54void cleanup(void) ;
55#line 1 "scenario.c"
56void test(void)
57{ int splverifierCounter ;
58 int tmp ;
59 int tmp___0 ;
60 int tmp___1 ;
61 int tmp___2 ;
62
63 {
64#line 2
65 splverifierCounter = 0;
66 {
67#line 3
68 while (1) {
69 while_0_continue: ;
70#line 3
71 if (splverifierCounter < 4) {
72
73 } else {
74 goto while_0_break;
75 }
76 {
77#line 7
78 tmp = __VERIFIER_nondet_int();
79 }
80#line 7
81 if (tmp) {
82 {
83#line 5
84 waterRise();
85 }
86 } else {
87
88 }
89 {
90#line 7
91 tmp___0 = __VERIFIER_nondet_int();
92 }
93#line 7
94 if (tmp___0) {
95 {
96#line 8
97 changeMethaneLevel();
98 }
99 } else {
100
101 }
102 {
103#line 10
104 tmp___2 = __VERIFIER_nondet_int();
105 }
106#line 10
107 if (tmp___2) {
108
109 } else {
110 {
111#line 12
112 tmp___1 = __VERIFIER_nondet_int();
113 }
114#line 12
115 if (tmp___1) {
116 {
117#line 12
118 stopSystem();
119 }
120 } else {
121
122 }
123 }
124 {
125#line 14
126 timeShift();
127 }
128 }
129 while_0_break: ;
130 }
131 {
132#line 16
133 cleanup();
134 }
135#line 76 "scenario.c"
136 return;
137}
138}
139#line 1 "MinePump.o"
140#pragma merger(0,"MinePump.i","")
141#line 4 "Environment.h"
142void lowerWaterLevel(void) ;
143#line 10
144int isMethaneLevelCritical(void) ;
145#line 15
146void printEnvironment(void) ;
147#line 16
148int isHighWaterSensorDry(void) ;
149#line 17
150int isLowWaterSensorDry(void) ;
151#line 6 "MinePump.h"
152void activatePump(void) ;
153#line 8
154void deactivatePump(void) ;
155#line 10
156int isPumpRunning(void) ;
157#line 13
158void printPump(void) ;
159#line 7 "MinePump.c"
160int pumpRunning = 0;
161#line 9 "MinePump.c"
162int systemActive = 1;
163#line 10
164void __utac_acc__Specification4_spec__1(void) ;
165#line 16
166void processEnvironment(void) ;
167#line 12 "MinePump.c"
168void timeShift(void)
169{
170
171 {
172#line 15
173 if (pumpRunning) {
174 {
175#line 16
176 lowerWaterLevel();
177 }
178 } else {
179
180 }
181#line 15
182 if (systemActive) {
183 {
184#line 16
185 processEnvironment();
186 }
187 } else {
188
189 }
190 {
191#line 101 "MinePump.c"
192 __utac_acc__Specification4_spec__1();
193 }
194#line 107
195 return;
196}
197}
198#line 19 "MinePump.c"
199void processEnvironment__wrappee__base(void)
200{
201
202 {
203#line 125 "MinePump.c"
204 return;
205}
206}
207#line 28 "MinePump.c"
208int isHighWaterLevel(void) ;
209#line 23 "MinePump.c"
210void processEnvironment__wrappee__highWaterSensor(void)
211{ int tmp ;
212
213 {
214#line 28
215 if (! pumpRunning) {
216 {
217#line 28
218 tmp = isHighWaterLevel();
219 }
220#line 28
221 if (tmp) {
222 {
223#line 25
224 activatePump();
225 }
226 } else {
227 {
228#line 27
229 processEnvironment__wrappee__base();
230 }
231 }
232 } else {
233 {
234#line 27
235 processEnvironment__wrappee__base();
236 }
237 }
238#line 151 "MinePump.c"
239 return;
240}
241}
242#line 36 "MinePump.c"
243int isLowWaterLevel(void) ;
244#line 31 "MinePump.c"
245void processEnvironment__wrappee__lowWaterSensor(void)
246{ int tmp ;
247
248 {
249#line 36
250 if (pumpRunning) {
251 {
252#line 36
253 tmp = isLowWaterLevel();
254 }
255#line 36
256 if (tmp) {
257 {
258#line 33
259 deactivatePump();
260 }
261 } else {
262 {
263#line 35
264 processEnvironment__wrappee__highWaterSensor();
265 }
266 }
267 } else {
268 {
269#line 35
270 processEnvironment__wrappee__highWaterSensor();
271 }
272 }
273#line 177 "MinePump.c"
274 return;
275}
276}
277#line 43 "MinePump.c"
278int isMethaneAlarm(void) ;
279#line 38 "MinePump.c"
280void processEnvironment(void)
281{ int tmp ;
282
283 {
284#line 43
285 if (pumpRunning) {
286 {
287#line 43
288 tmp = isMethaneAlarm();
289 }
290#line 43
291 if (tmp) {
292 {
293#line 40
294 deactivatePump();
295 }
296 } else {
297 {
298#line 42
299 processEnvironment__wrappee__lowWaterSensor();
300 }
301 }
302 } else {
303 {
304#line 42
305 processEnvironment__wrappee__lowWaterSensor();
306 }
307 }
308#line 203 "MinePump.c"
309 return;
310}
311}
312#line 47 "MinePump.c"
313void activatePump(void)
314{
315
316 {
317#line 48
318 pumpRunning = 1;
319#line 223 "MinePump.c"
320 return;
321}
322}
323#line 52 "MinePump.c"
324void deactivatePump(void)
325{
326
327 {
328#line 53
329 pumpRunning = 0;
330#line 243 "MinePump.c"
331 return;
332}
333}
334#line 57 "MinePump.c"
335int isMethaneAlarm(void)
336{ int retValue_acc ;
337
338 {
339 {
340#line 261 "MinePump.c"
341 retValue_acc = isMethaneLevelCritical();
342 }
343#line 263
344 return (retValue_acc);
345#line 270
346 return (retValue_acc);
347}
348}
349#line 62 "MinePump.c"
350int isPumpRunning(void)
351{ int retValue_acc ;
352
353 {
354#line 292 "MinePump.c"
355 retValue_acc = pumpRunning;
356#line 294
357 return (retValue_acc);
358#line 301
359 return (retValue_acc);
360}
361}
362#line 68 "MinePump.c"
363#line 67 "MinePump.c"
364void printPump(void)
365{
366
367 {
368 {
369#line 68
370 printf("Pump(System:");
371 }
372#line 69
373 if (systemActive) {
374 {
375#line 70
376 printf("On");
377 }
378 } else {
379 {
380#line 71
381 printf("Off");
382 }
383 }
384 {
385#line 73
386 printf(",Pump:");
387 }
388#line 74
389 if (pumpRunning) {
390 {
391#line 75
392 printf("On");
393 }
394 } else {
395 {
396#line 76
397 printf("Off");
398 }
399 }
400 {
401#line 78
402 printf(") ");
403#line 79
404 printEnvironment();
405#line 80
406 printf("\n");
407 }
408#line 341 "MinePump.c"
409 return;
410}
411}
412#line 82 "MinePump.c"
413int isHighWaterLevel(void)
414{ int retValue_acc ;
415 int tmp ;
416 int tmp___0 ;
417
418 {
419 {
420#line 359 "MinePump.c"
421 tmp = isHighWaterSensorDry();
422 }
423#line 359
424 if (tmp) {
425#line 359
426 tmp___0 = 0;
427 } else {
428#line 359
429 tmp___0 = 1;
430 }
431#line 359
432 retValue_acc = tmp___0;
433#line 361
434 return (retValue_acc);
435#line 368
436 return (retValue_acc);
437}
438}
439#line 85 "MinePump.c"
440int isLowWaterLevel(void)
441{ int retValue_acc ;
442 int tmp ;
443 int tmp___0 ;
444
445 {
446 {
447#line 390 "MinePump.c"
448 tmp = isLowWaterSensorDry();
449 }
450#line 390
451 if (tmp) {
452#line 390
453 tmp___0 = 0;
454 } else {
455#line 390
456 tmp___0 = 1;
457 }
458#line 390
459 retValue_acc = tmp___0;
460#line 392
461 return (retValue_acc);
462#line 399
463 return (retValue_acc);
464}
465}
466#line 88 "MinePump.c"
467void stopSystem(void)
468{
469
470 {
471#line 93
472 if (pumpRunning) {
473 {
474#line 90
475 deactivatePump();
476 }
477 } else {
478
479 }
480#line 93
481 systemActive = 0;
482#line 428 "MinePump.c"
483 return;
484}
485}
486#line 1 "Specification4_spec.o"
487#pragma merger(0,"Specification4_spec.i","")
488#line 4 "wsllib.h"
489void __automaton_fail(void) ;
490#line 12 "Environment.h"
491int getWaterLevel(void) ;
492#line 11 "Specification4_spec.c"
493void __utac_acc__Specification4_spec__1(void)
494{ int tmp ;
495 int tmp___0 ;
496
497 {
498 {
499#line 17
500 tmp = getWaterLevel();
501 }
502#line 17
503 if (tmp == 0) {
504 {
505#line 17
506 tmp___0 = isPumpRunning();
507 }
508#line 17
509 if (tmp___0) {
510 {
511#line 14
512 __automaton_fail();
513 }
514 } else {
515
516 }
517 } else {
518
519 }
520#line 14
521 return;
522}
523}
524#line 1 "featureselect.o"
525#pragma merger(0,"featureselect.i","")
526#line 8 "featureselect.h"
527int select_one(void) ;
528#line 10
529void select_features(void) ;
530#line 12
531void select_helpers(void) ;
532#line 14
533int valid_product(void) ;
534#line 8 "featureselect.c"
535int select_one(void)
536{ int retValue_acc ;
537 int choice = __VERIFIER_nondet_int();
538
539 {
540#line 62 "featureselect.c"
541 retValue_acc = choice;
542#line 64
543 return (retValue_acc);
544#line 71
545 return (retValue_acc);
546}
547}
548#line 14 "featureselect.c"
549void select_features(void)
550{
551
552 {
553#line 93 "featureselect.c"
554 return;
555}
556}
557#line 20 "featureselect.c"
558void select_helpers(void)
559{
560
561 {
562#line 111 "featureselect.c"
563 return;
564}
565}
566#line 25 "featureselect.c"
567int valid_product(void)
568{ int retValue_acc ;
569
570 {
571#line 129 "featureselect.c"
572 retValue_acc = 1;
573#line 131
574 return (retValue_acc);
575#line 138
576 return (retValue_acc);
577}
578}
579#line 1 "wsllib_check.o"
580#pragma merger(0,"wsllib_check.i","")
581#line 3 "wsllib_check.c"
582void __automaton_fail(void)
583{
584
585 {
586 goto ERROR;
587 ERROR: ;
588#line 53 "wsllib_check.c"
589 return;
590}
591}
592#line 1 "Test.o"
593#pragma merger(0,"Test.i","")
594#line 8 "Test.c"
595int cleanupTimeShifts = 4;
596#line 11 "Test.c"
597#line 17 "Test.c"
598void cleanup(void)
599{ int i ;
600 int __cil_tmp2 ;
601
602 {
603 {
604#line 20
605 timeShift();
606#line 22
607 i = 0;
608 }
609 {
610#line 22
611 while (1) {
612 while_1_continue: ;
613 {
614#line 22
615 __cil_tmp2 = cleanupTimeShifts - 1;
616#line 22
617 if (i < __cil_tmp2) {
618
619 } else {
620 goto while_1_break;
621 }
622 }
623 {
624#line 23
625 timeShift();
626#line 22
627 i = i + 1;
628 }
629 }
630 while_1_break: ;
631 }
632#line 1111 "Test.c"
633 return;
634}
635}
636#line 56 "Test.c"
637void Specification2(void)
638{
639
640 {
641 {
642#line 57
643 timeShift();
644#line 57
645 printPump();
646#line 58
647 timeShift();
648#line 58
649 printPump();
650#line 59
651 timeShift();
652#line 59
653 printPump();
654#line 60
655 waterRise();
656#line 60
657 printPump();
658#line 61
659 timeShift();
660#line 61
661 printPump();
662#line 62
663 changeMethaneLevel();
664#line 62
665 printPump();
666#line 63
667 timeShift();
668#line 63
669 printPump();
670#line 64
671 cleanup();
672 }
673#line 1159 "Test.c"
674 return;
675}
676}
677#line 67 "Test.c"
678void setup(void)
679{
680
681 {
682#line 1177 "Test.c"
683 return;
684}
685}
686#line 74 "Test.c"
687void runTest(void)
688{
689
690 {
691 {
692#line 77
693 test();
694 }
695#line 1197 "Test.c"
696 return;
697}
698}
699#line 82 "Test.c"
700int main(void)
701{ int retValue_acc ;
702 int tmp ;
703
704 {
705 {
706#line 83
707 select_helpers();
708#line 84
709 select_features();
710#line 85
711 tmp = valid_product();
712 }
713#line 85
714 if (tmp) {
715 {
716#line 86
717 setup();
718#line 87
719 runTest();
720 }
721 } else {
722
723 }
724#line 1226 "Test.c"
725 retValue_acc = 0;
726#line 1228
727 return (retValue_acc);
728#line 1235
729 return (retValue_acc);
730}
731}
732#line 1 "libacc.o"
733#pragma merger(0,"libacc.i","")
734#line 73 "/usr/include/assert.h"
735extern __attribute__((__nothrow__, __noreturn__)) void __assert_fail(char const *__assertion ,
736 char const *__file ,
737 unsigned int __line ,
738 char const *__function ) ;
739#line 471 "/usr/include/stdlib.h"
740extern __attribute__((__nothrow__)) void *malloc(size_t __size ) __attribute__((__malloc__)) ;
741#line 488
742extern __attribute__((__nothrow__)) void free(void *__ptr ) ;
743#line 32 "libacc.c"
744void __utac__exception__cf_handler_set(void *exception , int (*cflow_func)(int ,
745 int ) ,
746 int val )
747{ struct __UTAC__EXCEPTION *excep ;
748 struct __UTAC__CFLOW_FUNC *cf ;
749 void *tmp ;
750 unsigned long __cil_tmp7 ;
751 unsigned long __cil_tmp8 ;
752 unsigned long __cil_tmp9 ;
753 unsigned long __cil_tmp10 ;
754 unsigned long __cil_tmp11 ;
755 unsigned long __cil_tmp12 ;
756 unsigned long __cil_tmp13 ;
757 unsigned long __cil_tmp14 ;
758 int (**mem_15)(int , int ) ;
759 int *mem_16 ;
760 struct __UTAC__CFLOW_FUNC **mem_17 ;
761 struct __UTAC__CFLOW_FUNC **mem_18 ;
762 struct __UTAC__CFLOW_FUNC **mem_19 ;
763
764 {
765 {
766#line 33
767 excep = (struct __UTAC__EXCEPTION *)exception;
768#line 34
769 tmp = malloc(24UL);
770#line 34
771 cf = (struct __UTAC__CFLOW_FUNC *)tmp;
772#line 36
773 mem_15 = (int (**)(int , int ))cf;
774#line 36
775 *mem_15 = cflow_func;
776#line 37
777 __cil_tmp7 = (unsigned long )cf;
778#line 37
779 __cil_tmp8 = __cil_tmp7 + 8;
780#line 37
781 mem_16 = (int *)__cil_tmp8;
782#line 37
783 *mem_16 = val;
784#line 38
785 __cil_tmp9 = (unsigned long )cf;
786#line 38
787 __cil_tmp10 = __cil_tmp9 + 16;
788#line 38
789 __cil_tmp11 = (unsigned long )excep;
790#line 38
791 __cil_tmp12 = __cil_tmp11 + 24;
792#line 38
793 mem_17 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp10;
794#line 38
795 mem_18 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp12;
796#line 38
797 *mem_17 = *mem_18;
798#line 39
799 __cil_tmp13 = (unsigned long )excep;
800#line 39
801 __cil_tmp14 = __cil_tmp13 + 24;
802#line 39
803 mem_19 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp14;
804#line 39
805 *mem_19 = cf;
806 }
807#line 654 "libacc.c"
808 return;
809}
810}
811#line 44 "libacc.c"
812void __utac__exception__cf_handler_free(void *exception )
813{ struct __UTAC__EXCEPTION *excep ;
814 struct __UTAC__CFLOW_FUNC *cf ;
815 struct __UTAC__CFLOW_FUNC *tmp ;
816 unsigned long __cil_tmp5 ;
817 unsigned long __cil_tmp6 ;
818 struct __UTAC__CFLOW_FUNC *__cil_tmp7 ;
819 unsigned long __cil_tmp8 ;
820 unsigned long __cil_tmp9 ;
821 unsigned long __cil_tmp10 ;
822 unsigned long __cil_tmp11 ;
823 void *__cil_tmp12 ;
824 unsigned long __cil_tmp13 ;
825 unsigned long __cil_tmp14 ;
826 struct __UTAC__CFLOW_FUNC **mem_15 ;
827 struct __UTAC__CFLOW_FUNC **mem_16 ;
828 struct __UTAC__CFLOW_FUNC **mem_17 ;
829
830 {
831#line 45
832 excep = (struct __UTAC__EXCEPTION *)exception;
833#line 46
834 __cil_tmp5 = (unsigned long )excep;
835#line 46
836 __cil_tmp6 = __cil_tmp5 + 24;
837#line 46
838 mem_15 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp6;
839#line 46
840 cf = *mem_15;
841 {
842#line 49
843 while (1) {
844 while_2_continue: ;
845 {
846#line 49
847 __cil_tmp7 = (struct __UTAC__CFLOW_FUNC *)0;
848#line 49
849 __cil_tmp8 = (unsigned long )__cil_tmp7;
850#line 49
851 __cil_tmp9 = (unsigned long )cf;
852#line 49
853 if (__cil_tmp9 != __cil_tmp8) {
854
855 } else {
856 goto while_2_break;
857 }
858 }
859 {
860#line 50
861 tmp = cf;
862#line 51
863 __cil_tmp10 = (unsigned long )cf;
864#line 51
865 __cil_tmp11 = __cil_tmp10 + 16;
866#line 51
867 mem_16 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp11;
868#line 51
869 cf = *mem_16;
870#line 52
871 __cil_tmp12 = (void *)tmp;
872#line 52
873 free(__cil_tmp12);
874 }
875 }
876 while_2_break: ;
877 }
878#line 55
879 __cil_tmp13 = (unsigned long )excep;
880#line 55
881 __cil_tmp14 = __cil_tmp13 + 24;
882#line 55
883 mem_17 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp14;
884#line 55
885 *mem_17 = (struct __UTAC__CFLOW_FUNC *)0;
886#line 694 "libacc.c"
887 return;
888}
889}
890#line 59 "libacc.c"
891void __utac__exception__cf_handler_reset(void *exception )
892{ struct __UTAC__EXCEPTION *excep ;
893 struct __UTAC__CFLOW_FUNC *cf ;
894 unsigned long __cil_tmp5 ;
895 unsigned long __cil_tmp6 ;
896 struct __UTAC__CFLOW_FUNC *__cil_tmp7 ;
897 unsigned long __cil_tmp8 ;
898 unsigned long __cil_tmp9 ;
899 int (*__cil_tmp10)(int , int ) ;
900 unsigned long __cil_tmp11 ;
901 unsigned long __cil_tmp12 ;
902 int __cil_tmp13 ;
903 unsigned long __cil_tmp14 ;
904 unsigned long __cil_tmp15 ;
905 struct __UTAC__CFLOW_FUNC **mem_16 ;
906 int (**mem_17)(int , int ) ;
907 int *mem_18 ;
908 struct __UTAC__CFLOW_FUNC **mem_19 ;
909
910 {
911#line 60
912 excep = (struct __UTAC__EXCEPTION *)exception;
913#line 61
914 __cil_tmp5 = (unsigned long )excep;
915#line 61
916 __cil_tmp6 = __cil_tmp5 + 24;
917#line 61
918 mem_16 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp6;
919#line 61
920 cf = *mem_16;
921 {
922#line 64
923 while (1) {
924 while_3_continue: ;
925 {
926#line 64
927 __cil_tmp7 = (struct __UTAC__CFLOW_FUNC *)0;
928#line 64
929 __cil_tmp8 = (unsigned long )__cil_tmp7;
930#line 64
931 __cil_tmp9 = (unsigned long )cf;
932#line 64
933 if (__cil_tmp9 != __cil_tmp8) {
934
935 } else {
936 goto while_3_break;
937 }
938 }
939 {
940#line 65
941 mem_17 = (int (**)(int , int ))cf;
942#line 65
943 __cil_tmp10 = *mem_17;
944#line 65
945 __cil_tmp11 = (unsigned long )cf;
946#line 65
947 __cil_tmp12 = __cil_tmp11 + 8;
948#line 65
949 mem_18 = (int *)__cil_tmp12;
950#line 65
951 __cil_tmp13 = *mem_18;
952#line 65
953 (*__cil_tmp10)(4, __cil_tmp13);
954#line 66
955 __cil_tmp14 = (unsigned long )cf;
956#line 66
957 __cil_tmp15 = __cil_tmp14 + 16;
958#line 66
959 mem_19 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp15;
960#line 66
961 cf = *mem_19;
962 }
963 }
964 while_3_break: ;
965 }
966 {
967#line 69
968 __utac__exception__cf_handler_free(exception);
969 }
970#line 732 "libacc.c"
971 return;
972}
973}
974#line 80 "libacc.c"
975void *__utac__error_stack_mgt(void *env , int mode , int count ) ;
976#line 80 "libacc.c"
977static struct __ACC__ERR *head = (struct __ACC__ERR *)0;
978#line 79 "libacc.c"
979void *__utac__error_stack_mgt(void *env , int mode , int count )
980{ void *retValue_acc ;
981 struct __ACC__ERR *new ;
982 void *tmp ;
983 struct __ACC__ERR *temp ;
984 struct __ACC__ERR *next ;
985 void *excep ;
986 unsigned long __cil_tmp10 ;
987 unsigned long __cil_tmp11 ;
988 unsigned long __cil_tmp12 ;
989 unsigned long __cil_tmp13 ;
990 void *__cil_tmp14 ;
991 unsigned long __cil_tmp15 ;
992 unsigned long __cil_tmp16 ;
993 void *__cil_tmp17 ;
994 void **mem_18 ;
995 struct __ACC__ERR **mem_19 ;
996 struct __ACC__ERR **mem_20 ;
997 void **mem_21 ;
998 struct __ACC__ERR **mem_22 ;
999 void **mem_23 ;
1000 void **mem_24 ;
1001
1002 {
1003#line 82 "libacc.c"
1004 if (count == 0) {
1005#line 758 "libacc.c"
1006 return (retValue_acc);
1007 } else {
1008
1009 }
1010#line 86 "libacc.c"
1011 if (mode == 0) {
1012 {
1013#line 87
1014 tmp = malloc(16UL);
1015#line 87
1016 new = (struct __ACC__ERR *)tmp;
1017#line 88
1018 mem_18 = (void **)new;
1019#line 88
1020 *mem_18 = env;
1021#line 89
1022 __cil_tmp10 = (unsigned long )new;
1023#line 89
1024 __cil_tmp11 = __cil_tmp10 + 8;
1025#line 89
1026 mem_19 = (struct __ACC__ERR **)__cil_tmp11;
1027#line 89
1028 *mem_19 = head;
1029#line 90
1030 head = new;
1031#line 776 "libacc.c"
1032 retValue_acc = (void *)new;
1033 }
1034#line 778
1035 return (retValue_acc);
1036 } else {
1037
1038 }
1039#line 94 "libacc.c"
1040 if (mode == 1) {
1041#line 95
1042 temp = head;
1043 {
1044#line 98
1045 while (1) {
1046 while_4_continue: ;
1047#line 98
1048 if (count > 1) {
1049
1050 } else {
1051 goto while_4_break;
1052 }
1053 {
1054#line 99
1055 __cil_tmp12 = (unsigned long )temp;
1056#line 99
1057 __cil_tmp13 = __cil_tmp12 + 8;
1058#line 99
1059 mem_20 = (struct __ACC__ERR **)__cil_tmp13;
1060#line 99
1061 next = *mem_20;
1062#line 100
1063 mem_21 = (void **)temp;
1064#line 100
1065 excep = *mem_21;
1066#line 101
1067 __cil_tmp14 = (void *)temp;
1068#line 101
1069 free(__cil_tmp14);
1070#line 102
1071 __utac__exception__cf_handler_reset(excep);
1072#line 103
1073 temp = next;
1074#line 104
1075 count = count - 1;
1076 }
1077 }
1078 while_4_break: ;
1079 }
1080 {
1081#line 107
1082 __cil_tmp15 = (unsigned long )temp;
1083#line 107
1084 __cil_tmp16 = __cil_tmp15 + 8;
1085#line 107
1086 mem_22 = (struct __ACC__ERR **)__cil_tmp16;
1087#line 107
1088 head = *mem_22;
1089#line 108
1090 mem_23 = (void **)temp;
1091#line 108
1092 excep = *mem_23;
1093#line 109
1094 __cil_tmp17 = (void *)temp;
1095#line 109
1096 free(__cil_tmp17);
1097#line 110
1098 __utac__exception__cf_handler_reset(excep);
1099#line 820 "libacc.c"
1100 retValue_acc = excep;
1101 }
1102#line 822
1103 return (retValue_acc);
1104 } else {
1105
1106 }
1107#line 114
1108 if (mode == 2) {
1109#line 118 "libacc.c"
1110 if (head) {
1111#line 831
1112 mem_24 = (void **)head;
1113#line 831
1114 retValue_acc = *mem_24;
1115#line 833
1116 return (retValue_acc);
1117 } else {
1118#line 837 "libacc.c"
1119 retValue_acc = (void *)0;
1120#line 839
1121 return (retValue_acc);
1122 }
1123 } else {
1124
1125 }
1126#line 846 "libacc.c"
1127 return (retValue_acc);
1128}
1129}
1130#line 122 "libacc.c"
1131void *__utac__get_this_arg(int i , struct JoinPoint *this )
1132{ void *retValue_acc ;
1133 unsigned long __cil_tmp4 ;
1134 unsigned long __cil_tmp5 ;
1135 int __cil_tmp6 ;
1136 int __cil_tmp7 ;
1137 unsigned long __cil_tmp8 ;
1138 unsigned long __cil_tmp9 ;
1139 void **__cil_tmp10 ;
1140 void **__cil_tmp11 ;
1141 int *mem_12 ;
1142 void ***mem_13 ;
1143
1144 {
1145#line 123
1146 if (i > 0) {
1147 {
1148#line 123
1149 __cil_tmp4 = (unsigned long )this;
1150#line 123
1151 __cil_tmp5 = __cil_tmp4 + 16;
1152#line 123
1153 mem_12 = (int *)__cil_tmp5;
1154#line 123
1155 __cil_tmp6 = *mem_12;
1156#line 123
1157 if (i <= __cil_tmp6) {
1158
1159 } else {
1160 {
1161#line 123
1162 __assert_fail("i > 0 && i <= this->argsCount", "libacc.c",
1163 123U, "__utac__get_this_arg");
1164 }
1165 }
1166 }
1167 } else {
1168 {
1169#line 123
1170 __assert_fail("i > 0 && i <= this->argsCount", "libacc.c",
1171 123U, "__utac__get_this_arg");
1172 }
1173 }
1174#line 870 "libacc.c"
1175 __cil_tmp7 = i - 1;
1176#line 870
1177 __cil_tmp8 = (unsigned long )this;
1178#line 870
1179 __cil_tmp9 = __cil_tmp8 + 8;
1180#line 870
1181 mem_13 = (void ***)__cil_tmp9;
1182#line 870
1183 __cil_tmp10 = *mem_13;
1184#line 870
1185 __cil_tmp11 = __cil_tmp10 + __cil_tmp7;
1186#line 870
1187 retValue_acc = *__cil_tmp11;
1188#line 872
1189 return (retValue_acc);
1190#line 879
1191 return (retValue_acc);
1192}
1193}
1194#line 129 "libacc.c"
1195char const *__utac__get_this_argtype(int i , struct JoinPoint *this )
1196{ char const *retValue_acc ;
1197 unsigned long __cil_tmp4 ;
1198 unsigned long __cil_tmp5 ;
1199 int __cil_tmp6 ;
1200 int __cil_tmp7 ;
1201 unsigned long __cil_tmp8 ;
1202 unsigned long __cil_tmp9 ;
1203 char const **__cil_tmp10 ;
1204 char const **__cil_tmp11 ;
1205 int *mem_12 ;
1206 char const ***mem_13 ;
1207
1208 {
1209#line 131
1210 if (i > 0) {
1211 {
1212#line 131
1213 __cil_tmp4 = (unsigned long )this;
1214#line 131
1215 __cil_tmp5 = __cil_tmp4 + 16;
1216#line 131
1217 mem_12 = (int *)__cil_tmp5;
1218#line 131
1219 __cil_tmp6 = *mem_12;
1220#line 131
1221 if (i <= __cil_tmp6) {
1222
1223 } else {
1224 {
1225#line 131
1226 __assert_fail("i > 0 && i <= this->argsCount", "libacc.c",
1227 131U, "__utac__get_this_argtype");
1228 }
1229 }
1230 }
1231 } else {
1232 {
1233#line 131
1234 __assert_fail("i > 0 && i <= this->argsCount", "libacc.c",
1235 131U, "__utac__get_this_argtype");
1236 }
1237 }
1238#line 903 "libacc.c"
1239 __cil_tmp7 = i - 1;
1240#line 903
1241 __cil_tmp8 = (unsigned long )this;
1242#line 903
1243 __cil_tmp9 = __cil_tmp8 + 24;
1244#line 903
1245 mem_13 = (char const ***)__cil_tmp9;
1246#line 903
1247 __cil_tmp10 = *mem_13;
1248#line 903
1249 __cil_tmp11 = __cil_tmp10 + __cil_tmp7;
1250#line 903
1251 retValue_acc = *__cil_tmp11;
1252#line 905
1253 return (retValue_acc);
1254#line 912
1255 return (retValue_acc);
1256}
1257}
1258#line 1 "Environment.o"
1259#pragma merger(0,"Environment.i","")
1260#line 9 "Environment.c"
1261int waterLevel = 1;
1262#line 12 "Environment.c"
1263int methaneLevelCritical = 0;
1264#line 15 "Environment.c"
1265void lowerWaterLevel(void)
1266{
1267
1268 {
1269#line 19
1270 if (waterLevel > 0) {
1271#line 17
1272 waterLevel = waterLevel - 1;
1273 } else {
1274
1275 }
1276#line 85 "Environment.c"
1277 return;
1278}
1279}
1280#line 22 "Environment.c"
1281void waterRise(void)
1282{
1283
1284 {
1285#line 26
1286 if (waterLevel < 2) {
1287#line 24
1288 waterLevel = waterLevel + 1;
1289 } else {
1290
1291 }
1292#line 108 "Environment.c"
1293 return;
1294}
1295}
1296#line 29 "Environment.c"
1297void changeMethaneLevel(void)
1298{
1299
1300 {
1301#line 34
1302 if (methaneLevelCritical) {
1303#line 31
1304 methaneLevelCritical = 0;
1305 } else {
1306#line 33
1307 methaneLevelCritical = 1;
1308 }
1309#line 134 "Environment.c"
1310 return;
1311}
1312}
1313#line 38 "Environment.c"
1314int isMethaneLevelCritical(void)
1315{ int retValue_acc ;
1316
1317 {
1318#line 152 "Environment.c"
1319 retValue_acc = methaneLevelCritical;
1320#line 154
1321 return (retValue_acc);
1322#line 161
1323 return (retValue_acc);
1324}
1325}
1326#line 44 "Environment.c"
1327void printEnvironment(void)
1328{
1329
1330 {
1331 {
1332#line 45
1333 printf("Env(Water:%i", waterLevel);
1334#line 46
1335 printf(",Meth:");
1336 }
1337#line 47
1338 if (methaneLevelCritical) {
1339 {
1340#line 48
1341 printf("CRIT");
1342 }
1343 } else {
1344 {
1345#line 49
1346 printf("OK");
1347 }
1348 }
1349 {
1350#line 51
1351 printf(")");
1352 }
1353#line 193 "Environment.c"
1354 return;
1355}
1356}
1357#line 55 "Environment.c"
1358int getWaterLevel(void)
1359{ int retValue_acc ;
1360
1361 {
1362#line 211 "Environment.c"
1363 retValue_acc = waterLevel;
1364#line 213
1365 return (retValue_acc);
1366#line 220
1367 return (retValue_acc);
1368}
1369}
1370#line 58 "Environment.c"
1371int isHighWaterSensorDry(void)
1372{ int retValue_acc ;
1373
1374 {
1375#line 65 "Environment.c"
1376 if (waterLevel < 2) {
1377#line 245
1378 retValue_acc = 1;
1379#line 247
1380 return (retValue_acc);
1381 } else {
1382#line 253 "Environment.c"
1383 retValue_acc = 0;
1384#line 255
1385 return (retValue_acc);
1386 }
1387#line 262 "Environment.c"
1388 return (retValue_acc);
1389}
1390}
1391#line 67 "Environment.c"
1392int isLowWaterSensorDry(void)
1393{ int retValue_acc ;
1394
1395 {
1396#line 284 "Environment.c"
1397 retValue_acc = waterLevel == 0;
1398#line 286
1399 return (retValue_acc);
1400#line 293
1401 return (retValue_acc);
1402}
1403}