http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51364
--- Comment #9 from Jonathan Wakely <redi at gcc dot gnu.org> 2011-12-19 00:21:36 UTC --- There's nothing strange - the runtime code is in static libraries, so all the code for doing I/O must be linked into the executable if you use e.g. printf. Using isnan probably doesn't require linking to a library function, so doesn't pull in all the code.