diff options
author | H.J. Lu <hongjiu.lu@intel.com> | 2008-07-31 21:28:54 +0000 |
---|---|---|
committer | H.J. Lu <hjl@gcc.gnu.org> | 2008-07-31 14:28:54 -0700 |
commit | d2d93c32dc020c143ca5ffc8b72969cbef530778 (patch) | |
tree | 5b5de8d55327239ef11486dfd02ce87e62a4f059 /gcc/function.h | |
parent | c983efcec6d1d022c5ec6cd0f3ff4c0126a0e415 (diff) | |
download | gcc-d2d93c32dc020c143ca5ffc8b72969cbef530778.zip gcc-d2d93c32dc020c143ca5ffc8b72969cbef530778.tar.gz gcc-d2d93c32dc020c143ca5ffc8b72969cbef530778.tar.bz2 |
re PR debug/36977 (Incorrect debug info for stack variables with stack alignment)
2008-07-31 H.J. Lu <hongjiu.lu@intel.com>
PR debug/36977
* cfgexpand.c (expand_stack_alignment): Set stack_realign_tried.
* dwarf2out.c (based_loc_descr): Check crtl->stack_realign_tried
for stack alignment.
* function.h (rtl_data): Add stack_realign_tried. Update
comments.
From-SVN: r138438
Diffstat (limited to 'gcc/function.h')
-rw-r--r-- | gcc/function.h | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/gcc/function.h b/gcc/function.h index ebba29f..1153fb0 100644 --- a/gcc/function.h +++ b/gcc/function.h @@ -417,20 +417,25 @@ struct rtl_data GTY(()) /* When set, expand should optimize for speed. */ bool maybe_hot_insn_p; - /* Nonzero if function stack realignment is needed. This flag may be - set twice: before and after reload. It is set before reload wrt - stack alignment estimation before reload. It will be changed after - reload if by then criteria of stack realignment is different. + /* Nonzero if function stack realignment is needed. This flag may be + set twice: before and after reload. It is set before reload wrt + stack alignment estimation before reload. It will be changed after + reload if by then criteria of stack realignment is different. The value set after reload is the accurate one and is finalized. */ bool stack_realign_needed; + /* Nonzero if function stack realignment is tried. This flag is set + only once before reload. It affects register elimination. This + is used to generate DWARF debug info for stack variables. */ + bool stack_realign_tried; + /* Nonzero if function being compiled needs dynamic realigned argument pointer (drap) if stack needs realigning. */ bool need_drap; /* Nonzero if function stack realignment estimation is done, namely - stack_realign_needed flag has been set before reload wrt - estimated stack alignment info. */ + stack_realign_needed flag has been set before reload wrt estimated + stack alignment info. */ bool stack_realign_processed; /* Nonzero if function stack realignment has been finalized, namely |