diff options
author | Mark Wielaard <mjw@redhat.com> | 2014-05-21 15:44:59 +0000 |
---|---|---|
committer | Mark Wielaard <mark@gcc.gnu.org> | 2014-05-21 15:44:59 +0000 |
commit | 7315daa68164ae36b4f50df35aab44ccdcb52f10 (patch) | |
tree | d20dfd76b6bd33f6d7a2c6e5a1ca0f62dcebe91a /libcpp/files.c | |
parent | ab65e21ab28c2e9a9955d3b7ede92cf2ffbb2a1c (diff) | |
download | gcc-7315daa68164ae36b4f50df35aab44ccdcb52f10.zip gcc-7315daa68164ae36b4f50df35aab44ccdcb52f10.tar.gz gcc-7315daa68164ae36b4f50df35aab44ccdcb52f10.tar.bz2 |
PR debug/16063. Add DW_AT_type to DW_TAG_enumeration.
Add a new lang-hook that provides the underlying base type of an
ENUMERAL_TYPE. The default implementation will just use type_for_size.
The implementation for C++ will use the ENUM_UNDERLYING_TYPE if it exists.
Use this enum_underlying_base_type lang-hook in dwarf2out.c to add a
DW_AT_type base type reference to a DW_TAG_enumeration.
gcc/
* dwarf2out.c (gen_enumeration_type_die): Add DW_AT_type if DWARF
version >= 3 or not strict DWARF.
* langhooks.h (struct lang_hooks_for_types): Add
enum_underlying_base_type.
* langhooks.c (lhd_enum_underlying_base_type): New function.
* gcc/langhooks.h (struct lang_hooks_for_types): Add
enum_underlying_base_type.
* langhooks-def.h (lhd_enum_underlying_base_type): New declaration.
(LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): New define.
(LANG_HOOKS_FOR_TYPES_INITIALIZER): Add new lang hook.
gcc/cp/
* cp-lang.c (cxx_enum_underlying_base_type): New function.
(LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): Define.
From-SVN: r210717
Diffstat (limited to 'libcpp/files.c')
0 files changed, 0 insertions, 0 deletions