Showing error 2079

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