Showing error 2096

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