Showing error 1907

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