Showing error 2124

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