Showing error 1968

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