Showing error 2004

User: Jiri Slaby
Error type: Reachable Error Location
Error type description: A specified error location is reachable in some program path
File location: product-lines/minepump_spec3_product34_safe.cil.c
Line in file: 1106
Project: SV-COMP 2013
Project version: 2.6.28
Tools: Manual Work
Entered: 2013-01-17 16:57:54 UTC


Source:

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