diff options
author | Dave Korn <dave.korn.cygwin@gmail.com> | 2010-12-10 14:28:58 +0000 |
---|---|---|
committer | Dave Korn <dave.korn.cygwin@gmail.com> | 2010-12-10 14:28:58 +0000 |
commit | 3e8a567606658f709417b224d8bae630b77754da (patch) | |
tree | cb0845f24d59969509e47111a1b3af34cd9b8773 /gcc/targhooks.c | |
parent | 90dd2c5d3b2b0b5e3f2135e9f44dca706589a200 (diff) |
gcc/ChangeLog:
PR middle-end/46674
PR lto/43157
* target.def (mangle_assembler_name): New target asm_out hook.
* targhooks.c (default_mangle_assembler_name): Add default hook
implementation.
* targhooks.h (default_mangle_assembler_name): Add prototype.
* lto-symtab.c (lto_symtab_register_decl): Use new hook when
processing DECL_ASSEMBLER_NAMEs for lto symtabs.
(lto_symtab_get_resolution): Likewise.
(lto_cgraph_replace_node): Likewise.
(lto_symtab_prevailing_decl): Likewise.
* lto-streamer-out.c (write_symbol): Likewise.
* doc/tm.texi.in (TARGET_MANGLE_ASSEMBLER_NAME): Add @hook directive.
* doc/tm.texi: Regenerate.
* config/i386/cygming.h (TARGET_MANGLE_ASSEMBLER_NAME): Define to
point at i386_pe_mangle_assembler_name.
* config/i386/winnt.c (i386_pe_mangle_assembler_name): New function.
* config/i386/i386-protos.h (i386_pe_mangle_assembler_name): Add
prototype.
lto-plugin/ChangeLog:
PR middle-end/46674
PR lto/43157
* configure.ac (SYM_STYLE): Don't AC_DEFINE.
* lto-plugin.c (sym_style): Don't use it; default to ss_none.
* configure: Regenerate.
* config.h.in: Likewise.
gcc/testsuite/ChangeLog:
PR middle-end/46674
PR lto/43157
* gcc.dg/pr43157.c: New file.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@167688 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/targhooks.c')
-rw-r--r-- | gcc/targhooks.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/targhooks.c b/gcc/targhooks.c index 0eee5288b6c..30a58911d2e 100644 --- a/gcc/targhooks.c +++ b/gcc/targhooks.c @@ -358,6 +358,17 @@ default_print_operand_punct_valid_p (unsigned char code ATTRIBUTE_UNUSED) #endif } +/* The default implementation of TARGET_MANGLE_ASSEMBLER_NAME. */ +tree +default_mangle_assembler_name (const char *name ATTRIBUTE_UNUSED) +{ + const char *skipped = name + (*name == '*' ? 1 : 0); + const char *stripped = targetm.strip_name_encoding (skipped); + if (*name != '*' && user_label_prefix[0]) + stripped = ACONCAT ((user_label_prefix, stripped, NULL)); + return get_identifier (stripped); +} + /* The default implementation of TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA. */ bool |