From 15b337fa58ba822eb1e67d03a192c390a941efa7 Mon Sep 17 00:00:00 2001 From: Andy Polyakov Date: Thu, 30 Mar 2017 21:44:55 +0200 Subject: [PATCH] bio/b_print.c: switch to int64_t as "greatest-width integer type". Originally there was dependency on BN configuration parameters, but it stemmed from times when "long long" support was optional. Today we require 64-bit support from compiler, and there is no reason to have "greatest-width integer" depend on BN configuration. Reviewed-by: Richard Levitte --- crypto/bio/b_print.c | 54 +++++++++----------------------------------- 1 file changed, 11 insertions(+), 43 deletions(-) diff --git a/crypto/bio/b_print.c b/crypto/bio/b_print.c index 79ae4a9c41..af05c3592c 100644 --- a/crypto/bio/b_print.c +++ b/crypto/bio/b_print.c @@ -12,18 +12,8 @@ #include #include "internal/numbers.h" #include "internal/cryptlib.h" -#ifndef NO_SYS_TYPES_H -# include -#endif -#include /* To get BN_LLONG properly defined */ #include -#if defined(BN_LLONG) || defined(SIXTY_FOUR_BIT) -# ifndef HAVE_LONG_LONG -# define HAVE_LONG_LONG 1 -# endif -#endif - /* * Copyright Patrick Powell 1995 * This code is based on code written by Patrick Powell @@ -37,20 +27,10 @@ # define LDOUBLE double #endif -#ifdef HAVE_LONG_LONG -# if defined(_WIN32) && !defined(__GNUC__) -# define LLONG __int64 -# else -# define LLONG long long -# endif -#else -# define LLONG long -#endif - static int fmtstr(char **, char **, size_t *, size_t *, const char *, int, int, int); static int fmtint(char **, char **, size_t *, size_t *, - LLONG, int, int, int, int); + int64_t, int, int, int, int); static int fmtfp(char **, char **, size_t *, size_t *, LDOUBLE, int, int, int, int); static int doapr_outch(char **, char **, size_t *, size_t *, int); @@ -107,7 +87,7 @@ _dopr(char **sbuffer, size_t *retlen, int *truncated, const char *format, va_list args) { char ch; - LLONG value; + int64_t value; LDOUBLE fvalue; char *strvalue; int min; @@ -237,7 +217,7 @@ _dopr(char **sbuffer, value = va_arg(args, long int); break; case DP_C_LLONG: - value = va_arg(args, LLONG); + value = va_arg(args, int64_t); break; case DP_C_SIZE: value = va_arg(args, ossl_ssize_t); @@ -262,16 +242,16 @@ _dopr(char **sbuffer, value = (unsigned short int)va_arg(args, unsigned int); break; case DP_C_LONG: - value = (LLONG)va_arg(args, unsigned long int); + value = va_arg(args, unsigned long int); break; case DP_C_LLONG: - value = va_arg(args, unsigned LLONG); + value = va_arg(args, uint64_t); break; case DP_C_SIZE: value = va_arg(args, size_t); break; default: - value = (LLONG)va_arg(args, unsigned int); + value = va_arg(args, unsigned int); break; } if (!fmtint(sbuffer, buffer, &currlen, maxlen, value, @@ -333,20 +313,8 @@ _dopr(char **sbuffer, value, 16, min, max, flags | DP_F_NUM)) return 0; break; - case 'n': /* XXX */ - if (cflags == DP_C_SHORT) { - short int *num; - num = va_arg(args, short int *); - *num = currlen; - } else if (cflags == DP_C_LONG) { /* XXX */ - long int *num; - num = va_arg(args, long int *); - *num = (long int)currlen; - } else if (cflags == DP_C_LLONG) { /* XXX */ - LLONG *num; - num = va_arg(args, LLONG *); - *num = (LLONG) currlen; - } else { + case 'n': + { int *num; num = va_arg(args, int *); *num = currlen; @@ -446,11 +414,11 @@ static int fmtint(char **sbuffer, char **buffer, size_t *currlen, - size_t *maxlen, LLONG value, int base, int min, int max, int flags) + size_t *maxlen, int64_t value, int base, int min, int max, int flags) { int signvalue = 0; const char *prefix = ""; - unsigned LLONG uvalue; + uint64_t uvalue; char convert[DECIMAL_SIZE(value) + 3]; int place = 0; int spadlen = 0; @@ -463,7 +431,7 @@ fmtint(char **sbuffer, if (!(flags & DP_F_UNSIGNED)) { if (value < 0) { signvalue = '-'; - uvalue = 0 - (unsigned LLONG)value; + uvalue = 0 - (uint64_t)value; } else if (flags & DP_F_PLUS) signvalue = '+'; else if (flags & DP_F_SPACE)