Showing error 2010

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