Showing error 1973

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