re PR debug/48203 (ICE in dwarf2out.c while building eglibc.)
authorJakub Jelinek <jakub@redhat.com>
Mon, 28 Mar 2011 23:53:46 +0000 (01:53 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Mon, 28 Mar 2011 23:53:46 +0000 (01:53 +0200)
commit2b80199f41d444c88474b32792a7e828f2a96b68
tree7d5601e9e49e4f8fa5cf78fc46ce899d76d94f4f
parentb9da60aea69647fd7957dc328a8431412157d3a7
re PR debug/48203 (ICE in dwarf2out.c while building eglibc.)

PR debug/48203
* cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
create ENTRY_VALUE if incoming or address of incoming's MEM
is a hard REG.
* dwarf2out.c (mem_loc_descriptor): Don't emit
DW_OP_GNU_entry_value of DW_OP_fbreg.
* var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
on ENTRY_VALUE is able to find the canonical parameter VALUE.
* cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
ENTRY_VALUE_EXPs.
(cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
is a REG_P or MEM_P with REG_P address, compute hash directly
instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
(preserve_only_constants): Don't clear VALUES forwaring
ENTRY_VALUE to some other VALUE.

* gcc.dg/pr48203.c: New test.

From-SVN: r171640
gcc/ChangeLog
gcc/cfgexpand.c
gcc/cselib.c
gcc/dwarf2out.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/pr48203.c [new file with mode: 0644]
gcc/var-tracking.c