This is the mail archive of the gcc-bugs@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 debug/24444] [4.1 regression] invalid register in debug info



------- Comment #4 from rth at gcc dot gnu dot org  2005-10-20 08:35 -------
Well, the ideal fix is to make use of the dwarf3 DW_OP_call_frame_cfa
directive, and let the debugger get the CFA information from the ia64
unwind info.  Similarly for the arm eabi unwind info.

I'm not sure what a good short-term fix is.  Perhaps, as you suggest,
putting some code back for TARGET_UNWIND_INFO targets.

On the other hand, both ia64 and arm are ACCUMULATE_OUTGOING_ARGS targets,
which means that they don't *need* all that tracking info to find the CFA.
For any function that gcc generates, the CFA starts as SP+OFFSET1 and changes
exactly once to either SP+OFFSET2 or FP+OFFSET3.  Which means that we could 
fairly easily acquire this info (plus a label of the transition point) from
a target hook.


-- 


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


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