Showing error 2091

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