Showing error 2040

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