On 64 bit, subtracting two pointers produces a long result. On 32 bit, it's an int...
authorRob Landley <rob@landley.net>
Tue, 3 Mar 2015 02:27:50 +0000 (20:27 -0600)
committerRob Landley <rob@landley.net>
Tue, 3 Mar 2015 02:27:50 +0000 (20:27 -0600)
commit38e5485c6a8ece99aa8aac2f318f14764857ee24
tree2be9f3999a430d19664701480c3696aab142c52c
parent5f1f34ae1a227edbb4b0bba7fe99009d4efd94bd
On 64 bit, subtracting two pointers produces a long result. On 32 bit, it's an int. Even though long _is_ 32 bits on a 32 bit systems, gcc warns about it because reasons.

Also, the warning being that "expects int, but type is wchar_t"... no, type
is not wchar_t. Type is probably long. Specify the ACTUAL TYPE, not the random
typedef alias for it. If the translated type _did_ match, there wouldn't
be a warning! (This is why c89 promoted all arguments to int, precisely
so this wasn't a problem.)
toys/posix/find.c
toys/posix/printf.c
toys/posix/sed.c