Showing error 2048

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_product13_safe.cil.c
Line in file: 701
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 "wsllib_check.o"
 694#pragma merger(0,"wsllib_check.i","")
 695#line 3 "wsllib_check.c"
 696void __automaton_fail(void) 
 697{ 
 698
 699  {
 700  goto ERROR;
 701  ERROR: ;
 702#line 53 "wsllib_check.c"
 703  return;
 704}
 705}
 706#line 1 "Specification4_spec.o"
 707#pragma merger(0,"Specification4_spec.i","")
 708#line 10 "MinePump.h"
 709int isPumpRunning(void) ;
 710#line 11 "Specification4_spec.c"
 711__inline void __utac_acc__Specification4_spec__1(void) 
 712{ int tmp ;
 713  int tmp___0 ;
 714
 715  {
 716  {
 717#line 17
 718  tmp = getWaterLevel();
 719  }
 720#line 17
 721  if (tmp == 0) {
 722    {
 723#line 17
 724    tmp___0 = isPumpRunning();
 725    }
 726#line 17
 727    if (tmp___0) {
 728      {
 729#line 14
 730      __automaton_fail();
 731      }
 732    } else {
 733
 734    }
 735  } else {
 736
 737  }
 738#line 14
 739  return;
 740}
 741}
 742#line 1 "Test.o"
 743#pragma merger(0,"Test.i","")
 744#line 8 "Test.c"
 745int cleanupTimeShifts  =    4;
 746#line 11 "Test.c"
 747#line 20 "Test.c"
 748void timeShift(void) ;
 749#line 17 "Test.c"
 750void cleanup(void) 
 751{ int i ;
 752  int __cil_tmp2 ;
 753
 754  {
 755  {
 756#line 20
 757  timeShift();
 758#line 22
 759  i = 0;
 760  }
 761  {
 762#line 22
 763  while (1) {
 764    while_3_continue: /* CIL Label */ ;
 765    {
 766#line 22
 767    __cil_tmp2 = cleanupTimeShifts - 1;
 768#line 22
 769    if (i < __cil_tmp2) {
 770
 771    } else {
 772      goto while_3_break;
 773    }
 774    }
 775    {
 776#line 23
 777    timeShift();
 778#line 22
 779    i = i + 1;
 780    }
 781  }
 782  while_3_break: /* CIL Label */ ;
 783  }
 784#line 1111 "Test.c"
 785  return;
 786}
 787}
 788#line 57 "Test.c"
 789void printPump(void) ;
 790#line 56 "Test.c"
 791void Specification2(void) 
 792{ 
 793
 794  {
 795  {
 796#line 57
 797  timeShift();
 798#line 57
 799  printPump();
 800#line 58
 801  timeShift();
 802#line 58
 803  printPump();
 804#line 59
 805  timeShift();
 806#line 59
 807  printPump();
 808#line 60
 809  waterRise();
 810#line 60
 811  printPump();
 812#line 61
 813  timeShift();
 814#line 61
 815  printPump();
 816#line 62
 817  changeMethaneLevel();
 818#line 62
 819  printPump();
 820#line 63
 821  timeShift();
 822#line 63
 823  printPump();
 824#line 64
 825  cleanup();
 826  }
 827#line 1159 "Test.c"
 828  return;
 829}
 830}
 831#line 67 "Test.c"
 832void setup(void) 
 833{ 
 834
 835  {
 836#line 1177 "Test.c"
 837  return;
 838}
 839}
 840#line 77 "Test.c"
 841void test(void) ;
 842#line 74 "Test.c"
 843void runTest(void) 
 844{ 
 845
 846  {
 847  {
 848#line 77
 849  test();
 850  }
 851#line 1197 "Test.c"
 852  return;
 853}
 854}
 855#line 83 "Test.c"
 856void select_helpers(void) ;
 857#line 84
 858void select_features(void) ;
 859#line 85
 860int valid_product(void) ;
 861#line 82 "Test.c"
 862int main(void) 
 863{ int retValue_acc ;
 864  int tmp ;
 865
 866  {
 867  {
 868#line 83
 869  select_helpers();
 870#line 84
 871  select_features();
 872#line 85
 873  tmp = valid_product();
 874  }
 875#line 85
 876  if (tmp) {
 877    {
 878#line 86
 879    setup();
 880#line 87
 881    runTest();
 882    }
 883  } else {
 884
 885  }
 886#line 1226 "Test.c"
 887  retValue_acc = 0;
 888#line 1228
 889  return (retValue_acc);
 890#line 1235
 891  return (retValue_acc);
 892}
 893}
 894#line 1 "MinePump.o"
 895#pragma merger(0,"MinePump.i","")
 896#line 6 "MinePump.h"
 897void activatePump(void) ;
 898#line 8
 899void deactivatePump(void) ;
 900#line 7 "MinePump.c"
 901int pumpRunning  =    0;
 902#line 9 "MinePump.c"
 903int systemActive  =    1;
 904#line 16
 905void processEnvironment(void) ;
 906#line 12 "MinePump.c"
 907void timeShift(void) 
 908{ 
 909
 910  {
 911#line 15
 912  if (pumpRunning) {
 913    {
 914#line 16
 915    lowerWaterLevel();
 916    }
 917  } else {
 918
 919  }
 920#line 15
 921  if (systemActive) {
 922    {
 923#line 16
 924    processEnvironment();
 925    }
 926  } else {
 927
 928  }
 929  {
 930#line 95 "MinePump.c"
 931  __utac_acc__Specification4_spec__1();
 932  }
 933#line 101
 934  return;
 935}
 936}
 937#line 19 "MinePump.c"
 938void processEnvironment__wrappee__methaneQuery(void) 
 939{ 
 940
 941  {
 942#line 119 "MinePump.c"
 943  return;
 944}
 945}
 946#line 27 "MinePump.c"
 947int isMethaneAlarm(void) ;
 948#line 22 "MinePump.c"
 949void processEnvironment(void) 
 950{ int tmp ;
 951
 952  {
 953#line 27
 954  if (pumpRunning) {
 955    {
 956#line 27
 957    tmp = isMethaneAlarm();
 958    }
 959#line 27
 960    if (tmp) {
 961      {
 962#line 24
 963      deactivatePump();
 964      }
 965    } else {
 966      {
 967#line 26
 968      processEnvironment__wrappee__methaneQuery();
 969      }
 970    }
 971  } else {
 972    {
 973#line 26
 974    processEnvironment__wrappee__methaneQuery();
 975    }
 976  }
 977#line 145 "MinePump.c"
 978  return;
 979}
 980}
 981#line 31 "MinePump.c"
 982void activatePump__wrappee__base(void) 
 983{ 
 984
 985  {
 986#line 32
 987  pumpRunning = 1;
 988#line 165 "MinePump.c"
 989  return;
 990}
 991}
 992#line 34 "MinePump.c"
 993void activatePump(void) 
 994{ int tmp ;
 995
 996  {
 997  {
 998#line 39
 999  tmp = isMethaneAlarm();
1000  }
1001#line 39
1002  if (tmp) {
1003
1004  } else {
1005    {
1006#line 36
1007    activatePump__wrappee__base();
1008    }
1009  }
1010#line 189 "MinePump.c"
1011  return;
1012}
1013}
1014#line 43 "MinePump.c"
1015void deactivatePump(void) 
1016{ 
1017
1018  {
1019#line 44
1020  pumpRunning = 0;
1021#line 209 "MinePump.c"
1022  return;
1023}
1024}
1025#line 48 "MinePump.c"
1026int isMethaneAlarm(void) 
1027{ int retValue_acc ;
1028
1029  {
1030  {
1031#line 227 "MinePump.c"
1032  retValue_acc = isMethaneLevelCritical();
1033  }
1034#line 229
1035  return (retValue_acc);
1036#line 236
1037  return (retValue_acc);
1038}
1039}
1040#line 53 "MinePump.c"
1041int isPumpRunning(void) 
1042{ int retValue_acc ;
1043
1044  {
1045#line 258 "MinePump.c"
1046  retValue_acc = pumpRunning;
1047#line 260
1048  return (retValue_acc);
1049#line 267
1050  return (retValue_acc);
1051}
1052}
1053#line 58 "MinePump.c"
1054void printPump(void) 
1055{ 
1056
1057  {
1058  {
1059#line 59
1060  printf("Pump(System:");
1061  }
1062#line 60
1063  if (systemActive) {
1064    {
1065#line 61
1066    printf("On");
1067    }
1068  } else {
1069    {
1070#line 62
1071    printf("Off");
1072    }
1073  }
1074  {
1075#line 64
1076  printf(",Pump:");
1077  }
1078#line 65
1079  if (pumpRunning) {
1080    {
1081#line 66
1082    printf("On");
1083    }
1084  } else {
1085    {
1086#line 67
1087    printf("Off");
1088    }
1089  }
1090  {
1091#line 69
1092  printf(") ");
1093#line 70
1094  printEnvironment();
1095#line 71
1096  printf("\n");
1097  }
1098#line 307 "MinePump.c"
1099  return;
1100}
1101}
1102#line 1 "scenario.o"
1103#pragma merger(0,"scenario.i","")
1104#line 1 "scenario.c"
1105void test(void) 
1106{ int splverifierCounter ;
1107  int tmp ;
1108  int tmp___0 ;
1109  int tmp___1 ;
1110  int tmp___2 ;
1111
1112  {
1113#line 2
1114  splverifierCounter = 0;
1115  {
1116#line 3
1117  while (1) {
1118    while_4_continue: /* CIL Label */ ;
1119#line 3
1120    if (splverifierCounter < 4) {
1121
1122    } else {
1123      goto while_4_break;
1124    }
1125    {
1126#line 7
1127    tmp = __VERIFIER_nondet_int();
1128    }
1129#line 7
1130    if (tmp) {
1131      {
1132#line 5
1133      waterRise();
1134      }
1135    } else {
1136
1137    }
1138    {
1139#line 7
1140    tmp___0 = __VERIFIER_nondet_int();
1141    }
1142#line 7
1143    if (tmp___0) {
1144      {
1145#line 8
1146      changeMethaneLevel();
1147      }
1148    } else {
1149
1150    }
1151    {
1152#line 10
1153    tmp___2 = __VERIFIER_nondet_int();
1154    }
1155#line 10
1156    if (tmp___2) {
1157
1158    } else {
1159      {
1160#line 12
1161      tmp___1 = __VERIFIER_nondet_int();
1162      }
1163#line 12
1164      if (tmp___1) {
1165
1166      } else {
1167
1168      }
1169    }
1170    {
1171#line 13
1172    timeShift();
1173    }
1174  }
1175  while_4_break: /* CIL Label */ ;
1176  }
1177  {
1178#line 15
1179  cleanup();
1180  }
1181#line 74 "scenario.c"
1182  return;
1183}
1184}
1185#line 1 "featureselect.o"
1186#pragma merger(0,"featureselect.i","")
1187#line 8 "featureselect.h"
1188int select_one(void) ;
1189#line 8 "featureselect.c"
1190int select_one(void) 
1191{ int retValue_acc ;
1192  int choice = __VERIFIER_nondet_int();
1193
1194  {
1195#line 62 "featureselect.c"
1196  retValue_acc = choice;
1197#line 64
1198  return (retValue_acc);
1199#line 71
1200  return (retValue_acc);
1201}
1202}
1203#line 14 "featureselect.c"
1204void select_features(void) 
1205{ 
1206
1207  {
1208#line 93 "featureselect.c"
1209  return;
1210}
1211}
1212#line 20 "featureselect.c"
1213void select_helpers(void) 
1214{ 
1215
1216  {
1217#line 111 "featureselect.c"
1218  return;
1219}
1220}
1221#line 25 "featureselect.c"
1222int valid_product(void) 
1223{ int retValue_acc ;
1224
1225  {
1226#line 129 "featureselect.c"
1227  retValue_acc = 1;
1228#line 131
1229  return (retValue_acc);
1230#line 138
1231  return (retValue_acc);
1232}
1233}