Showing error 1854

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


Source:

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