I've just found what I think is a bug. In evaluate_ptr_add(), in evaluate.c, are the following lines: /* Get the size of whatever the pointer points to */ multiply = base->bit_size >> 3; This divides the bit size by 8 to get the size in bytes. However, this doesn't take into account that bits_in_char might not be 8. I think this should actually be: /* Get the size of whatever the pointer points to */ multiply = base->bit_size / bits_in_char; (This now produces the right result on my non-8-bit-char 'platform'.) -- ┌─── dg@cowlark.com ───── http://www.cowlark.com ───── │ "I have always wished for my computer to be as easy to use as my │ telephone; my wish has come true because I can no longer figure out │ how to use my telephone." --- Bjarne Stroustrup
Attachment:
signature.asc
Description: OpenPGP digital signature