Showing error 2099

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