Showing error 2071

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_spec4_product36_unsafe.cil.c
Line in file: 606
Project: SV-COMP 2013
Project version: 2.6.28
Tools: Manual Work
Entered: 2013-01-17 16:57:54 UTC


Source:

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