Date: Fri, 6 Feb 2015 17:03:44 -0800 From: "Simon J. Gerraty" <sjg@juniper.net> To: Anuranjan Shukla <anshukla@juniper.net> Cc: "freebsd-arch@freebsd.org" <freebsd-arch@freebsd.org> Subject: Re: Buggy sbspace() on 64bit builds? Message-ID: <5977.1423271024@chaos> In-Reply-To: <D0FA7C7B.249B1%anshukla@juniper.net> References: <D0F95E21.2489D%anshukla@juniper.net> <20150206183036.S1246@besplex.bde.org> <D0FA7C7B.249B1%anshukla@juniper.net>
next in thread | previous in thread | raw e-mail | index | archive | help
Anuranjan Shukla <anshukla@juniper.net> wrote: > this, along with return value being 'int' acceptable as a final > determination? It is ok for the function to return long, so long as an int is used internally. Casting the int to long - implicit on return does no harm. #include <stdio.h> #include <sys/types.h> #include <unistd.h> int main(int argc, char *argv[]) { uint a, b; long r1; int r2; a = 1; b = 2; r1 = a - b; r2 = a - b; printf("r1=%ld\nr2=%d\nr3=%ld\n", r1, r2, (long)r2); exit(0); } r1=4294967295 r2=-1 r3=-1 so I think just using 'int' internally should work for now, perhaps with a comment saying the object size should match those being subtracted etc.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5977.1423271024>