From e3ebe7db5de64c193202f1c5b321c9a470e730c5 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Fri, 10 Aug 2012 15:13:26 -0400 Subject: [PATCH] use int instead of long for ptrdiff_t on all 32-bit archs this is needed to match the underlying "ABI" standards. it's not really an ABI issue since the binary representations are the same, but having the wrong type can lead to errors when the type arising from a difference-of-pointers expression does not match the defined type of ptrdiff_t. most of the problems affect C++, not C. --- arch/arm/bits/alltypes.h.sh | 2 +- arch/i386/bits/alltypes.h.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/bits/alltypes.h.sh b/arch/arm/bits/alltypes.h.sh index 4ba3d81c..274de0df 100755 --- a/arch/arm/bits/alltypes.h.sh +++ b/arch/arm/bits/alltypes.h.sh @@ -18,7 +18,7 @@ union \1 \2;\ TYPEDEF unsigned size_t; TYPEDEF int ssize_t; -TYPEDEF long ptrdiff_t; +TYPEDEF int ptrdiff_t; TYPEDEF __builtin_va_list va_list; diff --git a/arch/i386/bits/alltypes.h.sh b/arch/i386/bits/alltypes.h.sh index 10956690..10fcf6a3 100755 --- a/arch/i386/bits/alltypes.h.sh +++ b/arch/i386/bits/alltypes.h.sh @@ -18,7 +18,7 @@ union \1 \2;\ TYPEDEF unsigned size_t; TYPEDEF int ssize_t; -TYPEDEF long ptrdiff_t; +TYPEDEF int ptrdiff_t; #if __GNUC__ >= 3 TYPEDEF __builtin_va_list va_list; -- 2.25.1