diff options
author | Andy Polyakov <appro@openssl.org> | 2017-03-29 23:25:45 +0200 |
---|---|---|
committer | Andy Polyakov <appro@openssl.org> | 2017-03-30 19:34:24 +0200 |
commit | 5f5840139e3f3ef5681713c6196f93034d9d19f4 (patch) | |
tree | d257a0eee9a5c57dfab37d6aa1039f4cbde626c7 | |
parent | 7d672984f4dc6a87cb0c7d99279c6175fcdc3ad0 (diff) |
e_os.h: drop now-redundant PRIu64 [and fix OSSLzu].
Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/3083)
-rw-r--r-- | e_os.h | 41 | ||||
-rw-r--r-- | include/openssl/e_os2.h | 1 |
2 files changed, 21 insertions, 21 deletions
@@ -30,29 +30,30 @@ extern "C" { # endif /* - * We need a format operator for some client tools for uint64_t. If inttypes.h - * isn't available or did not define it, just go with hard-coded. + * Format specifier for printing size_t. Original conundrum was to + * get it working with -Wformat [-Werror], which can be considered + * overzelaous, especially in multi-platform context, but it's + * conscious choice... */ -# if defined(OPENSSL_SYS_UEFI) -# define PRIu64 "Lu" -# endif -# ifndef PRIu64 -# ifdef SIXTY_FOUR_BIT_LONG -# define PRIu64 "lu" -# else -# define PRIu64 "llu" -# endif -# endif - -/* Format specifier for printing size_t */ -# if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) +# if defined(_WIN64) +# define OSSLzu "I64u" /* One would expect _WIN{64|32} cases after + * __STDC_VERSION__, but there are corner + * cases of MinGW compilers that link with + * non-compliant MSVCRT.DLL... */ +# elif defined(_WIN32) +# define OSSLzu "u" +# elif defined(__VMS) +# define OSSLzu "u" /* VMS suffers from similar problem as MinGW, + * i.e. C RTL falling behind compiler. Recall + * that sizeof(size_t)==4 even in LP64 case. */ +# elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L # define OSSLzu "zu" +# elif defined(__SIZEOF_SIZE_T__) && __SIZEOF_SIZE_T__==4 +# define OSSLzu "u" /* 'lu' should have worked, but when generating + * 32-bit code gcc still complains :-( */ # else -# ifdef THIRTY_TWO_BIT -# define OSSLzu "u" -# else -# define OSSLzu PRIu64 -# endif +# define OSSLzu "lu" /* To see that is works recall what does L + * stand for in ILP32 and LP64 */ # endif # if !defined(NDEBUG) && !defined(OPENSSL_NO_STDIO) diff --git a/include/openssl/e_os2.h b/include/openssl/e_os2.h index c1a9ad7c25..717cadf43c 100644 --- a/include/openssl/e_os2.h +++ b/include/openssl/e_os2.h @@ -236,7 +236,6 @@ typedef INT32 int32_t; typedef UINT32 uint32_t; typedef INT64 int64_t; typedef UINT64 uint64_t; -# define PRIu64 "%Lu" # elif (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ defined(__osf__) || defined(__sgi) || defined(__hpux) || \ defined(OPENSSL_SYS_VMS) || defined (__OpenBSD__) |