Showing error 2015

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