Showing error 2135

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