Date: Sun, 28 Oct 2001 22:26:18 -0800 From: Peter Wemm <peter@wemm.org> To: Mike Smith <msmith@FreeBSD.ORG> Cc: John Baldwin <jhb@FreeBSD.ORG>, arch@FreeBSD.ORG Subject: Re: time_t not to change size on x86 Message-ID: <20011029062618.396303808@overcee.netplex.com.au> In-Reply-To: <200110290244.f9T2ihc04347@mass.dis.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Mike Smith wrote: > > Changing alpha isn't near as "bad" as changing i386, as it already passes a rg > > s > > in 64-bit registers, so printf won't break, etc. I don't think i386 should > > ever change, personally, but I don't think it will really break Alpha near as > > much as i386. > > As with most folk, you forget pass-by-reference here. 8) We had one of these in the ACPICA code recently. :-) A pointer to int had been cast that hid the fact that it was a 32/64 bit mismatch. *NO* compiler warnings will detect that. Specifically, it was: int i; int j; bus_read_ivar(dev, ....., (uintptr_t *)&i); .. which was silently accepted by the compiler. And 'i' was written as a 'long' and consequently trashed the 'j' variable that was on the stack right after it. (uintptr_t is 64 bit on non-i386) We risk the same problem in 3rd party apps. Cheers, -Peter -- Peter Wemm - peter@FreeBSD.org; peter@yahoo-inc.com; peter@netplex.com.au "All of this is for nothing if we don't go to the stars" - JMS/B5 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20011029062618.396303808>