From 2bb800dd414038f233576acf53c0f2fd0d3609cd Mon Sep 17 00:00:00 2001 From: Pádraig Brady Date: Tue, 18 Jun 2013 15:47:35 +0100 Subject: tests: use appropriate precision when printing float limits * src/getlimits.c (print_float): Adjust to use the ftoastr module, which uses the appropriate precision so that no info is lost. * cfg.mk (sc_prohibit_continued_string_alpha_in_column_1): Exclude od.c fixes http://bugs.gnu.org/14650 --- cfg.mk | 2 +- src/getlimits.c | 18 ++++++++++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/cfg.mk b/cfg.mk index 04c8a8a05..7b14c07f1 100644 --- a/cfg.mk +++ b/cfg.mk @@ -603,7 +603,7 @@ exclude_file_name_regexp--sc_prohibit_stat_st_blocks = \ ^(src/system\.h|tests/du/2g\.sh)$$ exclude_file_name_regexp--sc_prohibit_continued_string_alpha_in_column_1 = \ - ^src/(system\.h|od\.c|printf\.c)$$ + ^src/(system\.h|od\.c|printf\.c|getlimits\.c)$$ exclude_file_name_regexp--sc_prohibit_test_backticks = \ ^tests/(local\.mk|(init|misc/stdbuf|factor/create-test)\.sh)$$ diff --git a/src/getlimits.c b/src/getlimits.c index 7c1fbe26e..99140255f 100644 --- a/src/getlimits.c +++ b/src/getlimits.c @@ -21,6 +21,7 @@ #include #include +#include "ftoastr.h" #include "system.h" #include "long-options.h" @@ -97,6 +98,19 @@ decimal_absval_add_one (char *buf) return result; } +#define PRINT_FLOATTYPE(N, T, FTOASTR, BUFSIZE) \ +static void \ +N (T x) \ +{ \ + char buf[BUFSIZE]; \ + FTOASTR (buf, sizeof buf, FTOASTR_LEFT_JUSTIFY, 0, x); \ + puts (buf); \ +} + +PRINT_FLOATTYPE (print_FLT, float, ftoastr, FLT_BUFSIZE_BOUND) +PRINT_FLOATTYPE (print_DBL, double, dtoastr, DBL_BUFSIZE_BOUND) +PRINT_FLOATTYPE (print_LDBL, long double, ldtoastr, LDBL_BUFSIZE_BOUND) + int main (int argc, char **argv) { @@ -127,8 +141,8 @@ main (int argc, char **argv) } #define print_float(TYPE) \ - printf (#TYPE"_MIN=%Le\n", (long double)TYPE##_MIN); \ - printf (#TYPE"_MAX=%Le\n", (long double)TYPE##_MAX); + printf (#TYPE"_MIN="); print_##TYPE (TYPE##_MIN); \ + printf (#TYPE"_MAX="); print_##TYPE (TYPE##_MAX); /* Variable sized ints */ print_int (CHAR); -- cgit v1.2.3-70-g09d2