aboutsummaryrefslogtreecommitdiff
path: root/gcc/dwarf2out.c
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2005-11-03 19:57:55 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2005-11-03 19:57:55 +0000
commitb03e9863c9802d3c143c07613be95b0a91518e18 (patch)
tree262c3cfc442253a7dd1a33f90c4f37cc51a23e39 /gcc/dwarf2out.c
parenta39041fae9f62c038e457f754c7578fb7e772dbb (diff)
downloadgcc-b03e9863c9802d3c143c07613be95b0a91518e18.zip
gcc-b03e9863c9802d3c143c07613be95b0a91518e18.tar.gz
gcc-b03e9863c9802d3c143c07613be95b0a91518e18.tar.bz2
dwarf2asm.c (dw2_force_const_mem): Add new parameter 'public'.
* dwarf2asm.c (dw2_force_const_mem): Add new parameter 'public'. On USE_LINKONCE_INDIRECT platforms, build a DECL_ONE_ONLY indirect reference only if 'public' is true. (dw2_output_indirect_constant_1): On USE_LINKONCE_INDIRECT platforms, emit the .hidden directive only if the indirect reference is public. (dw2_asm_output_encoded_addr_rtx): Add new parameter 'public'. Pass it to dw2_force_const_mem. * dwarf2asm.h (dw2_asm_output_encoded_addr_rtx): New param 'public'. * dwarf2out.c (output_cfi): Adjust calls to above function. (output_call_frame_info): Likewise. * except.c (output_ttype): Pass TREE_PUBLIC of the type_info object as 'public' argument to dw2_asm_output_encoded_addr_rtx. From-SVN: r106445
Diffstat (limited to 'gcc/dwarf2out.c')
-rw-r--r--gcc/dwarf2out.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 314652b..d0520b5 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -2005,7 +2005,7 @@ output_cfi (dw_cfi_ref cfi, dw_fde_ref fde, int for_eh)
dw2_asm_output_encoded_addr_rtx (
ASM_PREFERRED_EH_DATA_FORMAT (/*code=*/1, /*global=*/0),
gen_rtx_SYMBOL_REF (Pmode, cfi->dw_cfi_oprnd1.dw_cfi_addr),
- NULL);
+ false, NULL);
else
dw2_asm_output_addr (DWARF2_ADDR_SIZE,
cfi->dw_cfi_oprnd1.dw_cfi_addr, NULL);
@@ -2261,7 +2261,8 @@ output_call_frame_info (int for_eh)
dw2_asm_output_data (1, per_encoding, "Personality (%s)",
eh_data_format_name (per_encoding));
dw2_asm_output_encoded_addr_rtx (per_encoding,
- eh_personality_libfunc, NULL);
+ eh_personality_libfunc,
+ true, NULL);
}
if (any_lsda_needed)
@@ -2313,6 +2314,7 @@ output_call_frame_info (int for_eh)
SYMBOL_REF_FLAGS (sym_ref) |= SYMBOL_FLAG_LOCAL;
dw2_asm_output_encoded_addr_rtx (fde_encoding,
sym_ref,
+ false,
"FDE initial location");
if (fde->dw_fde_switched_sections)
{
@@ -2322,13 +2324,13 @@ output_call_frame_info (int for_eh)
fde->dw_fde_hot_section_label);
SYMBOL_REF_FLAGS (sym_ref2) |= SYMBOL_FLAG_LOCAL;
SYMBOL_REF_FLAGS (sym_ref3) |= SYMBOL_FLAG_LOCAL;
- dw2_asm_output_encoded_addr_rtx (fde_encoding, sym_ref3,
+ dw2_asm_output_encoded_addr_rtx (fde_encoding, sym_ref3, false,
"FDE initial location");
dw2_asm_output_delta (size_of_encoded_value (fde_encoding),
fde->dw_fde_hot_section_end_label,
fde->dw_fde_hot_section_label,
"FDE address range");
- dw2_asm_output_encoded_addr_rtx (fde_encoding, sym_ref2,
+ dw2_asm_output_encoded_addr_rtx (fde_encoding, sym_ref2, false,
"FDE initial location");
dw2_asm_output_delta (size_of_encoded_value (fde_encoding),
fde->dw_fde_unlikely_section_end_label,
@@ -2393,7 +2395,7 @@ output_call_frame_info (int for_eh)
fde->funcdef_number);
dw2_asm_output_encoded_addr_rtx (
lsda_encoding, gen_rtx_SYMBOL_REF (Pmode, l1),
- "Language Specific Data Area");
+ false, "Language Specific Data Area");
}
else
{