Showing error 2005

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_product35_unsafe.cil.c
Line in file: 771
Project: SV-COMP 2013
Project version: 2.6.28
Tools: Manual Work
Entered: 2013-01-17 16:57:54 UTC


Source:

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