[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