Showing error 1999

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