Showing error 2008

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