2010-03-15 Thomas Schwinge <thomas@codesourcery.com>

* dw2gencfi.c (output_cie): Make it more explicit which code paths
	belong to .eh_frame only.
This commit is contained in:
Thomas Schwinge 2010-03-15 15:08:02 +00:00
parent b672b05737
commit 4e4e1355e7
2 changed files with 24 additions and 17 deletions

View File

@ -1,3 +1,8 @@
2010-03-15 Thomas Schwinge <thomas@codesourcery.com>
* dw2gencfi.c (output_cie): Make it more explicit which code paths
belong to .eh_frame only.
2010-03-13 Segher Boessenkool <segher@kernel.crashing.org>
* config/tc-v850.c (v850_insert_operand): Handle out-of-range

View File

@ -1,5 +1,5 @@
/* dw2gencfi.c - Support for generating Dwarf2 CFI information.
Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009
Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
Free Software Foundation, Inc.
Contributed by Michal Ludvig <mludvig@suse.cz>
@ -1319,29 +1319,31 @@ output_cie (struct cie_entry *cie, bfd_boolean eh_frame, int align)
if (cie->per_encoding != DW_EH_PE_omit)
augmentation_size += 1 + encoding_size (cie->per_encoding);
out_uleb128 (augmentation_size); /* Augmentation size. */
}
if (cie->per_encoding != DW_EH_PE_omit)
{
offsetT size = encoding_size (cie->per_encoding);
out_one (cie->per_encoding);
exp = cie->personality;
if ((cie->per_encoding & 0x70) == DW_EH_PE_pcrel)
if (cie->per_encoding != DW_EH_PE_omit)
{
offsetT size = encoding_size (cie->per_encoding);
out_one (cie->per_encoding);
exp = cie->personality;
if ((cie->per_encoding & 0x70) == DW_EH_PE_pcrel)
{
#if CFI_DIFF_EXPR_OK
exp.X_op = O_subtract;
exp.X_op_symbol = symbol_temp_new_now ();
emit_expr (&exp, size);
exp.X_op = O_subtract;
exp.X_op_symbol = symbol_temp_new_now ();
emit_expr (&exp, size);
#elif defined (tc_cfi_emit_pcrel_expr)
tc_cfi_emit_pcrel_expr (&exp, size);
tc_cfi_emit_pcrel_expr (&exp, size);
#else
abort ();
abort ();
#endif
}
else
emit_expr (&exp, size);
}
else
emit_expr (&exp, size);
if (cie->lsda_encoding != DW_EH_PE_omit)
out_one (cie->lsda_encoding);
}
if (cie->lsda_encoding != DW_EH_PE_omit)
out_one (cie->lsda_encoding);
switch (DWARF2_FDE_RELOC_SIZE)
{