(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.dg/
contracts/
contracts-ignore1.C
// test that ignored contracts do instatiate templates
// { dg-do compile }
// { dg-options "-std=c++2a -fcontracts" }

template<typename T>
int f(T t)
{
  return -t;
}

int dummy()
{
  [[ assert ignore: f(1.0) > 0 ]];
  return -1;
}

template<>
int f(double t) // { dg-error "specialization of.*after instantiation" }
{
  return -1.0;
}

int main()
{
  dummy();
  f(1);
  f(1.0);
  return 0;
}