aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2010-06-21 18:29:51 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2010-06-21 18:29:51 +0200
commitf0057424da31008bc4e1f97802160db6ff5a5e34 (patch)
treecc820f508c3e77bd486eae7090bdd9a97c671d69 /gcc
parent2e1e8c5d7a0816021f450fc158441452993e9477 (diff)
downloadgcc-f0057424da31008bc4e1f97802160db6ff5a5e34.zip
gcc-f0057424da31008bc4e1f97802160db6ff5a5e34.tar.gz
gcc-f0057424da31008bc4e1f97802160db6ff5a5e34.tar.bz2
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/dwarf2out.c14
2 files changed, 17 insertions, 0 deletions
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 <jakub@redhat.com>
+ * 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))