This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: mips gcc -O1: Address exception error on store doubleword
On Thursday 09 August 2007, Alex Gonzalez wrote:
> Hi,
>
> I'll try to come up with a short test.
>
> I have narrowed it a bit more. The PVAR structure contains a long long
> variable ( with a sizeof 8 and an alignof 8 for my architecture). If I
> take out the long long variable, the compiler uses sdl instructions
> instead of sd and the exception doesn't happen.
>
> Also, if I do
>
> static void varcopy(void *pvar1, void *pvar2)
>
> the compiler uses sdl and avoids the crash.
>
> I am compiling for n32 ABI, so the register size is 64bits.
>
> Any ideas?
This is a bug in whatever calls varcopy. You told the complier that both were
pointers to 8-byte aligned structures. If you lied, then the compiler is
eintirely within its rights to generate code that explodes. You need to trace
the values back to find out where the misalignment is coming from.
Paul