http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55490
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Component|other |c Severity|blocker |normal --- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> 2012-11-27 18:35:29 UTC --- (Please don't change the component and priority back again) Yes, you're wrong. If you don't want to declare your functions properly then you need to convert the argument type explicitly, otherwise the compiler assumes you want to pass an eight byte double, then the function only looks at four of those bytes. test((int)floor(log(lng)));