summaryrefslogtreecommitdiffstats
path: root/libiberty/cplus-dem.c
diff options
context:
space:
mode:
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1999-05-13 00:24:18 +0000
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1999-05-13 00:24:18 +0000
commit2fb1c6e97ea7597dc0145ed43b4d5451c5835b15 (patch)
treef7badf0b74edb87b0d3fb6ac90a25d677e0ca8b8 /libiberty/cplus-dem.c
parent441c368ea4b1f5f585064d5380b78471a064af48 (diff)
downloadppe42-gcc-2fb1c6e97ea7597dc0145ed43b4d5451c5835b15.tar.gz
ppe42-gcc-2fb1c6e97ea7597dc0145ed43b4d5451c5835b15.zip
* cplus-dem.c (standard_symbol_characters): Renamed from
standard_symbol_alphabet. No longer modify TABLE. (hp_symbol_characters): Renamed from hp_symbol_alphabet. No longer modify TABLE. (main): Corresponding changes. Use strchr to determine if a character is valid. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@26912 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libiberty/cplus-dem.c')
-rw-r--r--libiberty/cplus-dem.c41
1 files changed, 15 insertions, 26 deletions
diff --git a/libiberty/cplus-dem.c b/libiberty/cplus-dem.c
index d94d0493ed3..706d929cca7 100644
--- a/libiberty/cplus-dem.c
+++ b/libiberty/cplus-dem.c
@@ -4394,25 +4394,19 @@ fancy_abort ()
}
-/* Fill in TABLE so that TABLE[C] is true iff C (as an unsigned char)
- is a valid symbol component, in the standard assembler symbol
+/* Return the string of non-alnum characters that may occur
+ as a valid symbol component, in the standard assembler symbol
syntax. */
-void
-standard_symbol_alphabet (char *table)
-{
- int c;
- for (c = 0; c < 256; c++)
- table[c] = isalnum(c);
-
- table['_'] = 1;
- table['$'] = 1;
- table['.'] = 1;
+static const char *
+standard_symbol_characters ()
+{
+ return "_$.";
}
-/* Fill in TABLE so that TABLE[C] is true iff C (as an unsigned char)
- is a valid symbol name component in an HP object file.
+/* Return the string of non-alnum characters that may occur
+ as a valid symbol name component in an HP object file.
Note that, since HP's compiler generates object code straight from
C++ source, without going through an assembler, its mangled
@@ -4441,15 +4435,10 @@ standard_symbol_alphabet (char *table)
non-digit character.
So have fun. */
-void
-hp_symbol_alphabet (char *table)
+static const char *
+hp_symbol_characters ()
{
- char *c;
-
- standard_symbol_alphabet (table);
-
- for (c = "<>#,*&[]:(){}"; *c; c++)
- table[(unsigned char) *c] = 1;
+ return "_$.<>#,*&[]:(){}";
}
@@ -4460,7 +4449,7 @@ main (argc, argv)
{
char *result;
int c;
- char symbol_alphabet[256];
+ char *valid_symbols;
program_name = argv[0];
@@ -4533,10 +4522,10 @@ main (argc, argv)
case lucid_demangling:
case arm_demangling:
case edg_demangling:
- standard_symbol_alphabet (symbol_alphabet);
+ valid_symbols = standard_symbol_characters ();
break;
case hp_demangling:
- hp_symbol_alphabet (symbol_alphabet);
+ valid_symbols = hp_symbol_characters ();
break;
default:
/* Folks should explicitly indicate the appropriate alphabet for
@@ -4550,7 +4539,7 @@ main (argc, argv)
int i = 0;
c = getchar ();
/* Try to read a label. */
- while (c != EOF && symbol_alphabet[c])
+ while (c != EOF && (isalnum (c) || strchr (valid_symbols, c)))
{
if (i >= MBUF_SIZE-1)
break;
OpenPOWER on IntegriCloud