Showing error 2150

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