Showing error 2164

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