This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug debug/24444] [4.1 regression] invalid register in debug info
- From: "rth at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 20 Oct 2005 08:35:59 -0000
- Subject: [Bug debug/24444] [4.1 regression] invalid register in debug info
- References: <bug-24444-50@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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