summaryrefslogtreecommitdiff
path: root/gcc/lto-streamer-out.c
diff options
context:
space:
mode:
authordavek <davek@138bc75d-0d04-0410-961f-82ee72b054a4>2009-12-30 23:20:55 +0000
committerdavek <davek@138bc75d-0d04-0410-961f-82ee72b054a4>2009-12-30 23:20:55 +0000
commitb21341a395dbf7b790b1150de9705a39a9f4eebe (patch)
treefd8521d5f3456865a1dddcc8da023acb3c52f855 /gcc/lto-streamer-out.c
parent41f22863e3a7e5442e17c0c6d1d4b55eebfd6318 (diff)
downloadgcc-b21341a395dbf7b790b1150de9705a39a9f4eebe.tar.gz
PR lto/42531
* lto-streamer-out.c (produce_asm): Skip any leading asterisk when using DECL_ASSEMBLER_NAME to generate a section name. (copy_function): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@155528 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/lto-streamer-out.c')
-rw-r--r--gcc/lto-streamer-out.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/gcc/lto-streamer-out.c b/gcc/lto-streamer-out.c
index f81ff7278ef..1f9c2e05bb0 100644
--- a/gcc/lto-streamer-out.c
+++ b/gcc/lto-streamer-out.c
@@ -1784,6 +1784,8 @@ produce_asm (struct output_block *ob, tree fn)
if (section_type == LTO_section_function_body)
{
const char *name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (fn));
+ if (name[0] == '*')
+ name++;
section_name = lto_get_section_name (section_type, name);
}
else
@@ -2007,11 +2009,16 @@ copy_function (struct cgraph_node *node)
const char *data;
size_t len;
const char *name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (function));
- char *section_name =
- lto_get_section_name (LTO_section_function_body, name);
+ char *section_name;
size_t i, j;
struct lto_in_decl_state *in_state;
- struct lto_out_decl_state *out_state = lto_get_out_decl_state ();
+ struct lto_out_decl_state *out_state;
+
+ if (name[0] == '*')
+ name++;
+ section_name =
+ lto_get_section_name (LTO_section_function_body, name);
+ out_state = lto_get_out_decl_state ();
lto_begin_section (section_name, !flag_wpa);
free (section_name);