From owner-freebsd-current Mon Nov 15 18:23:56 1999 Delivered-To: freebsd-current@freebsd.org Received: from m4.c2.telstra-mm.net.au (m4.c2.telstra-mm.net.au [24.192.3.19]) by hub.freebsd.org (Postfix) with ESMTP id 0637E14BC2 for ; Mon, 15 Nov 1999 18:23:51 -0800 (PST) (envelope-from areilly@nsw.bigpond.net.au) Received: from m5.c2.telstra-mm.net.au (m5.c2.telstra-mm.net.au [24.192.3.20]) by m4.c2.telstra-mm.net.au (8.8.6 (PHNE_14041)/8.8.6) with ESMTP id NAA12919 for ; Tue, 16 Nov 1999 13:23:50 +1100 (EDT) X-BPC-Relay-Envelope-From: areilly@nsw.bigpond.net.au X-BPC-Relay-Envelope-To: X-BPC-Relay-Sender-Host: m5.c2.telstra-mm.net.au [24.192.3.20] X-BPC-Relay-Info: Message delivered directly. Received: from areilly.bpc-users.org (CPE-24-192-49-170.nsw.bigpond.net.au [24.192.49.170]) by m5.c2.telstra-mm.net.au (8.8.6 (PHNE_14041)/8.8.6) with SMTP id NAA08915 for ; Tue, 16 Nov 1999 13:23:49 +1100 (EDT) Received: (qmail 42704 invoked by uid 1000); 16 Nov 1999 02:23:49 -0000 From: "Andrew Reilly" Date: Tue, 16 Nov 1999 13:23:49 +1100 To: Pierre Beyssac Cc: freebsd-current@FreeBSD.ORG Subject: Re: egcs -O breaks ping.c:in_cksum() Message-ID: <19991116132349.B40907@gurney.reilly.home> References: <19991115174831.B30139@enst.fr> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 1.0pre2i In-Reply-To: <19991115174831.B30139@enst.fr> Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG On Mon, Nov 15, 1999 at 05:48:31PM +0100, Pierre Beyssac wrote: > The problem is apparently due to the following code fragment: > > register u_short answer = 0; > [...] > /* mop up an odd byte, if necessary */ > if (nleft == 1) { > *(u_char *)(&answer) = *(u_char *)w ; > sum += answer; > } > > Removing the "register" declaration for 'answer' doesn't help. That code should not even compile, since standard C says that you _can't_ derefrence a register variable. That's about the only genuine semantic content of the register keyword now. The fix with a union (in another message) is the right way to do it, and doesn't even require that "answer" be in addressable storage. (I.e., it can now be optimised into a register). -- Andrew To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message