Showing error 2089

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