Showing error 1992

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