Showing error 1925

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