Showing error 2122

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