Showing error 2112

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