dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression force using DW_CFA_def_cfa instead of...

* dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
	force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
	or DW_CFA_def_cfa_offset{,_sf}.

From-SVN: r158793
This commit is contained in:
Jakub Jelinek 2010-04-27 20:12:32 +02:00 committed by Jakub Jelinek
parent 6210710649
commit 78b41ae280
2 changed files with 9 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2010-04-27 Jakub Jelinek <jakub@redhat.com>
* dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
or DW_CFA_def_cfa_offset{,_sf}.
2010-04-27 Eric Botcazou <ebotcazou@adacore.com>
* tree.h: Fix truncated long macros.

View File

@ -1040,7 +1040,7 @@ def_cfa_1 (const char *label, dw_cfa_location *loc_p)
cfi = new_cfi ();
if (loc.reg == old_cfa.reg && !loc.indirect)
if (loc.reg == old_cfa.reg && !loc.indirect && !old_cfa.indirect)
{
/* Construct a "DW_CFA_def_cfa_offset <offset>" instruction, indicating
the CFA register did not change but the offset did. The data
@ -1056,7 +1056,8 @@ def_cfa_1 (const char *label, dw_cfa_location *loc_p)
#ifndef MIPS_DEBUGGING_INFO /* SGI dbx thinks this means no offset. */
else if (loc.offset == old_cfa.offset
&& old_cfa.reg != INVALID_REGNUM
&& !loc.indirect)
&& !loc.indirect
&& !old_cfa.indirect)
{
/* Construct a "DW_CFA_def_cfa_register <register>" instruction,
indicating the CFA register has changed to <register> but the