Showing error 1944

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