Showing error 2139

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