Showing error 1894

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