------- Comment #7 from jakub at gcc dot gnu dot org  2009-10-15 20:37 -------
I see several issues:
1) expand_debug_expr should handle CONJ_EXPR.  The easiest would be just
to handle the case where op0 is CONCAT (then just
return gen_rtx_CONCAT (mode, XEXP (op0, 0), gen_rtx_NEG (GET_MODE (XEXP (op0,
1)), XEXP (op0, 1))); ), but perhaps some other cases could be handled (e.g.
when op0 is a MEM, it is possible to create two mems for the parts).  In the
testcase op0 is DEBUG_EXPR, and using SUBREG on it would be weird (and, ATM
dwarf2out.c handles SUBREGS badly anyway, assumes it is always low part subreg
apparently).
2) seems that case SUBREG: handing in mem_loc_descriptor has to reject inner
mode which is not MODE_INT, otherwise we might very well end up emitting e.g.
floating point operations using dwarf3 expression opcodes (but those are
integer operations).


-- 

jakub at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |aoliva at gcc dot gnu dot
                   |                            |org


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

Reply via email to