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 11
50void startSystem(void) ;
51#line 13
52void stopSystem(void) ;
53#line 15
54void timeShift(void) ;
55#line 17
56void cleanup(void) ;
57#line 1 "scenario.c"
58void test(void)
59{ int splverifierCounter ;
60 int tmp ;
61 int tmp___0 ;
62 int tmp___1 ;
63 int tmp___2 ;
64
65 {
66#line 2
67 splverifierCounter = 0;
68 {
69#line 3
70 while (1) {
71 while_0_continue: ;
72#line 3
73 if (splverifierCounter < 4) {
74
75 } else {
76 goto while_0_break;
77 }
78 {
79#line 7
80 tmp = __VERIFIER_nondet_int();
81 }
82#line 7
83 if (tmp) {
84 {
85#line 5
86 waterRise();
87 }
88 } else {
89
90 }
91 {
92#line 7
93 tmp___0 = __VERIFIER_nondet_int();
94 }
95#line 7
96 if (tmp___0) {
97 {
98#line 8
99 changeMethaneLevel();
100 }
101 } else {
102
103 }
104 {
105#line 10
106 tmp___2 = __VERIFIER_nondet_int();
107 }
108#line 10
109 if (tmp___2) {
110 {
111#line 11
112 startSystem();
113 }
114 } else {
115 {
116#line 12
117 tmp___1 = __VERIFIER_nondet_int();
118 }
119#line 12
120 if (tmp___1) {
121 {
122#line 13
123 stopSystem();
124 }
125 } else {
126
127 }
128 }
129 {
130#line 15
131 timeShift();
132 }
133 }
134 while_0_break: ;
135 }
136 {
137#line 17
138 cleanup();
139 }
140#line 78 "scenario.c"
141 return;
142}
143}
144#line 1 "MinePump.o"
145#pragma merger(0,"MinePump.i","")
146#line 4 "Environment.h"
147void lowerWaterLevel(void) ;
148#line 10
149int isMethaneLevelCritical(void) ;
150#line 15
151void printEnvironment(void) ;
152#line 16
153int isHighWaterSensorDry(void) ;
154#line 6 "MinePump.h"
155void activatePump(void) ;
156#line 8
157void deactivatePump(void) ;
158#line 10
159int isPumpRunning(void) ;
160#line 13
161void printPump(void) ;
162#line 7 "MinePump.c"
163int pumpRunning = 0;
164#line 9 "MinePump.c"
165int systemActive = 1;
166#line 10
167void __utac_acc__Specification4_spec__1(void) ;
168#line 16
169void processEnvironment(void) ;
170#line 12 "MinePump.c"
171void timeShift(void)
172{
173
174 {
175#line 15
176 if (pumpRunning) {
177 {
178#line 16
179 lowerWaterLevel();
180 }
181 } else {
182
183 }
184#line 15
185 if (systemActive) {
186 {
187#line 16
188 processEnvironment();
189 }
190 } else {
191
192 }
193 {
194#line 101 "MinePump.c"
195 __utac_acc__Specification4_spec__1();
196 }
197#line 107
198 return;
199}
200}
201#line 19 "MinePump.c"
202void processEnvironment__wrappee__base(void)
203{
204
205 {
206#line 125 "MinePump.c"
207 return;
208}
209}
210#line 28 "MinePump.c"
211int isHighWaterLevel(void) ;
212#line 23 "MinePump.c"
213void processEnvironment__wrappee__highWaterSensor(void)
214{ int tmp ;
215
216 {
217#line 28
218 if (! pumpRunning) {
219 {
220#line 28
221 tmp = isHighWaterLevel();
222 }
223#line 28
224 if (tmp) {
225 {
226#line 25
227 activatePump();
228 }
229 } else {
230 {
231#line 27
232 processEnvironment__wrappee__base();
233 }
234 }
235 } else {
236 {
237#line 27
238 processEnvironment__wrappee__base();
239 }
240 }
241#line 151 "MinePump.c"
242 return;
243}
244}
245#line 35 "MinePump.c"
246int isMethaneAlarm(void) ;
247#line 30 "MinePump.c"
248void processEnvironment(void)
249{ int tmp ;
250
251 {
252#line 35
253 if (pumpRunning) {
254 {
255#line 35
256 tmp = isMethaneAlarm();
257 }
258#line 35
259 if (tmp) {
260 {
261#line 32
262 deactivatePump();
263 }
264 } else {
265 {
266#line 34
267 processEnvironment__wrappee__highWaterSensor();
268 }
269 }
270 } else {
271 {
272#line 34
273 processEnvironment__wrappee__highWaterSensor();
274 }
275 }
276#line 177 "MinePump.c"
277 return;
278}
279}
280#line 39 "MinePump.c"
281void activatePump(void)
282{
283
284 {
285#line 40
286 pumpRunning = 1;
287#line 197 "MinePump.c"
288 return;
289}
290}
291#line 44 "MinePump.c"
292void deactivatePump(void)
293{
294
295 {
296#line 45
297 pumpRunning = 0;
298#line 217 "MinePump.c"
299 return;
300}
301}
302#line 49 "MinePump.c"
303int isMethaneAlarm(void)
304{ int retValue_acc ;
305
306 {
307 {
308#line 235 "MinePump.c"
309 retValue_acc = isMethaneLevelCritical();
310 }
311#line 237
312 return (retValue_acc);
313#line 244
314 return (retValue_acc);
315}
316}
317#line 54 "MinePump.c"
318int isPumpRunning(void)
319{ int retValue_acc ;
320
321 {
322#line 266 "MinePump.c"
323 retValue_acc = pumpRunning;
324#line 268
325 return (retValue_acc);
326#line 275
327 return (retValue_acc);
328}
329}
330#line 60 "MinePump.c"
331#line 59 "MinePump.c"
332void printPump(void)
333{
334
335 {
336 {
337#line 60
338 printf("Pump(System:");
339 }
340#line 61
341 if (systemActive) {
342 {
343#line 62
344 printf("On");
345 }
346 } else {
347 {
348#line 63
349 printf("Off");
350 }
351 }
352 {
353#line 65
354 printf(",Pump:");
355 }
356#line 66
357 if (pumpRunning) {
358 {
359#line 67
360 printf("On");
361 }
362 } else {
363 {
364#line 68
365 printf("Off");
366 }
367 }
368 {
369#line 70
370 printf(") ");
371#line 71
372 printEnvironment();
373#line 72
374 printf("\n");
375 }
376#line 315 "MinePump.c"
377 return;
378}
379}
380#line 74 "MinePump.c"
381int isHighWaterLevel(void)
382{ int retValue_acc ;
383 int tmp ;
384 int tmp___0 ;
385
386 {
387 {
388#line 333 "MinePump.c"
389 tmp = isHighWaterSensorDry();
390 }
391#line 333
392 if (tmp) {
393#line 333
394 tmp___0 = 0;
395 } else {
396#line 333
397 tmp___0 = 1;
398 }
399#line 333
400 retValue_acc = tmp___0;
401#line 335
402 return (retValue_acc);
403#line 342
404 return (retValue_acc);
405}
406}
407#line 77 "MinePump.c"
408void stopSystem(void)
409{
410
411 {
412#line 82
413 if (pumpRunning) {
414 {
415#line 79
416 deactivatePump();
417 }
418 } else {
419
420 }
421#line 82
422 systemActive = 0;
423#line 371 "MinePump.c"
424 return;
425}
426}
427#line 84 "MinePump.c"
428void startSystem(void)
429{
430
431 {
432#line 86
433 systemActive = 1;
434#line 391 "MinePump.c"
435 return;
436}
437}
438#line 1 "wsllib_check.o"
439#pragma merger(0,"wsllib_check.i","")
440#line 3 "wsllib_check.c"
441void __automaton_fail(void)
442{
443
444 {
445 goto ERROR;
446 ERROR: ;
447#line 53 "wsllib_check.c"
448 return;
449}
450}
451#line 1 "Test.o"
452#pragma merger(0,"Test.i","")
453#line 8 "Test.c"
454int cleanupTimeShifts = 4;
455#line 11 "Test.c"
456#line 17 "Test.c"
457void cleanup(void)
458{ int i ;
459 int __cil_tmp2 ;
460
461 {
462 {
463#line 20
464 timeShift();
465#line 22
466 i = 0;
467 }
468 {
469#line 22
470 while (1) {
471 while_1_continue: ;
472 {
473#line 22
474 __cil_tmp2 = cleanupTimeShifts - 1;
475#line 22
476 if (i < __cil_tmp2) {
477
478 } else {
479 goto while_1_break;
480 }
481 }
482 {
483#line 23
484 timeShift();
485#line 22
486 i = i + 1;
487 }
488 }
489 while_1_break: ;
490 }
491#line 1111 "Test.c"
492 return;
493}
494}
495#line 56 "Test.c"
496void Specification2(void)
497{
498
499 {
500 {
501#line 57
502 timeShift();
503#line 57
504 printPump();
505#line 58
506 timeShift();
507#line 58
508 printPump();
509#line 59
510 timeShift();
511#line 59
512 printPump();
513#line 60
514 waterRise();
515#line 60
516 printPump();
517#line 61
518 timeShift();
519#line 61
520 printPump();
521#line 62
522 changeMethaneLevel();
523#line 62
524 printPump();
525#line 63
526 timeShift();
527#line 63
528 printPump();
529#line 64
530 cleanup();
531 }
532#line 1159 "Test.c"
533 return;
534}
535}
536#line 67 "Test.c"
537void setup(void)
538{
539
540 {
541#line 1177 "Test.c"
542 return;
543}
544}
545#line 74 "Test.c"
546void runTest(void)
547{
548
549 {
550 {
551#line 77
552 test();
553 }
554#line 1197 "Test.c"
555 return;
556}
557}
558#line 83 "Test.c"
559void select_helpers(void) ;
560#line 84
561void select_features(void) ;
562#line 85
563int valid_product(void) ;
564#line 82 "Test.c"
565int main(void)
566{ int retValue_acc ;
567 int tmp ;
568
569 {
570 {
571#line 83
572 select_helpers();
573#line 84
574 select_features();
575#line 85
576 tmp = valid_product();
577 }
578#line 85
579 if (tmp) {
580 {
581#line 86
582 setup();
583#line 87
584 runTest();
585 }
586 } else {
587
588 }
589#line 1226 "Test.c"
590 retValue_acc = 0;
591#line 1228
592 return (retValue_acc);
593#line 1235
594 return (retValue_acc);
595}
596}
597#line 1 "Environment.o"
598#pragma merger(0,"Environment.i","")
599#line 12 "Environment.h"
600int getWaterLevel(void) ;
601#line 9 "Environment.c"
602int waterLevel = 1;
603#line 12 "Environment.c"
604int methaneLevelCritical = 0;
605#line 15 "Environment.c"
606void lowerWaterLevel(void)
607{
608
609 {
610#line 19
611 if (waterLevel > 0) {
612#line 17
613 waterLevel = waterLevel - 1;
614 } else {
615
616 }
617#line 83 "Environment.c"
618 return;
619}
620}
621#line 22 "Environment.c"
622void waterRise(void)
623{
624
625 {
626#line 26
627 if (waterLevel < 2) {
628#line 24
629 waterLevel = waterLevel + 1;
630 } else {
631
632 }
633#line 106 "Environment.c"
634 return;
635}
636}
637#line 29 "Environment.c"
638void changeMethaneLevel(void)
639{
640
641 {
642#line 34
643 if (methaneLevelCritical) {
644#line 31
645 methaneLevelCritical = 0;
646 } else {
647#line 33
648 methaneLevelCritical = 1;
649 }
650#line 132 "Environment.c"
651 return;
652}
653}
654#line 38 "Environment.c"
655int isMethaneLevelCritical(void)
656{ int retValue_acc ;
657
658 {
659#line 150 "Environment.c"
660 retValue_acc = methaneLevelCritical;
661#line 152
662 return (retValue_acc);
663#line 159
664 return (retValue_acc);
665}
666}
667#line 44 "Environment.c"
668void printEnvironment(void)
669{
670
671 {
672 {
673#line 45
674 printf("Env(Water:%i", waterLevel);
675#line 46
676 printf(",Meth:");
677 }
678#line 47
679 if (methaneLevelCritical) {
680 {
681#line 48
682 printf("CRIT");
683 }
684 } else {
685 {
686#line 49
687 printf("OK");
688 }
689 }
690 {
691#line 51
692 printf(")");
693 }
694#line 191 "Environment.c"
695 return;
696}
697}
698#line 55 "Environment.c"
699int getWaterLevel(void)
700{ int retValue_acc ;
701
702 {
703#line 209 "Environment.c"
704 retValue_acc = waterLevel;
705#line 211
706 return (retValue_acc);
707#line 218
708 return (retValue_acc);
709}
710}
711#line 58 "Environment.c"
712int isHighWaterSensorDry(void)
713{ int retValue_acc ;
714
715 {
716#line 65 "Environment.c"
717 if (waterLevel < 2) {
718#line 243
719 retValue_acc = 1;
720#line 245
721 return (retValue_acc);
722 } else {
723#line 251 "Environment.c"
724 retValue_acc = 0;
725#line 253
726 return (retValue_acc);
727 }
728#line 260 "Environment.c"
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 "Specification4_spec.o"
1259#pragma merger(0,"Specification4_spec.i","")
1260#line 11 "Specification4_spec.c"
1261void __utac_acc__Specification4_spec__1(void)
1262{ int tmp ;
1263 int tmp___0 ;
1264
1265 {
1266 {
1267#line 17
1268 tmp = getWaterLevel();
1269 }
1270#line 17
1271 if (tmp == 0) {
1272 {
1273#line 17
1274 tmp___0 = isPumpRunning();
1275 }
1276#line 17
1277 if (tmp___0) {
1278 {
1279#line 14
1280 __automaton_fail();
1281 }
1282 } else {
1283
1284 }
1285 } else {
1286
1287 }
1288#line 14
1289 return;
1290}
1291}
1292#line 1 "featureselect.o"
1293#pragma merger(0,"featureselect.i","")
1294#line 8 "featureselect.h"
1295int select_one(void) ;
1296#line 8 "featureselect.c"
1297int select_one(void)
1298{ int retValue_acc ;
1299 int choice = __VERIFIER_nondet_int();
1300
1301 {
1302#line 62 "featureselect.c"
1303 retValue_acc = choice;
1304#line 64
1305 return (retValue_acc);
1306#line 71
1307 return (retValue_acc);
1308}
1309}
1310#line 14 "featureselect.c"
1311void select_features(void)
1312{
1313
1314 {
1315#line 93 "featureselect.c"
1316 return;
1317}
1318}
1319#line 20 "featureselect.c"
1320void select_helpers(void)
1321{
1322
1323 {
1324#line 111 "featureselect.c"
1325 return;
1326}
1327}
1328#line 25 "featureselect.c"
1329int valid_product(void)
1330{ int retValue_acc ;
1331
1332 {
1333#line 129 "featureselect.c"
1334 retValue_acc = 1;
1335#line 131
1336 return (retValue_acc);
1337#line 138
1338 return (retValue_acc);
1339}
1340}