mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-01 11:59:27 +08:00
Remove d-support.c and use gdb_demangle for demangling D symbols.
gdb/ChangeLog * Makefile.in (SFILES): Remove d-support.c. (COMMON_OBS): Remove d-support.o. * d-lang.h (d_parse_symbol): Remove declaration. * d-lang.c (d_demangle): Use gdb_demangle to demangle D symbols. * d-support.c: Remove file. gdb/testsuite/ChangeLog * gdb.dlang/demangle.exp: Update for demangling changes.
This commit is contained in:
36
gdb/d-lang.c
36
gdb/d-lang.c
@ -23,8 +23,8 @@
|
||||
#include "varobj.h"
|
||||
#include "d-lang.h"
|
||||
#include "c-lang.h"
|
||||
#include "parser-defs.h"
|
||||
#include "gdb_obstack.h"
|
||||
#include "demangle.h"
|
||||
#include "cp-support.h"
|
||||
|
||||
/* The name of the symbol to use to get the name of the main subprogram. */
|
||||
static const char D_MAIN[] = "D main";
|
||||
@ -52,37 +52,7 @@ d_main_name (void)
|
||||
char *
|
||||
d_demangle (const char *symbol, int options)
|
||||
{
|
||||
struct obstack tempbuf;
|
||||
char *result;
|
||||
|
||||
if ((symbol == NULL) || (*symbol == '\0'))
|
||||
return NULL;
|
||||
else if (strcmp (symbol, "_Dmain") == 0)
|
||||
return xstrdup ("D main");
|
||||
|
||||
obstack_init (&tempbuf);
|
||||
|
||||
if (strncmp (symbol, "_D", 2) == 0)
|
||||
symbol += 2;
|
||||
else
|
||||
{
|
||||
obstack_free (&tempbuf, NULL);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (d_parse_symbol (&tempbuf, symbol) != NULL)
|
||||
{
|
||||
obstack_grow_str0 (&tempbuf, "");
|
||||
result = xstrdup (obstack_finish (&tempbuf));
|
||||
obstack_free (&tempbuf, NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
obstack_free (&tempbuf, NULL);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return result;
|
||||
return gdb_demangle (symbol, options | DMGL_DLANG);
|
||||
}
|
||||
|
||||
/* Table mapping opcodes into strings for printing operators
|
||||
|
Reference in New Issue
Block a user