x is not equal to
0 and y is 0 |
1 is returned. |
x is 0 and y is
positive |
0 is returned. |
x is 0 and y is
negative |
INT_MAX is returned and errno is set to EDOM. |
x and y are
0 |
0 is returned and errno is set to EDOM. |
x is 1 and y is
negative |
1 is returned. |
x is -1 and y is
negative |
±1 is returned. |
x is greater than
1 and y is negative |
0 is returned and errno is set to EDOM. |
x is less than -1
and y is negative |
0 is returned and errno is set to EDOM. |
The values of x and y cause
an overflow and x is less than 0 or y is
odd. |
errno is set to ERANGE and the function returns
INT_MIN |
The values of x and y cause
an overflow and x is greater than 0 or y is
even. |
errno is set to ERANGE and the function returns
INT_MAX |