Showing error 2134

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


Source:

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