Showing error 1845

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