Showing error 2092

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