Signed word lengths and indexes
"Jérôme M. Berger"
jeberger at free.fr
Wed Jun 16 12:40:51 PDT 2010
Jérôme M. Berger wrote:
> Walter Bright wrote:
>> Jérôme M. Berger wrote:
>>> Actually, that problem already occurs in C. I've had problems when
>>> porting code from x86 to x86_64 because some unsigned operations
>>> don't behave the same way on both...
>> How so? I thought most 64 bit C compilers were specifically designed to
>> avoid this problem.
>
> I can't isolate it to a minimal test case, but at my job, we make
> an image processing library. Since negative image dimensions don't
> make sense, we decided to define width and height as "unsigned int".
> Now, we have code that works fine on 32-bit platforms (x86 and arm)
> but segfaults on x86_64. Simply adding an (int) cast in front of the
> image dimensions in a couple of places fixes the issue (tested with
> various versions of gcc on linux and windows).
>
Gotcha! See the attached test case. I will post the explanation for
the issue as a reply to give everyone a chance to try and spot the
error...
Jerome
--
mailto:jeberger at free.fr
http://jeberger.free.fr
Jabber: jeberger at jabber.fr
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test.c
Type: text/x-csrc
Size: 418 bytes
Desc: not available
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20100616/2c3513ce/attachment.c>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: OpenPGP digital signature
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20100616/2c3513ce/attachment.pgp>
More information about the Digitalmars-d
mailing list