Showing error 1922

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