From f0057424da31008bc4e1f97802160db6ff5a5e34 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Mon, 21 Jun 2010 18:29:51 +0200 Subject: [PATCH] dwarf2.h (enum dwarf_type): Add DW_ATE_UTF. * dwarf2.h (enum dwarf_type): Add DW_ATE_UTF. * dwarf2out.c (base_type_die): Use DW_ATE_UTF for C++ char16_t and char32_t. From-SVN: r161095 --- gcc/ChangeLog | 3 +++ gcc/dwarf2out.c | 14 ++++++++++++++ include/ChangeLog | 4 ++++ include/dwarf2.h | 2 ++ 4 files changed, 23 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 95491cc..ba9f4b8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,8 @@ 2010-06-21 Jakub Jelinek + * dwarf2out.c (base_type_die): Use DW_ATE_UTF for + C++ char16_t and char32_t. + * Makefile.in (build/genattrtab.o): Depend on vecprim.h. * genattrtab.c: Include vecprim.h. (cached_attrs, cached_attr_count, attrs_seen_once, diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index b1f05d9..7a7eb22 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -12377,6 +12377,20 @@ base_type_die (tree type) switch (TREE_CODE (type)) { case INTEGER_TYPE: + if ((dwarf_version >= 4 || !dwarf_strict) + && TYPE_NAME (type) + && TREE_CODE (TYPE_NAME (type)) == TYPE_DECL + && DECL_IS_BUILTIN (TYPE_NAME (type)) + && DECL_NAME (TYPE_NAME (type))) + { + const char *name = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type))); + if (strcmp (name, "char16_t") == 0 + || strcmp (name, "char32_t") == 0) + { + encoding = DW_ATE_UTF; + break; + } + } if (TYPE_STRING_FLAG (type)) { if (TYPE_UNSIGNED (type)) diff --git a/include/ChangeLog b/include/ChangeLog index 6b8053f..cf5a944 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,7 @@ +2010-06-21 Jakub Jelinek + + * dwarf2.h (enum dwarf_type): Add DW_ATE_UTF. + 2010-06-18 Rafael Espindola * plugin.h (ld_plugin_add_input_file, ld_plugin_add_input_library): diff --git a/include/dwarf2.h b/include/dwarf2.h index 85e7991..03c2581 100644 --- a/include/dwarf2.h +++ b/include/dwarf2.h @@ -654,6 +654,8 @@ enum dwarf_type DW_ATE_signed_fixed = 0xd, DW_ATE_unsigned_fixed = 0xe, DW_ATE_decimal_float = 0xf, + /* DWARF 4. */ + DW_ATE_UTF = 0x10, DW_ATE_lo_user = 0x80, DW_ATE_hi_user = 0xff, -- 2.7.4