Showing error 2076

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