Showing error 1886

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