Showing error 2154

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