Showing error 2060

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