Showing error 2137

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