Showing error 1974

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_product04_unsafe.cil.c
Line in file: 902
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 "wsllib_check.o"
 895#pragma merger(0,"wsllib_check.i","")
 896#line 3 "wsllib_check.c"
 897void __automaton_fail(void) 
 898{ 
 899
 900  {
 901  goto ERROR;
 902  ERROR: ;
 903#line 53 "wsllib_check.c"
 904  return;
 905}
 906}
 907#line 1 "Specification3_spec.o"
 908#pragma merger(0,"Specification3_spec.i","")
 909#line 10 "MinePump.h"
 910int isPumpRunning(void) ;
 911#line 11 "Specification3_spec.c"
 912__inline void __utac_acc__Specification3_spec__1(void) 
 913{ int tmp ;
 914  int tmp___0 ;
 915  int tmp___1 ;
 916
 917  {
 918  {
 919#line 19
 920  tmp = isMethaneLevelCritical();
 921  }
 922#line 19
 923  if (tmp) {
 924
 925  } else {
 926    {
 927#line 19
 928    tmp___0 = getWaterLevel();
 929    }
 930#line 19
 931    if (tmp___0 == 2) {
 932      {
 933#line 19
 934      tmp___1 = isPumpRunning();
 935      }
 936#line 19
 937      if (tmp___1) {
 938
 939      } else {
 940        {
 941#line 16
 942        __automaton_fail();
 943        }
 944      }
 945    } else {
 946
 947    }
 948  }
 949#line 16
 950  return;
 951}
 952}
 953#line 1 "MinePump.o"
 954#pragma merger(0,"MinePump.i","")
 955#line 6 "MinePump.h"
 956void activatePump(void) ;
 957#line 8
 958void deactivatePump(void) ;
 959#line 14
 960void stopSystem(void) ;
 961#line 15
 962void startSystem(void) ;
 963#line 7 "MinePump.c"
 964int pumpRunning  =    0;
 965#line 9 "MinePump.c"
 966int systemActive  =    1;
 967#line 16
 968void processEnvironment(void) ;
 969#line 12 "MinePump.c"
 970void timeShift(void) 
 971{ 
 972
 973  {
 974#line 15
 975  if (pumpRunning) {
 976    {
 977#line 16
 978    lowerWaterLevel();
 979    }
 980  } else {
 981
 982  }
 983#line 15
 984  if (systemActive) {
 985    {
 986#line 16
 987    processEnvironment();
 988    }
 989  } else {
 990
 991  }
 992  {
 993#line 99 "MinePump.c"
 994  __utac_acc__Specification3_spec__1();
 995  }
 996#line 105
 997  return;
 998}
 999}
1000#line 19 "MinePump.c"
1001void processEnvironment(void) 
1002{ 
1003
1004  {
1005#line 123 "MinePump.c"
1006  return;
1007}
1008}
1009#line 24 "MinePump.c"
1010void activatePump(void) 
1011{ 
1012
1013  {
1014#line 25
1015  pumpRunning = 1;
1016#line 143 "MinePump.c"
1017  return;
1018}
1019}
1020#line 29 "MinePump.c"
1021void deactivatePump(void) 
1022{ 
1023
1024  {
1025#line 30
1026  pumpRunning = 0;
1027#line 163 "MinePump.c"
1028  return;
1029}
1030}
1031#line 34 "MinePump.c"
1032int isMethaneAlarm(void) 
1033{ int retValue_acc ;
1034
1035  {
1036  {
1037#line 181 "MinePump.c"
1038  retValue_acc = isMethaneLevelCritical();
1039  }
1040#line 183
1041  return (retValue_acc);
1042#line 190
1043  return (retValue_acc);
1044}
1045}
1046#line 39 "MinePump.c"
1047int isPumpRunning(void) 
1048{ int retValue_acc ;
1049
1050  {
1051#line 212 "MinePump.c"
1052  retValue_acc = pumpRunning;
1053#line 214
1054  return (retValue_acc);
1055#line 221
1056  return (retValue_acc);
1057}
1058}
1059#line 44 "MinePump.c"
1060void printPump(void) 
1061{ 
1062
1063  {
1064  {
1065#line 45
1066  printf("Pump(System:");
1067  }
1068#line 46
1069  if (systemActive) {
1070    {
1071#line 47
1072    printf("On");
1073    }
1074  } else {
1075    {
1076#line 48
1077    printf("Off");
1078    }
1079  }
1080  {
1081#line 50
1082  printf(",Pump:");
1083  }
1084#line 51
1085  if (pumpRunning) {
1086    {
1087#line 52
1088    printf("On");
1089    }
1090  } else {
1091    {
1092#line 53
1093    printf("Off");
1094    }
1095  }
1096  {
1097#line 55
1098  printf(") ");
1099#line 56
1100  printEnvironment();
1101#line 57
1102  printf("\n");
1103  }
1104#line 261 "MinePump.c"
1105  return;
1106}
1107}
1108#line 59 "MinePump.c"
1109void stopSystem(void) 
1110{ 
1111
1112  {
1113#line 64
1114  if (pumpRunning) {
1115    {
1116#line 61
1117    deactivatePump();
1118    }
1119  } else {
1120
1121  }
1122#line 64
1123  systemActive = 0;
1124#line 286 "MinePump.c"
1125  return;
1126}
1127}
1128#line 66 "MinePump.c"
1129void startSystem(void) 
1130{ 
1131
1132  {
1133#line 68
1134  systemActive = 1;
1135#line 306 "MinePump.c"
1136  return;
1137}
1138}
1139#line 1 "scenario.o"
1140#pragma merger(0,"scenario.i","")
1141#line 1 "scenario.c"
1142void test(void) 
1143{ int splverifierCounter ;
1144  int tmp ;
1145  int tmp___0 ;
1146  int tmp___1 ;
1147  int tmp___2 ;
1148
1149  {
1150#line 2
1151  splverifierCounter = 0;
1152  {
1153#line 3
1154  while (1) {
1155    while_4_continue: /* CIL Label */ ;
1156#line 3
1157    if (splverifierCounter < 4) {
1158
1159    } else {
1160      goto while_4_break;
1161    }
1162    {
1163#line 7
1164    tmp = __VERIFIER_nondet_int();
1165    }
1166#line 7
1167    if (tmp) {
1168      {
1169#line 5
1170      waterRise();
1171      }
1172    } else {
1173
1174    }
1175    {
1176#line 7
1177    tmp___0 = __VERIFIER_nondet_int();
1178    }
1179#line 7
1180    if (tmp___0) {
1181      {
1182#line 8
1183      changeMethaneLevel();
1184      }
1185    } else {
1186
1187    }
1188    {
1189#line 10
1190    tmp___2 = __VERIFIER_nondet_int();
1191    }
1192#line 10
1193    if (tmp___2) {
1194      {
1195#line 11
1196      startSystem();
1197      }
1198    } else {
1199      {
1200#line 12
1201      tmp___1 = __VERIFIER_nondet_int();
1202      }
1203#line 12
1204      if (tmp___1) {
1205        {
1206#line 13
1207        stopSystem();
1208        }
1209      } else {
1210
1211      }
1212    }
1213    {
1214#line 15
1215    timeShift();
1216    }
1217  }
1218  while_4_break: /* CIL Label */ ;
1219  }
1220  {
1221#line 17
1222  cleanup();
1223  }
1224#line 78 "scenario.c"
1225  return;
1226}
1227}