From 0fb9ec83c38887a5b1da7376873506ae59b2c60e Mon Sep 17 00:00:00 2001 From: Martin Sebor Date: Fri, 27 Jan 2017 02:45:32 +0000 Subject: [PATCH] gimple-ssa-sprintf.c (format_floating): Simplify the computation of precision to avoid preprocessor conditional. gcc/ChangeLog: * gimple-ssa-sprintf.c (format_floating): Simplify the computation of precision to avoid preprocessor conditional. From-SVN: r244961 --- gcc/ChangeLog | 5 +++++ gcc/gimple-ssa-sprintf.c | 18 ++++-------------- 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ac9a89f7ba8..c625d7bdb76 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2017-01-26 Martin Sebor + + * gimple-ssa-sprintf.c (format_floating): Simplify the computation + of precision. + 2017-01-26 Martin Sebor * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and diff --git a/gcc/gimple-ssa-sprintf.c b/gcc/gimple-ssa-sprintf.c index 65144acebf5..bd15a397ccf 100644 --- a/gcc/gimple-ssa-sprintf.c +++ b/gcc/gimple-ssa-sprintf.c @@ -1686,20 +1686,10 @@ format_floating (const directive &dir, tree arg) prec[0] = -1; if (prec[1] < 0) { -#ifdef HAVE_XFmode - /* When L is specified use long double, otherwise double. */ - unsigned fmtprec - = (dir.modifier == FMT_LEN_L - ? REAL_MODE_FORMAT (XFmode)->p - : REAL_MODE_FORMAT (DFmode)->p); -#elif defined HAVE_DFmode - /* No long double support, use double precision for both. */ - unsigned fmtprec = REAL_MODE_FORMAT (DFmode)->p; -#else - /* No long double or double support. */ - unsigned fmtprec = 0; -#endif - /* The precision of the IEEE 754 double format is 53. + unsigned fmtprec + = REAL_MODE_FORMAT (TYPE_MODE (TREE_TYPE (arg)))->p; + + /* The precision of the IEEE 754 double format is 53. The precision of all other GCC binary double formats is 56 or less. */ prec[1] = fmtprec <= 56 ? 13 : 15; -- 2.30.2