This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
RE: CFA expression failure
It might due to
DW_CFA_expression: r6 (esi) (DW_OP_breg5: -8)
DW_CFA_expression: r3 (ebx) (DW_OP_breg5: -12)
After defining reg via CFA instead of r5, we got less failure.
Thanks - Joey
-----Original Message-----
From: Daniel Jacobowitz [mailto:drow@false.org]
Sent: Wednesday, June 25, 2008 10:00 PM
To: H.J. Lu
Cc: Ye, Joey; gcc@gcc.gnu.org; Guo, Xuepeng
Subject: Re: CFA expression failure
On Tue, Jun 24, 2008 at 08:40:18PM -0700, H.J. Lu wrote:
> I think the problem is in uw_update_context_1. REG_SAVED_EXP
> and REG_SAVED_VAL_EXP may use other registers as shown above:
>
> DW_CFA_expression: r6 (esi) (DW_OP_breg5: -8)
>
> They should be handle last. I am testing this patch. Does it
> make senses?
I think that rather than delaying such expressions, you need to
evaluate into a temporary context. DW_OP_breg5 means the current
frame's %ebp; DW_CFA_expression: r5 describes the location of the
previous frame's %ebp. They're different registers. Otherwise this
is going to be too order-sensitive.
--
Daniel Jacobowitz
CodeSourcery