Mon, 10 Apr 2006 (16:35 -0600 UTC) Jerry James wrote:
> robert delius royar <xemacs(a)frinabulax.org> wrote:
>> OK, I simply removed the 'if (__GMP_ULONG_MAX <= GMP_NUMB_MASK)' from line
>> 1595 of gmp.h. That stopped the warnings. Now, my loadup/dump fails with the
>> same type error
>> Requiring disp-table.el...*** Error in XEmacs initialization
>> (wrong-type-argument integer-or-char-p 225)
>
> I wonder if you are triggering a similar bug to the icc bug that bit me.
> Let's see. I am attaching the test case I sent Intel a couple of years
> ago. You'll have to edit the Makefile a bit, but try it out and see if
> the test program reports that you are getting bignum results. You
> shouldn't be.
I cannot try the icc compile because I have a PowerPC, but I did the gcc
compilation. If I understand the main() function, I should have
seen "a bignum" at some point. Here is a copy of the warnings and the
output from the program itself:
gcc -Wall -Wextra -I/opt/local/include -Os -mcpu=970 -mtune=970 -mpim-altivec -mpowerpc-gpopt -g3 test.c -L/opt/local/lib -lgmp -lm -o test-gcc
test.c: In function 'bignum_hash':
test.c:780: warning: control may reach end of non-void function '__gmpz_get_ui' being inlined
test.c: At top level:
test.c:1000: warning: 'gc_count_num_float_in_use' defined but not used
test.c:1000: warning: 'gc_count_num_float_freelist' defined but not used
test.c:1019: warning: 'init_bignum_alloc' defined but not used
test.c:1019: warning: 'gc_count_num_bignum_in_use' defined but not used
test.c:1019: warning: 'gc_count_num_bignum_freelist' defined but not used
grendel% ./test-gcc
If I add 1 to 0, I get 1.
If I add 1 to 1, I get 2.
If I add 1 to 2, I get 3.
If I add 1 to 3, I get 4.
If I add 1 to 4, I get 5.
If I add 1 to 5, I get 6.
If I add 1 to 6, I get 7.
If I add 1 to 7, I get 8.
If I add 1 to 8, I get 9.
If I add 1 to 9, I get 10.
If I add 1 to 10, I get 11.
If I add 1 to 11, I get 12.
If I add 1 to 12, I get 13.
If I add 1 to 13, I get 14.
If I add 1 to 14, I get 15.
If I add 1 to 15, I get 16.
If I add 1 to 16, I get 17.
If I add 1 to 17, I get 18.
If I add 1 to 18, I get 19.
If I add 1 to 19, I get 20.
--
Dr. Robert Delius Royar Associate Professor of English
Morehead State University Morehead, Kentucky