summaryrefslogtreecommitdiff
path: root/gcc/final.c
diff options
context:
space:
mode:
authorBernd Schmidt <bernds@codesourcery.com>2014-11-10 16:12:21 +0000
committerBernd Schmidt <bernds@gcc.gnu.org>2014-11-10 16:12:21 +0000
commit0d4b5b86f2020986ca74c4c79d425764b563f83f (patch)
tree9c8ca24ffe36df06c483d82a49f4e61dcb15c17e /gcc/final.c
parent42fd12b1e7fc50183bcf62861aae81301a9efbcf (diff)
downloadgcc-0d4b5b86f2020986ca74c4c79d425764b563f83f.tar.gz
Add a target hook for assembling undeclared decls.
* target.def (assemble_undefined_decl): New hooks. * hooks.c (hook_void_FILEptr_constcharptr_const_tree): New function. * hooks.h (hook_void_FILEptr_constcharptr_const_tree): Declare. * doc/tm.texi.in (TARGET_ASM_ASSEMBLE_UNDEFINED_DECL): Add. * doc/tm.texi: Regenerate. * output.h (assemble_undefined_decl): Declare. (get_fnname_from_decl): Declare. * varasm.c (assemble_undefined_decl): New function. (get_fnname_from_decl): New function. * final.c (rest_of_handle_final): Use it. * varpool.c (varpool_output_variables): Call assemble_undefined_decl for nodes without a definition. From-SVN: r217293
Diffstat (limited to 'gcc/final.c')
-rw-r--r--gcc/final.c12
1 files changed, 1 insertions, 11 deletions
diff --git a/gcc/final.c b/gcc/final.c
index e958a520246..c3805c9e283 100644
--- a/gcc/final.c
+++ b/gcc/final.c
@@ -4468,17 +4468,7 @@ leaf_renumber_regs_insn (rtx in_rtx)
static unsigned int
rest_of_handle_final (void)
{
- rtx x;
- const char *fnname;
-
- /* Get the function's name, as described by its RTL. This may be
- different from the DECL_NAME name used in the source file. */
-
- x = DECL_RTL (current_function_decl);
- gcc_assert (MEM_P (x));
- x = XEXP (x, 0);
- gcc_assert (GET_CODE (x) == SYMBOL_REF);
- fnname = XSTR (x, 0);
+ const char *fnname = get_fnname_from_decl (current_function_decl);
assemble_start_function (current_function_decl, fnname);
final_start_function (get_insns (), asm_out_file, optimize);