PR 61876: Do not convert cast + __builtin_round into __builtin_lround unless -fno-math-errno is used.

PR middle-end/61876
	* convert.c (convert_to_integer): Do not convert BUILT_IN_ROUND and cast
	when flag_errno_math is on.

From-SVN: r212989
This commit is contained in:
Kyrylo Tkachov 2014-07-24 13:23:05 +00:00 committed by Kyrylo Tkachov
parent 472411664e
commit 25be91ac7e
2 changed files with 8 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2014-07-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
PR middle-end/61876
* convert.c (convert_to_integer): Do not convert BUILT_IN_ROUND and cast
when flag_errno_math is on.
2014-07-24 Martin Liska <mliska@suse.cz>
* cgraph.h (varpool_node):

View File

@ -456,8 +456,8 @@ convert_to_integer (tree type, tree expr)
break;
CASE_FLT_FN (BUILT_IN_ROUND):
/* Only convert in ISO C99 mode. */
if (!targetm.libc_has_function (function_c99_misc))
/* Only convert in ISO C99 mode and with -fno-math-errno. */
if (!targetm.libc_has_function (function_c99_misc) || flag_errno_math)
break;
if (outprec < TYPE_PRECISION (integer_type_node)
|| (outprec == TYPE_PRECISION (integer_type_node)