I don't think that's what is happening at all: I think that in one of these cases, your test file's on-stack fenv_t is aligned, and on the other it isn't. The code you posted for gcc 4.0 looks fine. I think the assembly is broken or the definition of fenv_t.
drow is right, as usual. our fenv_t needs to be defined with __attribute__((aligned(8))) or similar.
randolph -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]