Showing error 1893

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