Showing error 1856

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_product16_safe.cil.c
Line in file: 414
Project: SV-COMP 2013
Project version: 2.6.28
Tools: Manual Work
Entered: 2013-01-17 16:57:54 UTC


Source:

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