/* Generated by Frama-C */
#include "stddef.h"
#include "stdio.h"
extern int __e_acsl_sound_verdict;

int X = 0;
/*@ ensures X ≡ 3; */
int main(void);

int __gen_e_acsl_main(void)
{
  int __retres;
  goto L1;
  L1:
  /*@ assert X ≡ 0; */
  __e_acsl_assert(X == 0,"Assertion","main","X == 0",
                  "tests/constructs/labeled_stmt.i",10);
  X = 1;
  goto L2;
  L2:
  /*@ requires X ≡ 1;
      ensures X ≡ 2; */
  {
    __e_acsl_assert(X == 1,"Precondition","main","X == 1",
                    "tests/constructs/labeled_stmt.i",12);
    X = 2;
    __e_acsl_assert(X == 2,"Postcondition","main","X == 2",
                    "tests/constructs/labeled_stmt.i",12);
  }
  if (X) {
    X = 3;
    __retres = 0;
    goto return_label;
  }
  __retres = 0;
  return_label: return __retres;
}

/*@ ensures X ≡ 3; */
int main(void)
{
  int __retres;
  __retres = __gen_e_acsl_main();
  __e_acsl_assert(X == 3,"Postcondition","main","X == 3",
                  "tests/constructs/labeled_stmt.i",7);
  return __retres;
}


