The testcase has on lines 41/42 these statements:
print *, (2.0,-4.3)**huge(0) ! { dg-error "Arithmetic NaN" }
print *, (2.0,-4.3)**(-huge(0)) ! { dg-error "Arithmetic NaN" }
I.e. it expects a NaN for both cases. What I'm getting with MPC is
"Arithmetic overflow" on the first line because it overflows to Inf, and no
error for the second presumably because it underflows to zero.
I think perhaps expecting a NaN here is bogus and is an artifact of the
hand-written algorithm chosen to evaluate complex**int inside the fortran
frontend. The code is in fortran/arith.c:complex_pow(). I suspect the
algorithm is getting confused somewhere along the way.