The use of hypot in csqrt means it suffers from overflow and underflow in internal calculations. On x86_64, csqrt (DBL_MAX + DBL_MAX * I) wrongly returns inf + 0 * I; for 0x1p-1074 + 0x1p-1074 * I, the result is 0 + NaN * I. I'll send a patch.
Fixed by: commit e456826d7a539fb322bb9719297bd386eded8e32 Author: Joseph Myers <joseph@codesourcery.com> Date: Wed Mar 14 11:53:32 2012 +0000 Fix csqrt overflow/underflow (bug 13841).