summaryrefslogtreecommitdiff
path: root/libiberty/cplus-dem.c
diff options
context:
space:
mode:
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>2014-09-23 18:36:14 +0000
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>2014-09-23 18:36:14 +0000
commit23c22e011dfc2d85c94b55d43f6334f723fad09d (patch)
tree2fadd5830c2d708e5dd314b70206728b68cc62de /libiberty/cplus-dem.c
parent7fb36be3441dec900fc151139fcf7d84b8caff9d (diff)
downloadgcc-23c22e011dfc2d85c94b55d43f6334f723fad09d.tar.gz
include/:
* demangle.h (DMGL_DLANG): New macro. (DMGL_STYLE_MASK): Add DMGL_DLANG. (demangling_styles): Add dlang_demangling. (DLANG_DEMANGLING_STYLE_STRING): New macro. (DLANG_DEMANGLING): New macro. (dlang_demangle): New prototype. libiberty/: * Makefile.in (CFILES): Add d-demangle.c. (REQUIRED_OFILES): Add d-demangle.o. * cplus-dem.c (libiberty_demanglers): Add dlang_demangling case. (cplus_demangle): Likewise. * d-demangle.c: New file. * testsuite/Makefile.in (really-check): Add check-d-demangle. * testsuite/d-demangle-expected: New file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215530 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libiberty/cplus-dem.c')
-rw-r--r--libiberty/cplus-dem.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/libiberty/cplus-dem.c b/libiberty/cplus-dem.c
index 52767cc8fde..c68b9813de2 100644
--- a/libiberty/cplus-dem.c
+++ b/libiberty/cplus-dem.c
@@ -306,6 +306,12 @@ const struct demangler_engine libiberty_demanglers[] =
}
,
{
+ DLANG_DEMANGLING_STYLE_STRING,
+ dlang_demangling,
+ "DLANG style demangling"
+ }
+ ,
+ {
NULL, unknown_demangling, NULL
}
};
@@ -870,6 +876,13 @@ cplus_demangle (const char *mangled, int options)
if (GNAT_DEMANGLING)
return ada_demangle (mangled, options);
+ if (DLANG_DEMANGLING)
+ {
+ ret = dlang_demangle (mangled, options);
+ if (ret)
+ return ret;
+ }
+
ret = internal_cplus_demangle (work, mangled);
squangle_mop_up (work);
return (ret);