------- Comment #3 from sje at cup dot hp dot com 2006-02-04 00:04 ------- Following up to my own comment, the HP ABI expert I talked to thinks the generated code is OK. His rationale is that to fill up the parameter registers, you lay things out as they would be in memory and then map that space to registers. In that case the pointer would be aligned in memory and when mapping that space to registers you might have to skip a register to map things consistently.
If you agree with this reasoning then the error here would not be the generated code but the fact that GCC does not give a warning about incompatibile types (void * vs. my_t) like it does when you pass a 'int *' to a function expecting a 'char *'. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25372