Showing error 2163

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