Showing error 2110

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