|
From: <sv...@va...> - 2010-10-18 14:58:10
|
Author: tom
Date: 2010-10-18 15:57:58 +0100 (Mon, 18 Oct 2010)
New Revision: 11450
Log:
Add support for DW_ATE_UTF from DWARF4 which is needed for char16_t
support in C++0X.
Patch from Christian Borntraeger on bug #254550.
Modified:
trunk/coregrind/m_debuginfo/priv_d3basics.h
trunk/coregrind/m_debuginfo/readdwarf3.c
Modified: trunk/coregrind/m_debuginfo/priv_d3basics.h
===================================================================
--- trunk/coregrind/m_debuginfo/priv_d3basics.h 2010-10-18 13:04:13 UTC (rev 11449)
+++ trunk/coregrind/m_debuginfo/priv_d3basics.h 2010-10-18 14:57:58 UTC (rev 11450)
@@ -372,6 +372,8 @@
DW_ATE_signed_fixed = 0xd,
DW_ATE_unsigned_fixed = 0xe,
DW_ATE_decimal_float = 0xf,
+ /* DWARF 4. */
+ DW_ATE_UTF = 0x10,
/* HP extensions. */
DW_ATE_HP_float80 = 0x80, /* Floating-point (80 bit). */
DW_ATE_HP_complex_float80 = 0x81, /* Complex floating-point (80 bit). */
Modified: trunk/coregrind/m_debuginfo/readdwarf3.c
===================================================================
--- trunk/coregrind/m_debuginfo/readdwarf3.c 2010-10-18 13:04:13 UTC (rev 11449)
+++ trunk/coregrind/m_debuginfo/readdwarf3.c 2010-10-18 14:57:58 UTC (rev 11450)
@@ -2149,6 +2149,7 @@
if (attr == DW_AT_encoding && ctsSzB > 0) {
switch (cts) {
case DW_ATE_unsigned: case DW_ATE_unsigned_char:
+ case DW_ATE_UTF: /* since DWARF4, e.g. char16_t from C++ */
case DW_ATE_boolean:/* FIXME - is this correct? */
typeE.Te.TyBase.enc = 'U'; break;
case DW_ATE_signed: case DW_ATE_signed_char:
|