Showing error 1891

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