[m68k] Fix for Bug #17114
James E Wilson
wilson@specifixinc.com
Fri Sep 10 00:22:00 GMT 2004
Peter Barada wrote:
> Back up in assemble_variable where name is set at line 1554 to:
> name = XSTR (XEXP (decl_rtl, 0), 0);
> (gdb) call debug_rtx(decl->decl.rtl)
> (mem/f/i:SI (reg/f:SI 9 %a1) [18 unseen_objects+0 S4 A16])
The code is expecting to see (mem (symbol_ref "string")). If this is a
file-scope variable, then it must have a symbol_ref associated with it.
Well, I suppose if the compiler was really smart we could detect cases
when static file-scope variables can be allocated to a register, but I
don't think we can do that yet.
I would guess that somewhere some shared RTL is being overwritten, thus
accidentally causing the (mem (symbol_ref)) to be replaced with (mem
(reg)). I don't know why defining EXTRA_MEMORY_CONSTRAINT would cause
that though.
PR 11714 presumably should be closed now. You should add a pointer to
the patch that fixed it. This happens automatically if you put the PR
number in the ChangeLog entry.
--
Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com
More information about the Gcc-patches
mailing list