diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2005-11-03 19:57:55 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2005-11-03 19:57:55 +0000 |
commit | b03e9863c9802d3c143c07613be95b0a91518e18 (patch) | |
tree | 262c3cfc442253a7dd1a33f90c4f37cc51a23e39 /gcc/dwarf2out.c | |
parent | a39041fae9f62c038e457f754c7578fb7e772dbb (diff) | |
download | gcc-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.c | 12 |
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 { |