From f88e7af8313dbf9c7c8f4781c2b1ac064c56ac2e Mon Sep 17 00:00:00 2001 From: Jim Kingdon Date: Fri, 19 Apr 1991 23:50:06 +0000 Subject: [PATCH] * utils.c: Use CPLUS_MARKER not '$'. * cplus-dem.c: Use CPLUS_MARKER not '$'. If CPLUS_MARKER isn't defined, define it to '$'. --- gdb/ChangeLog | 5 +++++ gdb/cplus-dem.c | 15 +++++++++++---- gdb/utils.c | 3 ++- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 268a8392bb..3df074d8f9 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,10 @@ Fri Apr 19 09:36:50 1991 Jim Kingdon (kingdon at cygint.cygnus.com) + * utils.c: Use CPLUS_MARKER not '$'. + + * cplus-dem.c: Use CPLUS_MARKER not '$'. If CPLUS_MARKER isn't + defined, define it to '$'. + * arm-opcode.h: New file (same contents as before; it had just been left out of the distribution for a long time). diff --git a/gdb/cplus-dem.c b/gdb/cplus-dem.c index 48109d8fa0..3689b23798 100644 --- a/gdb/cplus-dem.c +++ b/gdb/cplus-dem.c @@ -52,6 +52,13 @@ /* define this if names don't start with _ */ /* #define nounderscore 1 */ +/* This is '$' on systems where the assembler can deal with that. + Where the assembler can't, it's '.' (but on many systems '.' is + used for other things). */ +#if !defined (CPLUS_MARKER) +#define CPLUS_MARKER '$' +#endif + #include #include @@ -212,7 +219,7 @@ cplus_demangle (type, arg_mode) if (*p == '\0') { /* destructor */ - if (type[0] == '_' && type[1] == '$' && type[2] == '_') + if (type[0] == '_' && type[1] == CPLUS_MARKER && type[2] == '_') { int n = (strlen (type) - 3)*2 + 3 + 2 + 1; char *tem = (char *) xmalloc (n); @@ -223,7 +230,7 @@ cplus_demangle (type, arg_mode) return tem; } /* static data member */ - if (*type != '_' && (p = strchr (type, '$')) != NULL) + if (*type != '_' && (p = strchr (type, CPLUS_MARKER)) != NULL) { int n = strlen (type) + 2; char *tem = (char *) xmalloc (n); @@ -233,7 +240,7 @@ cplus_demangle (type, arg_mode) return tem; } /* virtual table "_vt$" */ - if (type[0] == '_' && type[1] == 'v' && type[2] == 't' && type[3] == '$') + if (type[0] == '_' && type[1] == 'v' && type[2] == 't' && type[3] == CPLUS_MARKER) { int n = strlen (type + 4) + 14 + 1; char *tem = (char *) xmalloc (n); @@ -810,7 +817,7 @@ munge_function_name (name, arg_mode) int arg_mode; { if (!string_empty (name) && name->p - name->b >= 3 - && name->b[0] == 'o' && name->b[1] == 'p' && name->b[2] == '$') + && name->b[0] == 'o' && name->b[1] == 'p' && name->b[2] == CPLUS_MARKER) { int i; /* see if it's an assignment expression */ diff --git a/gdb/utils.c b/gdb/utils.c index b3af85d9a4..cb1eb9cce8 100644 --- a/gdb/utils.c +++ b/gdb/utils.c @@ -894,7 +894,8 @@ fputs_demangled (linebuffer, stream, arg_mode) #endif #define SYMBOL_MAX 1024 -#define SYMBOL_CHAR(c) (isascii(c) && (isalnum(c) || (c) == '_' || (c) == '$')) +#define SYMBOL_CHAR(c) (isascii(c) \ + && (isalnum(c) || (c) == '_' || (c) == CPLUS_MARKER)) char buf[SYMBOL_MAX+1]; # define SLOP 5 /* How much room to leave in buf */ -- 2.34.1