Showing error 2055

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