Showing error 2045

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