Showing error 1910

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