X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=libiberty%2Fcplus-dem.c;h=c68b9813de25c6ee39e5288bf74649a1d2de3965;hb=44a8b4df1d6f5b8096f01787751fd51c42e78fc6;hp=2dd0a8a5c8451e22852f91afdc221579e91b780e;hpb=0aaa9a3aa1e68d309a4746633494b9a01a0575f5;p=deliverable%2Fbinutils-gdb.git diff --git a/libiberty/cplus-dem.c b/libiberty/cplus-dem.c index 2dd0a8a5c8..c68b9813de 100644 --- a/libiberty/cplus-dem.c +++ b/libiberty/cplus-dem.c @@ -305,6 +305,12 @@ const struct demangler_engine libiberty_demanglers[] = "GNAT style demangling" } , + { + 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); @@ -3663,7 +3676,10 @@ do_type (struct work_stuff *work, const char **mangled, string *result) string_delete (&temp); } else - break; + { + string_delete (&temp); + break; + } } else if (**mangled == 'Q') {