Showing error 1975

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