diff options
Diffstat (limited to 'gcc/langhooks.c')
-rw-r--r-- | gcc/langhooks.c | 69 |
1 files changed, 31 insertions, 38 deletions
diff --git a/gcc/langhooks.c b/gcc/langhooks.c index 9f0a236e8d3..3187f7c1675 100644 --- a/gcc/langhooks.c +++ b/gcc/langhooks.c @@ -156,38 +156,35 @@ lhd_set_decl_assembler_name (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)))) + DECL_ASSEMBLER_NAME. + Nobody should ever be asking for the DECL_ASSEMBLER_NAME of + these DECLs -- unless they're in language-dependent code, in + which case set_decl_assembler_name hook should handle things. */ + gcc_assert (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. + + Can't use just the variable's own name for a variable whose + scope is less than the whole compilation. Concatenate a + distinguishing number - we use the DECL_UID. */ + if (TREE_PUBLIC (decl) || DECL_CONTEXT (decl) == NULL_TREE) + SET_DECL_ASSEMBLER_NAME (decl, DECL_NAME (decl)); + else { - /* 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. - - Can't use just the variable's own name for a variable whose - scope is less than the whole compilation. Concatenate a - distinguishing number - we use the DECL_UID. */ - if (TREE_PUBLIC (decl) || DECL_CONTEXT (decl) == NULL_TREE) - SET_DECL_ASSEMBLER_NAME (decl, DECL_NAME (decl)); - else - { - const char *name = IDENTIFIER_POINTER (DECL_NAME (decl)); - char *label; + const char *name = IDENTIFIER_POINTER (DECL_NAME (decl)); + char *label; - ASM_FORMAT_PRIVATE_NAME (label, name, DECL_UID (decl)); - SET_DECL_ASSEMBLER_NAME (decl, get_identifier (label)); - } + ASM_FORMAT_PRIVATE_NAME (label, name, DECL_UID (decl)); + SET_DECL_ASSEMBLER_NAME (decl, get_identifier (label)); } - else - /* Nobody should ever be asking for the DECL_ASSEMBLER_NAME of - these DECLs -- unless they're in language-dependent code, in - which case set_decl_assembler_name hook should handle things. */ - abort (); } /* By default we always allow bit-field based optimizations. */ @@ -201,7 +198,7 @@ lhd_can_use_bit_fields_p (void) tree lhd_type_promotes_to (tree ARG_UNUSED (type)) { - abort (); + gcc_unreachable (); } /* Registration of machine- or os-specific builtin types. */ @@ -215,10 +212,7 @@ lhd_register_builtin_type (tree ARG_UNUSED (type), void lhd_incomplete_type_error (tree ARG_UNUSED (value), tree type) { - if (TREE_CODE (type) == ERROR_MARK) - return; - - abort (); + gcc_assert (TREE_CODE (type) == ERROR_MARK); } /* Provide a default routine for alias sets that always returns -1. This @@ -247,7 +241,7 @@ lhd_expand_expr (tree ARG_UNUSED (t), rtx ARG_UNUSED (r), int ARG_UNUSED (em), rtx * ARG_UNUSED (a)) { - abort (); + gcc_unreachable (); } /* The default language-specific function for expanding a decl. After @@ -287,7 +281,7 @@ lhd_types_compatible_p (tree x, tree y) information associated to common tree codes. If a tree node is completely handled within this function, it should set *SUBTREES to 0, so that generic handling isn't attempted. For language-specific - tree codes, generic handling would abort(), so make sure it is set + tree codes, generic handling would assert out, so make sure it is set properly. Both SUBTREES and *SUBTREES is guaranteed to be nonzero when the function is called. */ @@ -442,8 +436,7 @@ lhd_gimplify_expr (tree *expr_p ATTRIBUTE_UNUSED, tree *pre_p ATTRIBUTE_UNUSED, size_t lhd_tree_size (enum tree_code c ATTRIBUTE_UNUSED) { - abort (); - return 0; + gcc_unreachable (); } /* Return true if decl, which is a function decl, may be called by a |