Showing error 1898

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