This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Bug in find_reloads_address


Hi all,

Suppose I have the following code:

  set (reg A) (symbol_ref)
  set (reg B) (mem (plus (reg A) (const_int)))

The function find_reloads_address converts this to:

  set (reg B) (mem (plus (symbol_ref) (const_int)))

That is, the symbol ref is propagated into the second instruction. Now the
second instruction is invalid for my machine, so legitimate_address
correctly rejects it - a fact which is tested by strict_memory_address_p
in find_reloads_address. However, rather than reverting back to the
previous correct instruction sequence, or replacing the now-incorrect
instruction with a correct instruction, find_reloads_address continues to
use the incorrect instruction. Is this a bug, or something I am doing
wrong?

Thanks,

  Daniel.

===============================================================================
Daniel Towner                        |
                                     |
Computer Science Department          | Email: D.W.Towner@bristol.ac.uk
University of Bristol                | Web:   http://www.cs.bris.ac.uk/~towner
Merchant Venturers Building          | Phone: 44 (0)117 954 5256
Woodland Road, Bristol, UK           |
BS8 1UB                              |
===============================================================================


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]