>>It is defined to copy a signalling NaN. Not in this situation it is not! That's because int a = a; is undefined, so any assurance that an ordinary assignment or initialization may give does not apply in this case.