[Bug target/16480] using -msdata causes internal compiler error

amodra at bigpond dot net dot au gcc-bugzilla@gcc.gnu.org
Wed Aug 25 11:21:00 GMT 2004


------- Additional Comments From amodra at bigpond dot net dot au  2004-08-25 11:21 -------
Mainline fails similarly.  The failure results from this splitter

(define_split
  [(set (match_operand:DI 0 "nonimmediate_operand" "")
        (match_operand:DI 1 "input_operand" ""))]
  "reload_completed && !TARGET_POWERPC64
   && gpr_or_gpr_p (operands[0], operands[1])"
  [(pc)]
{ rs6000_split_multireg_move (operands[0], operands[1]); DONE; })

The "input_operand" predicate accepts any memory operand as the second operand.
 rs6000_split_multireg_move thus needs to accept anything that we accept in
rs6000_legitimate_address.  For this particular failure, that's a
(mem (symbol_ref (...))), which happens to satisfy legitimate_small_data_p.


-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |amodra at bigpond dot net
                   |dot org                     |dot au
             Status|NEW                         |ASSIGNED
           Keywords|                            |patch
      Known to fail|3.4.2                       |3.4.2 3.5.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16480



More information about the Gcc-bugs mailing list