Commit f060a261 by Richard Guenther Committed by Richard Biener

re PR tree-optimization/35202 (exp->expf transformation incorrect with -fmath-errno)

2009-02-09  Richard Guenther  <rguenther@suse.de>

	PR middle-end/35202
	* convert.c (convert_to_real): Disable (float)fn((double)x)
	to fnf(x) conversion if errno differences may occur and
	-fmath-errno is set.

From-SVN: r144030
parent 4a50cd93
2009-02-09 Richard Guenther <rguenther@suse.de>
PR middle-end/35202
* convert.c (convert_to_real): Disable (float)fn((double)x)
to fnf(x) conversion if errno differences may occur and
-fmath-errno is set.
2009-02-07 Anatoly Sokolov <aesok@post.ru>
* config/avr/avr.c (avr_mcu_t): Add ata6289 device.
......
......@@ -139,40 +139,45 @@ convert_to_real (tree type, tree expr)
switch (fcode)
{
#define CASE_MATHFN(FN) case BUILT_IN_##FN: case BUILT_IN_##FN##L:
CASE_MATHFN (ACOS)
CASE_MATHFN (ACOSH)
CASE_MATHFN (ASIN)
CASE_MATHFN (ASINH)
CASE_MATHFN (ATAN)
CASE_MATHFN (ATANH)
CASE_MATHFN (CBRT)
CASE_MATHFN (COS)
CASE_MATHFN (COSH)
CASE_MATHFN (ERF)
CASE_MATHFN (ERFC)
CASE_MATHFN (EXP)
CASE_MATHFN (EXP10)
CASE_MATHFN (EXP2)
CASE_MATHFN (EXPM1)
CASE_MATHFN (FABS)
CASE_MATHFN (EXPM1)
CASE_MATHFN (GAMMA)
CASE_MATHFN (J0)
CASE_MATHFN (J1)
CASE_MATHFN (LGAMMA)
CASE_MATHFN (LOG)
CASE_MATHFN (LOG10)
CASE_MATHFN (LOG1P)
CASE_MATHFN (LOG2)
CASE_MATHFN (LOGB)
CASE_MATHFN (POW10)
CASE_MATHFN (SIN)
CASE_MATHFN (SINH)
CASE_MATHFN (SQRT)
CASE_MATHFN (TAN)
CASE_MATHFN (TANH)
CASE_MATHFN (TGAMMA)
CASE_MATHFN (Y0)
CASE_MATHFN (Y1)
/* The above functions may set errno differently with float
input or output so this transformation is not safe with
-fmath-errno. */
if (flag_errno_math)
break;
CASE_MATHFN (ACOS)
CASE_MATHFN (ACOSH)
CASE_MATHFN (ASIN)
CASE_MATHFN (ASINH)
CASE_MATHFN (ATAN)
CASE_MATHFN (ATANH)
CASE_MATHFN (CBRT)
CASE_MATHFN (COS)
CASE_MATHFN (ERF)
CASE_MATHFN (ERFC)
CASE_MATHFN (FABS)
CASE_MATHFN (LOG)
CASE_MATHFN (LOG10)
CASE_MATHFN (LOG2)
CASE_MATHFN (LOG1P)
CASE_MATHFN (LOGB)
CASE_MATHFN (SIN)
CASE_MATHFN (SQRT)
CASE_MATHFN (TAN)
CASE_MATHFN (TANH)
#undef CASE_MATHFN
{
tree arg0 = strip_float_extensions (CALL_EXPR_ARG (expr, 0));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment