Showing error 2128

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