Showing error 1883

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