Showing error 1988

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