Hi Scott, > On Thu, 7 Oct 2010 21:31:43 +0200 > Wolfgang Denk <w...@denx.de> wrote: > >> Dear Scott Wood, >> >> In message <20101007135257.05a93...@udp111988uds.am.freescale.net> you wrote: >> > >> > > It is a pretty common method to use a pointer to some struct (for >> > > example, some form of PDU) and make it point to some I/O buffer. >> > >> > Yes, but at that point we are not talking about well-defined C, but >> > rather implementation-specific behavior. There's nothing wrong with >> > it, but the C standard is no longer authoritative on what happens in >> > such cases. >> >> Huch? Which part of that is not well-defined (or even not >> standard-conforming) C? > > Well, how do you obtain the unaligned pointer?
[...] > Extensions like __attribute__((packed)) are obviously not > well-defined C. In ISO-IEC9899:TC3[1] I find this about dereferencing a pointer: ,----[ 6.5.3.2 footnote 87 ] | [...] | Among the invalid values for dereferencing a pointer by the unary * | operator are a null pointer, an address inappropriately aligned for the | type of object pointed to, and the address of an object after the end of | its lifetime. `---- So dereferencing such a pointer - however we arrive at it - is simply invalid. The same sentence is in the ANSI spec[2] also. The C FAQ[3] notes in section 16.8 that using unaligned pointers may very well lead to segmentation faults, bus errors or general protection faults. Not much documentation actually... Cheers Detlev [1] http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1256.pdf [2] http://flash-gordon.me.uk/ansi.c.txt [3] http://www.c-faq.com/versions.html -- ... the tools we are trying to use and the language or notation we are using to express or record our thoughts, are the major factors determining what we can think or express at all! -- Edsger W. Dijkstra -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: d...@denx.de _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot