Showing error 2070

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