🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.sys.atari.st
Article #27453

Re: Bug in Alcyon C v4.14 (not a bug)

#27453
From: jsgray
Date: Sat, 04 Jul 1987 19:11
22 lines
1517 bytes
In article <4713@utah-cs.UUCP> sandra@utah-cs.UUCP (Sandra J Loosemore) writes:
>I've just run across a rather annoying bug in Alcyon C v4.14 (the developer's
>kit C):  it has a hard time with adding a word-sized integer constant to
>a pointer variable.  My code originally looked something like
>
>    STRUCTURE *this, *next;
>    next = this + sizeof(STRUCTURE);  /* sizeof(STRUCTURE) = 8192 */
>
>and it was generating code like:
>
>    add.l #$80000000,R0

If you wanted 'next' to point to the next structure past 'this', you should
have used 'next = this + 1'.  'next = this + 8192' advances next to the
structure 8191 structures past 'this'.

[K&R C Ref 7.4:] "The result of the + operator is the sum of the operands.
A pointer to an object in an array and a value of any integral type
may be added.  The latter is in all cases converted to an address offset
by multiplying it by the length of the object to which the pointer points."

Jan Gray
Technical Details
Message-ID: <13802@watmath.UUCP>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!water!watmath!jsgray
References: <4713@utah-cs.UUCP>

Show Full Headers
Complete Article Headers
Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: arc1-ca.pugleaf.net!utzoo!utgpu!water!watmath!jsgray
From: jsgray@watmath.UUCP
Newsgroups: comp.sys.atari.st
Subject: Re: Bug in Alcyon C v4.14 (not a bug)
Message-ID: <13802@watmath.UUCP>
Date: Sat, 4-Jul-87 15:11:35 EDT
Article-I.D.: watmath.13802
Posted: Sat Jul  4 15:11:35 1987
Date-Received: Sun, 5-Jul-87 01:06:07 EDT
References: <4713@utah-cs.UUCP>
Reply-To: jsgray@watmath.waterloo.edu (Jan Gray)
Organization: U. of Waterloo, Ontario
Lines: 22
Keywords: bug pointer arithmetic