// baseline for testing assert contracts being turned into compile time
// assumptions; see contracts-assume2 for the assumed case
// { dg-do run }
// { dg-options "-std=c++2a -fcontracts" }
// { dg-skip-if "requires hosted libstdc++ for cstdio" { ! hostedlib } }
#include <cstdio>

int fun(int x) {
  [[assert audit: x > 0]];
  if(x <= 0)
  {
    printf("%d: test x<=0 opt out\n", x);
    return -1;
  }
  else
  {
    printf("%d: test x>0\n", x);
    return 0;
  }
}

int main(int, char**) {
  volatile int x = -1;
  return fun(x);
}

// { dg-shouldfail "" }