Showing error 2119

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