diff options
Diffstat (limited to 'gcc/tree.c')
-rw-r--r-- | gcc/tree.c | 49 |
1 files changed, 12 insertions, 37 deletions
@@ -133,43 +133,9 @@ static int type_hash_marked_p PARAMS ((const void *)); static void type_hash_mark PARAMS ((const void *)); static int mark_tree_hashtable_entry PARAMS((void **, void *)); -/* Set the DECL_ASSEMBLER_NAME for a node. If it is the sort of thing - that the assembler should talk about, set DECL_ASSEMBLER_NAME to an - appropriate IDENTIFIER_NODE. Otherwise, set it to the - ERROR_MARK_NODE to ensure that the assembler does not talk about - it. */ -void (*lang_set_decl_assembler_name) PARAMS ((tree)); - tree global_trees[TI_MAX]; tree integer_types[itk_none]; -/* Set the DECL_ASSEMBLER_NAME for DECL. */ -void -set_decl_assembler_name (decl) - tree decl; -{ - /* The language-independent code should never use the - DECL_ASSEMBLER_NAME for lots of DECLs. Only FUNCTION_DECLs and - VAR_DECLs for variables with static storage duration need a real - DECL_ASSEMBLER_NAME. */ - if (TREE_CODE (decl) == FUNCTION_DECL - || (TREE_CODE (decl) == VAR_DECL - && (TREE_STATIC (decl) - || DECL_EXTERNAL (decl) - || TREE_PUBLIC (decl)))) - /* By default, assume the name to use in assembly code is the - same as that used in the source language. (That's correct - for C, and GCC used to set DECL_ASSEMBLER_NAME to the same - value as DECL_NAME in build_decl, so this choice provides - backwards compatibility with existing front-ends. */ - SET_DECL_ASSEMBLER_NAME (decl, DECL_NAME (decl)); - else - /* Nobody should ever be asking for the DECL_ASSEMBLER_NAME of - these DECLs -- unless they're in language-dependent code, in - which case lang_set_decl_assembler_name should handle things. */ - abort (); -} - /* Init the principal obstacks. */ void @@ -184,9 +150,6 @@ init_obstacks () type_hash_mark); ggc_add_tree_root (global_trees, TI_MAX); ggc_add_tree_root (integer_types, itk_none); - - /* Set lang_set_decl_set_assembler_name to a default value. */ - lang_set_decl_assembler_name = set_decl_assembler_name; } @@ -214,6 +177,18 @@ perm_calloc (nelem, size) return rval; } +/* The name of the object as the assembler will see it (but before any + translations made by ASM_OUTPUT_LABELREF). Often this is the same + as DECL_NAME. It is an IDENTIFIER_NODE. */ +tree +decl_assembler_name (decl) + tree decl; +{ + if (!DECL_ASSEMBLER_NAME_SET_P (decl)) + (*lang_hooks.set_decl_assembler_name) (decl); + return DECL_CHECK (decl)->decl.assembler_name; +} + /* Compute the number of bytes occupied by 'node'. This routine only looks at TREE_CODE and, if the code is TREE_VEC, TREE_VEC_LENGTH. */ size_t |