Showing error 1954

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