Showing error 2125

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