Path: utzoo!attcan!uunet!lll-winken!ames!oliveb!pyramid!wendyt From: wendyt@pyrps5 (Wendy Thrash) Newsgroups: comp.std.c Subject: Re: volatile registers (was: The world is not ready for 'volatile') Message-ID: <54573@pyramid.pyramid.com> Date: 11 Jan 89 00:45:38 GMT Sender: daemon@pyramid.pyramid.com Reply-To: wendyt@pyrps5.UUCP (Wendy Thrash) Organization: Pyramid Technology Corp., Mountain View, CA Lines: 14 In article <298@twwells.uucp> bill@twwells.UUCP (T. William Wells) writes: >To alias something, one must have its >address. Registers can't have their addresses taken. Therefore >register variables can't be aliased. QED. If the above is a statement about register variables in standard-conforming C programs, it may be true; if it's a statement about computer hardware, it is false. On Pyramid hardware, for example, one is quite free to take the addresses of registers (though it takes a couple of instructions to do so). Our current implementation of C also allows taking the address of a register variable, remarking as it does that, "warning: taking the address of a register variable is not portable". We now have a proof and a counterexample.