Showing error 2075

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