aboutsummaryrefslogtreecommitdiff
path: root/gdb/cplus-dem.c
diff options
context:
space:
mode:
authorJim Kingdon <jkingdon@engr.sgi.com>1991-04-19 23:50:06 +0000
committerJim Kingdon <jkingdon@engr.sgi.com>1991-04-19 23:50:06 +0000
commitf88e7af8313dbf9c7c8f4781c2b1ac064c56ac2e (patch)
treea011a4c1449c9479f2f5f452407a86b11ef25d3e /gdb/cplus-dem.c
parent9ba8a5a46bc4cf3d18cdfc940895c1fabe18ede2 (diff)
downloadgdb-f88e7af8313dbf9c7c8f4781c2b1ac064c56ac2e.zip
gdb-f88e7af8313dbf9c7c8f4781c2b1ac064c56ac2e.tar.gz
gdb-f88e7af8313dbf9c7c8f4781c2b1ac064c56ac2e.tar.bz2
* utils.c: Use CPLUS_MARKER not '$'.
* cplus-dem.c: Use CPLUS_MARKER not '$'. If CPLUS_MARKER isn't defined, define it to '$'.
Diffstat (limited to 'gdb/cplus-dem.c')
-rw-r--r--gdb/cplus-dem.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/gdb/cplus-dem.c b/gdb/cplus-dem.c
index 48109d8..3689b23 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 <stdio.h>
#include <ctype.h>
@@ -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 */