Bill Allombert on Sat, 13 Dec 2003 01:07:49 +0100 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
tentative patch to fix warning on Darwin |
Hello PARI-dev, The buildlogs report the following warning on Darwin: gcc -c -O3 -DGCC_INLINE -Wall -fomit-frame-pointer -no-cpp-precomp -fno-commo n -DBOTH_GNUPLOT_AND_X11 -I. -I../src/headers -o init.o ../src/language/init.c ../src/language/init.c: In function `pari_init_stackcheck': ../src/language/init.c:224: warning: comparison is always false due to limited range of data type As far as I understand from looking at the code, RLIM_INFINITY is -1 but we have casted rip.rlim_cur to a ulong so the test will always fail (but the alternative will always succeed since (ulong)-1 is bigger than any ulong but it is per chance). The following patch should fix this problem (though I have not tested it). So if you run OS X, please tell me if this patch fix the warning and look correct. (Please also check the value of RLIM_INFINITY on this system). Cheers, Bill. Index: src/language/init.c =================================================================== RCS file: /home/cvs/pari/src/language/init.c,v retrieving revision 1.211 diff -u -r1.211 init.c --- src/language/init.c 10 Dec 2003 16:13:30 -0000 1.211 +++ src/language/init.c 12 Dec 2003 23:53:42 -0000 @@ -221,7 +221,7 @@ if (getrlimit(RLIMIT_STACK, &rip)) return; size = rip.rlim_cur; - if (size == RLIM_INFINITY || size > (ulong)stack_base) + if (size == (ulong) RLIM_INFINITY || size > (ulong)stack_base) PARI_stack_limit = (void*)(((ulong)stack_base) / 16); else PARI_stack_limit = (void*)((ulong)stack_base - (size/16)*15);