Showing error 2046

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