#include <math.h>
#include <fenv.h>
#include <errno.h>
void func(double x, double y) {
double result;
if (((x == 0.0f) && islessequal(y, 0.0)) || isless(x, 0.0)) {
}
{
#pragma STDC FENV_ACCESS ON
if (math_errhandling & MATH_ERREXCEPT) {
feclearexcept(FE_ALL_EXCEPT);
}
errno = 0;
result = pow(x, y);
if ((math_errhandling & MATH_ERRNO) && errno != 0) {
} else if ((math_errhandling & MATH_ERREXCEPT) &&
fetestexcept(FE_INVALID | FE_DIVBYZERO |
FE_OVERFLOW | FE_UNDERFLOW) != 0) {
}
}
}