threads / patch / 25954

patch, 14 partsmsvc: Fix build by adding missing INTMAX_MAX define

Subject: [PATCH 03/14] msvc: Fix build by adding missing INTMAX_MAX define

## tl;dr

2 messages between Dec 4, 2010 and Dec 9, 2010. Diffs are folded; open one to read it.

replies: 1people: 2as markdown or json

Ramsay Jones· Dec 4, 2010, 18:57 UTC · lore

Commit c03c831 (do not depend on signed integer overflow, 05-10-2010) provokes an msvc build failure. The cause of the failure is a missing definition of the INTMAX_MAX constant, used in the new maximum_signed_value_of_type(a) macro, which would normally be defined in the C99 <stdint.h> header file.

In order the fix the compilation error, we add an appropriate definition of the INTMAX_MAX constant, along with INTMAX_MIN and UINTMAX_MAX, to an msvc compat header file.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
---
 compat/vcbuild/include/unistd.h |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)
Show changes to compat/vcbuild/include/unistd.h +4 −0
diff --git a/compat/vcbuild/include/unistd.h b/compat/vcbuild/include/unistd.h
index 2a4f276..b14fcf9 100644
--- a/compat/vcbuild/include/unistd.h
+++ b/compat/vcbuild/include/unistd.h
@@ -45,6 +45,10 @@ typedef unsigned long long uintmax_t;
 
 typedef int64_t off64_t;
 
+#define INTMAX_MIN  _I64_MIN
+#define INTMAX_MAX  _I64_MAX
+#define UINTMAX_MAX _UI64_MAX
+
 #define STDOUT_FILENO 1
 #define STDERR_FILENO 2
 
-- 
1.7.3
Erik Faye-Lund· Dec 9, 2010, 19:19 UTC · re: Ramsay Jones · lore

Re: [PATCH 03/14] msvc: Fix build by adding missing INTMAX_MAX define

On Sat, Dec 4, 2010 at 7:57 PM, Ramsay Jones <ramsay@ramsay1.demon.co.uk> wrote:
Show 31 quoted lines
>
> Commit c03c831 (do not depend on signed integer overflow,
> 05-10-2010) provokes an msvc build failure. The cause of the
> failure is a missing definition of the INTMAX_MAX constant,
> used in the new maximum_signed_value_of_type(a) macro, which
> would normally be defined in the C99 <stdint.h> header file.
>
> In order the fix the compilation error, we add an appropriate
> definition of the INTMAX_MAX constant, along with INTMAX_MIN
> and UINTMAX_MAX, to an msvc compat header file.
>
> Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
> ---
>  compat/vcbuild/include/unistd.h |    4 ++++
>  1 files changed, 4 insertions(+), 0 deletions(-)
>
> diff --git a/compat/vcbuild/include/unistd.h b/compat/vcbuild/include/unistd.h
> index 2a4f276..b14fcf9 100644
> --- a/compat/vcbuild/include/unistd.h
> +++ b/compat/vcbuild/include/unistd.h
> @@ -45,6 +45,10 @@ typedef unsigned long long uintmax_t;
>
>  typedef int64_t off64_t;
>
> +#define INTMAX_MIN  _I64_MIN
> +#define INTMAX_MAX  _I64_MAX
> +#define UINTMAX_MAX _UI64_MAX
> +
>  #define STDOUT_FILENO 1
>  #define STDERR_FILENO 2
>

Looks good. You only really need to define INTMAX_MAX, but INTMAX_MIN and UINTMAX_MAX are nice additions for future code. I guess you *could* have added UINTMAX_MIN for completeness, but I doubt anyone will ever bother to use it, as it's always 0. So for what it's worth:

Acked-by: Erik Faye-Lund <kusmabite@gmail.com>

In case someone is curious of the definitions; they are documented at http://msdn.microsoft.com/en-us/library/k15zsh48.aspx

← back to recent threads