Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!uwm.edu!gem.mps.ohio-state.edu!ginosko!uunet!mcsun!hp4nl!orcenl!bengsig From: bengsig@oracle.nl (Bjorn Engsig) Newsgroups: comp.sys.ibm.pc.rt Subject: Re: integer alignment problems on RT Keywords: RT 6150 032 ROMP alignment Message-ID: <537.nlhp3@oracle.nl> Date: 12 Oct 89 12:49:37 GMT References: <162@eliza.edvvie.at> <2396@ibmpa.UUCP> <488@ctycal.UUCP> Reply-To: bengsig@oracle.nl (Bjorn Engsig) Organization: ORACLE Europe, The Netherlands Lines: 21 Article <488@ctycal.UUCP> by ingoldsb@ctycal.UUCP (Terry Ingoldsby) says: | |This [using unaligned pointers] seems to me to be no less of an unusual |event than a divide by zero |and no more code dependent. ie. it is possible to generate faulty code |that at execution time (when it can't be detected by the compiler) causes |an arithmetic exception. Similarly addresses can be calculated incorrectly. No, these two are clearly different, at least in the case of C, where the language definition (both) say: 1) Only valid pointers may be used. 2) You get SIGFPE on arithmetic errors, e.g. zero divide or overflow. There is nothing at all, that describes the behaviour of a C program using invalid pointers. In my opinion, the way they are handled on the ROMP processor is not worse than the handling on other processors. It's just a matter of writing truly portable code :-) -- Bjorn Engsig, bengsig@oracle.nl, bengsig@oracle.com, mcvax!orcenl!bengsig