Showing error 1979

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