Showing error 2142

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