Showing error 1903

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