https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83198
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Created attachment 42868 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=42868&action=edit gcc8-pr83198.patch Untested fix. It is wrong to derive precision from TREE_TYPE (arg), it might not be a floating point type at all, or it might be an incompatible one. Furthermore, if arg has incompatible type, we should just assume it is unknown value. 1.0f promotion in argument passing to double of course works.