aboutsummaryrefslogtreecommitdiff
path: root/gcc/dwarf2out.c
diff options
context:
space:
mode:
authorH.J. Lu <hongjiu.lu@intel.com>2008-10-10 23:28:05 +0000
committerH.J. Lu <hjl@gcc.gnu.org>2008-10-10 16:28:05 -0700
commit35bb49450fdf638ecde8f69e1e51d6d082779cc6 (patch)
treeaeff99dd29083ae2f36f1cd85a22d53727afa5e0 /gcc/dwarf2out.c
parentdc3ba671806b4012bb9a907a2116d0cb5e62eccc (diff)
downloadgcc-35bb49450fdf638ecde8f69e1e51d6d082779cc6.zip
gcc-35bb49450fdf638ecde8f69e1e51d6d082779cc6.tar.gz
gcc-35bb49450fdf638ecde8f69e1e51d6d082779cc6.tar.bz2
re PR debug/37002 (No debug info on unreferenced parameters after stack alignment)
2008-10-10 H.J. Lu <hongjiu.lu@intel.com> PR debug/37002 * dwarf2out.c (mem_loc_descriptor): Use DRAP for vDRAP which has been optimized out. From-SVN: r141049
Diffstat (limited to 'gcc/dwarf2out.c')
-rw-r--r--gcc/dwarf2out.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index ed4d74d..614871e 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -10008,6 +10008,16 @@ mem_loc_descriptor (rtx rtl, enum machine_mode mode,
distinction between OP_REG and OP_BASEREG. */
if (REGNO (rtl) < FIRST_PSEUDO_REGISTER)
mem_loc_result = based_loc_descr (rtl, 0, VAR_INIT_STATUS_INITIALIZED);
+ else if (stack_realign_drap
+ && crtl->drap_reg
+ && crtl->args.internal_arg_pointer == rtl
+ && REGNO (crtl->drap_reg) < FIRST_PSEUDO_REGISTER)
+ {
+ /* If RTL is internal_arg_pointer, which has been optimized
+ out, use DRAP instead. */
+ mem_loc_result = based_loc_descr (crtl->drap_reg, 0,
+ VAR_INIT_STATUS_INITIALIZED);
+ }
break;
case MEM: