d: Define language hook for LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE
The underlying base type for enumerals are always present in TREE_TYPE. gcc/d/ChangeLog: * d-lang.cc (d_enum_underlying_base_type): New function. (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): Set as d_enum_underlying_base_type.
This commit is contained in:
parent
d3ae0f515d
commit
0907036f45
|
@ -1719,6 +1719,16 @@ d_build_eh_runtime_type (tree type)
|
|||
return convert (ptr_type_node, build_address (decl));
|
||||
}
|
||||
|
||||
/* Implements the lang_hooks.enum_underlying_base_type routine for language D.
|
||||
Returns the underlying type of the given enumeration TYPE. */
|
||||
|
||||
static tree
|
||||
d_enum_underlying_base_type (const_tree type)
|
||||
{
|
||||
gcc_assert (TREE_CODE (type) == ENUMERAL_TYPE);
|
||||
return TREE_TYPE (type);
|
||||
}
|
||||
|
||||
/* Definitions for our language-specific hooks. */
|
||||
|
||||
#undef LANG_HOOKS_NAME
|
||||
|
@ -1744,6 +1754,7 @@ d_build_eh_runtime_type (tree type)
|
|||
#undef LANG_HOOKS_DUP_LANG_SPECIFIC_DECL
|
||||
#undef LANG_HOOKS_EH_PERSONALITY
|
||||
#undef LANG_HOOKS_EH_RUNTIME_TYPE
|
||||
#undef LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE
|
||||
#undef LANG_HOOKS_PUSHDECL
|
||||
#undef LANG_HOOKS_GETDECLS
|
||||
#undef LANG_HOOKS_GLOBAL_BINDINGS_P
|
||||
|
@ -1774,6 +1785,7 @@ d_build_eh_runtime_type (tree type)
|
|||
#define LANG_HOOKS_DUP_LANG_SPECIFIC_DECL d_dup_lang_specific_decl
|
||||
#define LANG_HOOKS_EH_PERSONALITY d_eh_personality
|
||||
#define LANG_HOOKS_EH_RUNTIME_TYPE d_build_eh_runtime_type
|
||||
#define LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE d_enum_underlying_base_type
|
||||
#define LANG_HOOKS_PUSHDECL d_pushdecl
|
||||
#define LANG_HOOKS_GETDECLS d_getdecls
|
||||
#define LANG_HOOKS_GLOBAL_BINDINGS_P d_global_bindings_p
|
||||
|
|
Loading…
Reference in New Issue