diff options
author | danglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-02-27 04:22:06 +0000 |
---|---|---|
committer | danglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-02-27 04:22:06 +0000 |
commit | 02604695328a2359b85f71de5a07c28130932621 (patch) | |
tree | cc617f29a3ce79128e6bfcdfba8ab7ff0bb3d12d /gcc/config/pa/pa64-hpux.h | |
parent | fa94fe2c1ae7e1dac0d6f4e92bb05ed6e34ceb46 (diff) | |
download | gcc-02604695328a2359b85f71de5a07c28130932621.tar.gz |
* pa/elf.h, pa/som.h (ASM_OUTPUT_EXTERNAL): Use assemble_name_raw
instead of trying to save and restore TREE_SYMBOL_REFERENCED.
* pa/pa64-hpux.h (ASM_OUTPUT_TYPE_DIRECTIVE): Define.
(ASM_OUTPUT_EXTERNAL): Don't save and restore TREE_SYMBOL_REFERENCED.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@95605 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/pa/pa64-hpux.h')
-rw-r--r-- | gcc/config/pa/pa64-hpux.h | 29 |
1 files changed, 20 insertions, 9 deletions
diff --git a/gcc/config/pa/pa64-hpux.h b/gcc/config/pa/pa64-hpux.h index 75573ed6cba..5de502d49c1 100644 --- a/gcc/config/pa/pa64-hpux.h +++ b/gcc/config/pa/pa64-hpux.h @@ -174,6 +174,20 @@ Boston, MA 02111-1307, USA. */ /* This is how we globalize a label. */ #define GLOBAL_ASM_OP "\t.globl\t" +/* Hacked version from defaults.h that uses assemble_name_raw + instead of assemble_name. A symbol in a type directive that + isn't otherwise referenced doesn't cause the symbol to be + placed in the symbol table of the assembled object. */ +#undef ASM_OUTPUT_TYPE_DIRECTIVE +#define ASM_OUTPUT_TYPE_DIRECTIVE(STREAM, NAME, TYPE) \ +do { \ + fputs (TYPE_ASM_OP, STREAM); \ + assemble_name_raw (STREAM, NAME); \ + fputs (", ", STREAM); \ + fprintf (STREAM, TYPE_OPERAND_FMT, TYPE); \ + putc ('\n', STREAM); \ +} while (0) + /* Hacked version from elfos.h that doesn't output a label. */ #undef ASM_DECLARE_FUNCTION_NAME #define ASM_DECLARE_FUNCTION_NAME(FILE, NAME, DECL) \ @@ -186,15 +200,12 @@ do { \ dynamic loader to work correctly. This is equivalent to the HP assembler's .IMPORT directive but relates more directly to ELF object file types. */ -#define ASM_OUTPUT_EXTERNAL(FILE, DECL, NAME) \ -do { \ - int save_referenced; \ - save_referenced = TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (DECL));\ - if (FUNCTION_NAME_P (NAME)) \ - ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "function"); \ - else \ - ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "object"); \ - TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (DECL)) = save_referenced;\ +#define ASM_OUTPUT_EXTERNAL(FILE, DECL, NAME) \ +do { \ + if (FUNCTION_NAME_P (NAME)) \ + ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "function"); \ + else \ + ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "object"); \ } while (0) /* We need set the type for external libcalls. Also note that not all |