Showing error 2000

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_product30_unsafe.cil.c
Line in file: 1241
Project: SV-COMP 2013
Project version: 2.6.28
Tools: Manual Work
Entered: 2013-01-17 16:57:54 UTC


Source:

   1extern int __VERIFIER_nondet_int(void);
   2extern int printf (__const char *__restrict __format, ...);
   3/* Generated by CIL v. 1.3.7 */
   4/* print_CIL_Input is true */
   5
   6#line 2 "libacc.c"
   7struct JoinPoint {
   8   void **(*fp)(struct JoinPoint * ) ;
   9   void **args ;
  10   int argsCount ;
  11   char const   **argsType ;
  12   void *(*arg)(int  , struct JoinPoint * ) ;
  13   char const   *(*argType)(int  , struct JoinPoint * ) ;
  14   void **retValue ;
  15   char const   *retType ;
  16   char const   *funcName ;
  17   char const   *targetName ;
  18   char const   *fileName ;
  19   char const   *kind ;
  20   void *excep_return ;
  21};
  22#line 18 "libacc.c"
  23struct __UTAC__CFLOW_FUNC {
  24   int (*func)(int  , int  ) ;
  25   int val ;
  26   struct __UTAC__CFLOW_FUNC *next ;
  27};
  28#line 18 "libacc.c"
  29struct __UTAC__EXCEPTION {
  30   void *jumpbuf ;
  31   unsigned long long prtValue ;
  32   int pops ;
  33   struct __UTAC__CFLOW_FUNC *cflowfuncs ;
  34};
  35#line 211 "/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h"
  36typedef unsigned long size_t;
  37#line 76 "libacc.c"
  38struct __ACC__ERR {
  39   void *v ;
  40   struct __ACC__ERR *next ;
  41};
  42#line 1 "Environment.o"
  43#pragma merger(0,"Environment.i","")
  44#line 4 "Environment.h"
  45void lowerWaterLevel(void) ;
  46#line 6
  47void waterRise(void) ;
  48#line 8
  49void changeMethaneLevel(void) ;
  50#line 10
  51int isMethaneLevelCritical(void) ;
  52#line 12
  53int getWaterLevel(void) ;
  54#line 15
  55void printEnvironment(void) ;
  56#line 16
  57int isLowWaterSensorDry(void) ;
  58#line 9 "Environment.c"
  59int waterLevel  =    1;
  60#line 12 "Environment.c"
  61int methaneLevelCritical  =    0;
  62#line 15 "Environment.c"
  63void lowerWaterLevel(void) 
  64{ 
  65
  66  {
  67#line 19
  68  if (waterLevel > 0) {
  69#line 17
  70    waterLevel = waterLevel - 1;
  71  } else {
  72
  73  }
  74#line 83 "Environment.c"
  75  return;
  76}
  77}
  78#line 22 "Environment.c"
  79void waterRise(void) 
  80{ 
  81
  82  {
  83#line 26
  84  if (waterLevel < 2) {
  85#line 24
  86    waterLevel = waterLevel + 1;
  87  } else {
  88
  89  }
  90#line 106 "Environment.c"
  91  return;
  92}
  93}
  94#line 29 "Environment.c"
  95void changeMethaneLevel(void) 
  96{ 
  97
  98  {
  99#line 34
 100  if (methaneLevelCritical) {
 101#line 31
 102    methaneLevelCritical = 0;
 103  } else {
 104#line 33
 105    methaneLevelCritical = 1;
 106  }
 107#line 132 "Environment.c"
 108  return;
 109}
 110}
 111#line 38 "Environment.c"
 112int isMethaneLevelCritical(void) 
 113{ int retValue_acc ;
 114
 115  {
 116#line 150 "Environment.c"
 117  retValue_acc = methaneLevelCritical;
 118#line 152
 119  return (retValue_acc);
 120#line 159
 121  return (retValue_acc);
 122}
 123}
 124#line 45 "Environment.c"
 125#line 44 "Environment.c"
 126void printEnvironment(void) 
 127{ 
 128
 129  {
 130  {
 131#line 45
 132  printf("Env(Water:%i", waterLevel);
 133#line 46
 134  printf(",Meth:");
 135  }
 136#line 47
 137  if (methaneLevelCritical) {
 138    {
 139#line 48
 140    printf("CRIT");
 141    }
 142  } else {
 143    {
 144#line 49
 145    printf("OK");
 146    }
 147  }
 148  {
 149#line 51
 150  printf(")");
 151  }
 152#line 191 "Environment.c"
 153  return;
 154}
 155}
 156#line 55 "Environment.c"
 157int getWaterLevel(void) 
 158{ int retValue_acc ;
 159
 160  {
 161#line 209 "Environment.c"
 162  retValue_acc = waterLevel;
 163#line 211
 164  return (retValue_acc);
 165#line 218
 166  return (retValue_acc);
 167}
 168}
 169#line 58 "Environment.c"
 170int isLowWaterSensorDry(void) 
 171{ int retValue_acc ;
 172
 173  {
 174#line 240 "Environment.c"
 175  retValue_acc = waterLevel == 0;
 176#line 242
 177  return (retValue_acc);
 178#line 249
 179  return (retValue_acc);
 180}
 181}
 182#line 1 "Test.o"
 183#pragma merger(0,"Test.i","")
 184#line 8 "Test.c"
 185int cleanupTimeShifts  =    4;
 186#line 11 "Test.c"
 187#line 20 "Test.c"
 188void timeShift(void) ;
 189#line 17 "Test.c"
 190void cleanup(void) 
 191{ int i ;
 192  int __cil_tmp2 ;
 193
 194  {
 195  {
 196#line 20
 197  timeShift();
 198#line 22
 199  i = 0;
 200  }
 201  {
 202#line 22
 203  while (1) {
 204    while_0_continue: /* CIL Label */ ;
 205    {
 206#line 22
 207    __cil_tmp2 = cleanupTimeShifts - 1;
 208#line 22
 209    if (i < __cil_tmp2) {
 210
 211    } else {
 212      goto while_0_break;
 213    }
 214    }
 215    {
 216#line 23
 217    timeShift();
 218#line 22
 219    i = i + 1;
 220    }
 221  }
 222  while_0_break: /* CIL Label */ ;
 223  }
 224#line 1111 "Test.c"
 225  return;
 226}
 227}
 228#line 57 "Test.c"
 229void printPump(void) ;
 230#line 56 "Test.c"
 231void Specification2(void) 
 232{ 
 233
 234  {
 235  {
 236#line 57
 237  timeShift();
 238#line 57
 239  printPump();
 240#line 58
 241  timeShift();
 242#line 58
 243  printPump();
 244#line 59
 245  timeShift();
 246#line 59
 247  printPump();
 248#line 60
 249  waterRise();
 250#line 60
 251  printPump();
 252#line 61
 253  timeShift();
 254#line 61
 255  printPump();
 256#line 62
 257  changeMethaneLevel();
 258#line 62
 259  printPump();
 260#line 63
 261  timeShift();
 262#line 63
 263  printPump();
 264#line 64
 265  cleanup();
 266  }
 267#line 1159 "Test.c"
 268  return;
 269}
 270}
 271#line 67 "Test.c"
 272void setup(void) 
 273{ 
 274
 275  {
 276#line 1177 "Test.c"
 277  return;
 278}
 279}
 280#line 77 "Test.c"
 281void test(void) ;
 282#line 74 "Test.c"
 283void runTest(void) 
 284{ 
 285
 286  {
 287  {
 288#line 77
 289  test();
 290  }
 291#line 1197 "Test.c"
 292  return;
 293}
 294}
 295#line 83 "Test.c"
 296void select_helpers(void) ;
 297#line 84
 298void select_features(void) ;
 299#line 85
 300int valid_product(void) ;
 301#line 82 "Test.c"
 302int main(void) 
 303{ int retValue_acc ;
 304  int tmp ;
 305
 306  {
 307  {
 308#line 83
 309  select_helpers();
 310#line 84
 311  select_features();
 312#line 85
 313  tmp = valid_product();
 314  }
 315#line 85
 316  if (tmp) {
 317    {
 318#line 86
 319    setup();
 320#line 87
 321    runTest();
 322    }
 323  } else {
 324
 325  }
 326#line 1226 "Test.c"
 327  retValue_acc = 0;
 328#line 1228
 329  return (retValue_acc);
 330#line 1235
 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 "scenario.o"
 861#pragma merger(0,"scenario.i","")
 862#line 11 "scenario.c"
 863void startSystem(void) ;
 864#line 1 "scenario.c"
 865void test(void) 
 866{ int splverifierCounter ;
 867  int tmp ;
 868  int tmp___0 ;
 869  int tmp___1 ;
 870  int tmp___2 ;
 871
 872  {
 873#line 2
 874  splverifierCounter = 0;
 875  {
 876#line 3
 877  while (1) {
 878    while_4_continue: /* CIL Label */ ;
 879#line 3
 880    if (splverifierCounter < 4) {
 881
 882    } else {
 883      goto while_4_break;
 884    }
 885    {
 886#line 7
 887    tmp = __VERIFIER_nondet_int();
 888    }
 889#line 7
 890    if (tmp) {
 891      {
 892#line 5
 893      waterRise();
 894      }
 895    } else {
 896
 897    }
 898    {
 899#line 7
 900    tmp___0 = __VERIFIER_nondet_int();
 901    }
 902#line 7
 903    if (tmp___0) {
 904      {
 905#line 8
 906      changeMethaneLevel();
 907      }
 908    } else {
 909
 910    }
 911    {
 912#line 10
 913    tmp___2 = __VERIFIER_nondet_int();
 914    }
 915#line 10
 916    if (tmp___2) {
 917      {
 918#line 11
 919      startSystem();
 920      }
 921    } else {
 922      {
 923#line 12
 924      tmp___1 = __VERIFIER_nondet_int();
 925      }
 926#line 12
 927      if (tmp___1) {
 928
 929      } else {
 930
 931      }
 932    }
 933    {
 934#line 14
 935    timeShift();
 936    }
 937  }
 938  while_4_break: /* CIL Label */ ;
 939  }
 940  {
 941#line 16
 942  cleanup();
 943  }
 944#line 76 "scenario.c"
 945  return;
 946}
 947}
 948#line 1 "MinePump.o"
 949#pragma merger(0,"MinePump.i","")
 950#line 6 "MinePump.h"
 951void activatePump(void) ;
 952#line 8
 953void deactivatePump(void) ;
 954#line 10
 955int isPumpRunning(void) ;
 956#line 7 "MinePump.c"
 957int pumpRunning  =    0;
 958#line 9 "MinePump.c"
 959int systemActive  =    1;
 960#line 10
 961void __utac_acc__Specification3_spec__1(void) ;
 962#line 16
 963void processEnvironment(void) ;
 964#line 12 "MinePump.c"
 965void timeShift(void) 
 966{ 
 967
 968  {
 969#line 15
 970  if (pumpRunning) {
 971    {
 972#line 16
 973    lowerWaterLevel();
 974    }
 975  } else {
 976
 977  }
 978#line 15
 979  if (systemActive) {
 980    {
 981#line 16
 982    processEnvironment();
 983    }
 984  } else {
 985
 986  }
 987  {
 988#line 99 "MinePump.c"
 989  __utac_acc__Specification3_spec__1();
 990  }
 991#line 105
 992  return;
 993}
 994}
 995#line 19 "MinePump.c"
 996void processEnvironment__wrappee__base(void) 
 997{ 
 998
 999  {
1000#line 123 "MinePump.c"
1001  return;
1002}
1003}
1004#line 28 "MinePump.c"
1005int isLowWaterLevel(void) ;
1006#line 23 "MinePump.c"
1007void processEnvironment__wrappee__methaneQuery(void) 
1008{ int tmp ;
1009
1010  {
1011#line 28
1012  if (pumpRunning) {
1013    {
1014#line 28
1015    tmp = isLowWaterLevel();
1016    }
1017#line 28
1018    if (tmp) {
1019      {
1020#line 25
1021      deactivatePump();
1022      }
1023    } else {
1024      {
1025#line 27
1026      processEnvironment__wrappee__base();
1027      }
1028    }
1029  } else {
1030    {
1031#line 27
1032    processEnvironment__wrappee__base();
1033    }
1034  }
1035#line 149 "MinePump.c"
1036  return;
1037}
1038}
1039#line 35 "MinePump.c"
1040int isMethaneAlarm(void) ;
1041#line 30 "MinePump.c"
1042void processEnvironment(void) 
1043{ int tmp ;
1044
1045  {
1046#line 35
1047  if (pumpRunning) {
1048    {
1049#line 35
1050    tmp = isMethaneAlarm();
1051    }
1052#line 35
1053    if (tmp) {
1054      {
1055#line 32
1056      deactivatePump();
1057      }
1058    } else {
1059      {
1060#line 34
1061      processEnvironment__wrappee__methaneQuery();
1062      }
1063    }
1064  } else {
1065    {
1066#line 34
1067    processEnvironment__wrappee__methaneQuery();
1068    }
1069  }
1070#line 175 "MinePump.c"
1071  return;
1072}
1073}
1074#line 39 "MinePump.c"
1075void activatePump__wrappee__lowWaterSensor(void) 
1076{ 
1077
1078  {
1079#line 40
1080  pumpRunning = 1;
1081#line 195 "MinePump.c"
1082  return;
1083}
1084}
1085#line 42 "MinePump.c"
1086void activatePump(void) 
1087{ int tmp ;
1088
1089  {
1090  {
1091#line 47
1092  tmp = isMethaneAlarm();
1093  }
1094#line 47
1095  if (tmp) {
1096
1097  } else {
1098    {
1099#line 44
1100    activatePump__wrappee__lowWaterSensor();
1101    }
1102  }
1103#line 219 "MinePump.c"
1104  return;
1105}
1106}
1107#line 51 "MinePump.c"
1108void deactivatePump(void) 
1109{ 
1110
1111  {
1112#line 52
1113  pumpRunning = 0;
1114#line 239 "MinePump.c"
1115  return;
1116}
1117}
1118#line 56 "MinePump.c"
1119int isMethaneAlarm(void) 
1120{ int retValue_acc ;
1121
1122  {
1123  {
1124#line 257 "MinePump.c"
1125  retValue_acc = isMethaneLevelCritical();
1126  }
1127#line 259
1128  return (retValue_acc);
1129#line 266
1130  return (retValue_acc);
1131}
1132}
1133#line 61 "MinePump.c"
1134int isPumpRunning(void) 
1135{ int retValue_acc ;
1136
1137  {
1138#line 288 "MinePump.c"
1139  retValue_acc = pumpRunning;
1140#line 290
1141  return (retValue_acc);
1142#line 297
1143  return (retValue_acc);
1144}
1145}
1146#line 66 "MinePump.c"
1147void printPump(void) 
1148{ 
1149
1150  {
1151  {
1152#line 67
1153  printf("Pump(System:");
1154  }
1155#line 68
1156  if (systemActive) {
1157    {
1158#line 69
1159    printf("On");
1160    }
1161  } else {
1162    {
1163#line 70
1164    printf("Off");
1165    }
1166  }
1167  {
1168#line 72
1169  printf(",Pump:");
1170  }
1171#line 73
1172  if (pumpRunning) {
1173    {
1174#line 74
1175    printf("On");
1176    }
1177  } else {
1178    {
1179#line 75
1180    printf("Off");
1181    }
1182  }
1183  {
1184#line 77
1185  printf(") ");
1186#line 78
1187  printEnvironment();
1188#line 79
1189  printf("\n");
1190  }
1191#line 337 "MinePump.c"
1192  return;
1193}
1194}
1195#line 81 "MinePump.c"
1196int isLowWaterLevel(void) 
1197{ int retValue_acc ;
1198  int tmp ;
1199  int tmp___0 ;
1200
1201  {
1202  {
1203#line 355 "MinePump.c"
1204  tmp = isLowWaterSensorDry();
1205  }
1206#line 355
1207  if (tmp) {
1208#line 355
1209    tmp___0 = 0;
1210  } else {
1211#line 355
1212    tmp___0 = 1;
1213  }
1214#line 355
1215  retValue_acc = tmp___0;
1216#line 357
1217  return (retValue_acc);
1218#line 364
1219  return (retValue_acc);
1220}
1221}
1222#line 84 "MinePump.c"
1223void startSystem(void) 
1224{ 
1225
1226  {
1227#line 86
1228  systemActive = 1;
1229#line 388 "MinePump.c"
1230  return;
1231}
1232}
1233#line 1 "wsllib_check.o"
1234#pragma merger(0,"wsllib_check.i","")
1235#line 3 "wsllib_check.c"
1236void __automaton_fail(void) 
1237{ 
1238
1239  {
1240  goto ERROR;
1241  ERROR: ;
1242#line 53 "wsllib_check.c"
1243  return;
1244}
1245}
1246#line 1 "featureselect.o"
1247#pragma merger(0,"featureselect.i","")
1248#line 8 "featureselect.h"
1249int select_one(void) ;
1250#line 8 "featureselect.c"
1251int select_one(void) 
1252{ int retValue_acc ;
1253  int choice = __VERIFIER_nondet_int();
1254
1255  {
1256#line 62 "featureselect.c"
1257  retValue_acc = choice;
1258#line 64
1259  return (retValue_acc);
1260#line 71
1261  return (retValue_acc);
1262}
1263}
1264#line 14 "featureselect.c"
1265void select_features(void) 
1266{ 
1267
1268  {
1269#line 93 "featureselect.c"
1270  return;
1271}
1272}
1273#line 20 "featureselect.c"
1274void select_helpers(void) 
1275{ 
1276
1277  {
1278#line 111 "featureselect.c"
1279  return;
1280}
1281}
1282#line 25 "featureselect.c"
1283int valid_product(void) 
1284{ int retValue_acc ;
1285
1286  {
1287#line 129 "featureselect.c"
1288  retValue_acc = 1;
1289#line 131
1290  return (retValue_acc);
1291#line 138
1292  return (retValue_acc);
1293}
1294}
1295#line 1 "Specification3_spec.o"
1296#pragma merger(0,"Specification3_spec.i","")
1297#line 11 "Specification3_spec.c"
1298void __utac_acc__Specification3_spec__1(void) 
1299{ int tmp ;
1300  int tmp___0 ;
1301  int tmp___1 ;
1302
1303  {
1304  {
1305#line 19
1306  tmp = isMethaneLevelCritical();
1307  }
1308#line 19
1309  if (tmp) {
1310
1311  } else {
1312    {
1313#line 19
1314    tmp___0 = getWaterLevel();
1315    }
1316#line 19
1317    if (tmp___0 == 2) {
1318      {
1319#line 19
1320      tmp___1 = isPumpRunning();
1321      }
1322#line 19
1323      if (tmp___1) {
1324
1325      } else {
1326        {
1327#line 16
1328        __automaton_fail();
1329        }
1330      }
1331    } else {
1332
1333    }
1334  }
1335#line 16
1336  return;
1337}
1338}