diff options
author | Bernd Schmidt <bernds@codesourcery.com> | 2014-11-10 16:12:21 +0000 |
---|---|---|
committer | Bernd Schmidt <bernds@gcc.gnu.org> | 2014-11-10 16:12:21 +0000 |
commit | 0d4b5b86f2020986ca74c4c79d425764b563f83f (patch) | |
tree | 9c8ca24ffe36df06c483d82a49f4e61dcb15c17e /gcc/final.c | |
parent | 42fd12b1e7fc50183bcf62861aae81301a9efbcf (diff) | |
download | gcc-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.c | 12 |
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); |