Showing error 2087

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