------- 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