Commit 9e46e5e8 by Kaveh R. Ghazi Committed by Kaveh Ghazi

Warning fixes:

        * Makefile.in (hash.h): Add -L KR-C -F ', 0, 0' flags to gperf.
        (gxx.gperf): Update comments describing invocation flags.
        (hash.h): Regenerate using gperf 2.7.1 (19981006 egcs).

From-SVN: r22888
parent d143a890
Wed Oct 7 12:32:44 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* Makefile.in (hash.h): Add -L KR-C -F ', 0, 0' flags to gperf.
(gxx.gperf): Update comments describing invocation flags.
(hash.h): Regenerate using gperf 2.7.1 (19981006 egcs).
1998-10-07 Mark Mitchell <mark@markmitchell.com> 1998-10-07 Mark Mitchell <mark@markmitchell.com>
* class.c (finish_struct_1): Add commentary on prevous change. * class.c (finish_struct_1): Add commentary on prevous change.
......
...@@ -240,8 +240,8 @@ $(PARSE_C) : $(srcdir)/parse.y ...@@ -240,8 +240,8 @@ $(PARSE_C) : $(srcdir)/parse.y
# if gxx.gpref got touched, say. # if gxx.gpref got touched, say.
# Thus you have to remove hash.h to force it to be re-made. # Thus you have to remove hash.h to force it to be re-made.
$(srcdir)/hash.h: $(srcdir)/hash.h:
gperf -p -j1 -g -o -t -N is_reserved_word '-k1,4,7,$$' \ gperf -L KR-C -F ', 0, 0' -p -j1 -g -o -t -N is_reserved_word \
$(srcdir)/gxx.gperf >$(srcdir)/hash.h '-k1,4,7,$$' $(srcdir)/gxx.gperf >$(srcdir)/hash.h
spew.o : spew.c $(CONFIG_H) $(CXX_TREE_H) $(PARSE_H) $(srcdir)/../flags.h \ spew.o : spew.c $(CONFIG_H) $(CXX_TREE_H) $(PARSE_H) $(srcdir)/../flags.h \
lex.h $(srcdir)/../system.h $(srcdir)/../toplev.h lex.h $(srcdir)/../system.h $(srcdir)/../toplev.h
......
%{ %{
/* Command-line: gperf -p -j1 -g -o -t -N is_reserved_word -k1,4,$,7 gplus.gperf */ /* Command-line: gperf -L KR-C -F ', 0, 0' -p -j1 -g -o -t -N is_reserved_word -k1,4,$,7 gplus.gperf */
%} %}
struct resword { char *name; short token; enum rid rid;}; struct resword { char *name; short token; enum rid rid;};
%% %%
......
/* C code produced by gperf version 2.5 (GNU C++ version) */ /* KR-C code produced by gperf version 2.7.1 (19981006 egcs) */
/* Command-line: gperf -p -j1 -g -o -t -N is_reserved_word -k1,4,7,$ /home/bkoz/src.egcs/gcc/cp/gxx.gperf */ /* Command-line: gperf -L KR-C -F , 0, 0 -p -j1 -g -o -t -N is_reserved_word -k1,4,7,$ ./gxx.gperf */
/* Command-line: gperf -p -j1 -g -o -t -N is_reserved_word -k1,4,$,7 gplus.gperf */ /* Command-line: gperf -L KR-C -F ', 0, 0' -p -j1 -g -o -t -N is_reserved_word -k1,4,$,7 gplus.gperf */
struct resword { char *name; short token; enum rid rid;}; struct resword { char *name; short token; enum rid rid;};
#define TOTAL_KEYWORDS 104 #define TOTAL_KEYWORDS 104
...@@ -11,28 +11,41 @@ struct resword { char *name; short token; enum rid rid;}; ...@@ -11,28 +11,41 @@ struct resword { char *name; short token; enum rid rid;};
/* maximum key range = 258, duplicates = 0 */ /* maximum key range = 258, duplicates = 0 */
#ifdef __GNUC__ #ifdef __GNUC__
inline __inline
#endif #endif
static unsigned int static unsigned int
hash (str, len) hash (str, len)
register char *str; register char *str;
register int unsigned len; register unsigned int len;
{ {
static unsigned short asso_values[] = static unsigned short asso_values[] =
{ {
262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
262, 262, 262, 262, 262, 0, 262, 87, 25, 96, 262, 262, 262, 262, 262, 0, 262, 87, 25, 96,
60, 0, 55, 7, 4, 41, 262, 2, 15, 49, 60, 0, 55, 7, 4, 41, 262, 2, 15, 49,
14, 63, 32, 29, 3, 23, 6, 8, 2, 2, 14, 63, 32, 29, 3, 23, 6, 8, 2, 2,
0, 7, 262, 262, 262, 262, 262, 262, 0, 7, 262, 262, 262, 262, 262, 262, 262, 262,
262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
262, 262, 262, 262, 262, 262
}; };
register int hval = len; register int hval = len;
...@@ -40,22 +53,22 @@ hash (str, len) ...@@ -40,22 +53,22 @@ hash (str, len)
{ {
default: default:
case 7: case 7:
hval += asso_values[str[6]]; hval += asso_values[(unsigned char)str[6]];
case 6: case 6:
case 5: case 5:
case 4: case 4:
hval += asso_values[str[3]]; hval += asso_values[(unsigned char)str[3]];
case 3: case 3:
case 2: case 2:
case 1: case 1:
hval += asso_values[str[0]]; hval += asso_values[(unsigned char)str[0]];
break; break;
} }
return hval + asso_values[str[len - 1]]; return hval + asso_values[(unsigned char)str[len - 1]];
} }
#ifdef __GNUC__ #ifdef __GNUC__
inline __inline
#endif #endif
struct resword * struct resword *
is_reserved_word (str, len) is_reserved_word (str, len)
...@@ -64,157 +77,158 @@ is_reserved_word (str, len) ...@@ -64,157 +77,158 @@ is_reserved_word (str, len)
{ {
static struct resword wordlist[] = static struct resword wordlist[] =
{ {
{"",}, {"",}, {"",}, {"",}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0},
{"else", ELSE, NORID,}, {"else", ELSE, NORID,},
{"",}, {"", 0, 0},
{"xor", '^', NORID,}, {"xor", '^', NORID,},
{"",}, {"", 0, 0},
{"__real__", REALPART, NORID}, {"__real__", REALPART, NORID},
{"",}, {"", 0, 0},
{"true", CXX_TRUE, NORID,}, {"true", CXX_TRUE, NORID,},
{"",}, {"",}, {"",}, {"",}, {"",}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0},
{"try", TRY, NORID,}, {"try", TRY, NORID,},
{"",}, {"",}, {"", 0, 0}, {"", 0, 0},
{"new", NEW, NORID,}, {"new", NEW, NORID,},
{"extern", SCSPEC, RID_EXTERN,}, {"extern", SCSPEC, RID_EXTERN,},
{"__real", REALPART, NORID}, {"__real", REALPART, NORID},
{"while", WHILE, NORID,}, {"while", WHILE, NORID,},
{"not", '!', NORID,}, {"not", '!', NORID,},
{"",}, {"",}, {"",}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0},
{"__extension__", EXTENSION, NORID}, {"__extension__", EXTENSION, NORID},
{"",}, {"", 0, 0},
{"__null", CONSTANT, RID_NULL}, {"__null", CONSTANT, RID_NULL},
{"__asm__", ASM_KEYWORD, NORID}, {"__asm__", ASM_KEYWORD, NORID},
{"return", RETURN, NORID,}, {"return", RETURN, NORID,},
{"",}, {"", 0, 0},
{"long", TYPESPEC, RID_LONG,}, {"long", TYPESPEC, RID_LONG,},
{"using", USING, NORID,}, {"using", USING, NORID,},
{"xor_eq", ASSIGN, NORID,}, {"xor_eq", ASSIGN, NORID,},
{"__inline", SCSPEC, RID_INLINE}, {"__inline", SCSPEC, RID_INLINE},
{"short", TYPESPEC, RID_SHORT,}, {"short", TYPESPEC, RID_SHORT,},
{"__inline__", SCSPEC, RID_INLINE}, {"__inline__", SCSPEC, RID_INLINE},
{"switch", SWITCH, NORID,}, {"switch", SWITCH, NORID,},
{"__alignof__", ALIGNOF, NORID}, {"__alignof__", ALIGNOF, NORID},
{"private", VISSPEC, RID_PRIVATE,}, {"private", VISSPEC, RID_PRIVATE,},
{"reinterpret_cast", REINTERPRET_CAST, NORID,}, {"reinterpret_cast", REINTERPRET_CAST, NORID,},
{"struct", AGGR, RID_RECORD,}, {"struct", AGGR, RID_RECORD,},
{"",}, {"", 0, 0},
{"virtual", SCSPEC, RID_VIRTUAL,}, {"virtual", SCSPEC, RID_VIRTUAL,},
{"static_cast", STATIC_CAST, NORID,}, {"static_cast", STATIC_CAST, NORID,},
{"",}, {"",}, {"", 0, 0}, {"", 0, 0},
{"not_eq", EQCOMPARE, NORID,}, {"not_eq", EQCOMPARE, NORID,},
{"int", TYPESPEC, RID_INT,}, {"int", TYPESPEC, RID_INT,},
{"__signed__", TYPESPEC, RID_SIGNED}, {"__signed__", TYPESPEC, RID_SIGNED},
{"template", TEMPLATE, RID_TEMPLATE,}, {"template", TEMPLATE, RID_TEMPLATE,},
{"",}, {"", 0, 0},
{"signature", AGGR, RID_SIGNATURE /* Extension */,}, {"signature", AGGR, RID_SIGNATURE /* Extension */,},
{"register", SCSPEC, RID_REGISTER,}, {"register", SCSPEC, RID_REGISTER,},
{"this", THIS, NORID,}, {"this", THIS, NORID,},
{"__imag__", IMAGPART, NORID}, {"__imag__", IMAGPART, NORID},
{"__attribute", ATTRIBUTE, NORID}, {"__attribute", ATTRIBUTE, NORID},
{"bool", TYPESPEC, RID_BOOL,}, {"bool", TYPESPEC, RID_BOOL,},
{"__attribute__", ATTRIBUTE, NORID}, {"__attribute__", ATTRIBUTE, NORID},
{"for", FOR, NORID,}, {"for", FOR, NORID,},
{"__imag", IMAGPART, NORID}, {"__imag", IMAGPART, NORID},
{"typename", TYPENAME_KEYWORD, NORID,}, {"typename", TYPENAME_KEYWORD, NORID,},
{"",}, {"",}, {"", 0, 0}, {"", 0, 0},
{"delete", DELETE, NORID,}, {"delete", DELETE, NORID,},
{"typeof", TYPEOF, NORID,}, {"typeof", TYPEOF, NORID,},
{"or", OROR, NORID,}, {"or", OROR, NORID,},
{"",}, {"", 0, 0},
{"explicit", SCSPEC, RID_EXPLICIT,}, {"explicit", SCSPEC, RID_EXPLICIT,},
{"",}, {"", 0, 0},
{"typeid", TYPEID, NORID,}, {"typeid", TYPEID, NORID,},
{"",}, {"",}, {"", 0, 0}, {"", 0, 0},
{"export", SCSPEC, RID_EXPORT,}, {"export", SCSPEC, RID_EXPORT,},
{"throw", THROW, NORID,}, {"throw", THROW, NORID,},
{"__asm", ASM_KEYWORD, NORID}, {"__asm", ASM_KEYWORD, NORID},
{"__const__", CV_QUALIFIER, RID_CONST}, {"__const__", CV_QUALIFIER, RID_CONST},
{"__volatile", CV_QUALIFIER, RID_VOLATILE}, {"__volatile", CV_QUALIFIER, RID_VOLATILE},
{"__typeof__", TYPEOF, NORID}, {"__typeof__", TYPEOF, NORID},
{"__volatile__", CV_QUALIFIER, RID_VOLATILE}, {"__volatile__", CV_QUALIFIER, RID_VOLATILE},
{"__const", CV_QUALIFIER, RID_CONST}, {"__const", CV_QUALIFIER, RID_CONST},
{"false", CXX_FALSE, NORID,}, {"false", CXX_FALSE, NORID,},
{"sizeof", SIZEOF, NORID,}, {"sizeof", SIZEOF, NORID,},
{"",}, {"",}, {"", 0, 0}, {"", 0, 0},
{"__complex", TYPESPEC, RID_COMPLEX}, {"__complex", TYPESPEC, RID_COMPLEX},
{"inline", SCSPEC, RID_INLINE,}, {"inline", SCSPEC, RID_INLINE,},
{"__complex__", TYPESPEC, RID_COMPLEX}, {"__complex__", TYPESPEC, RID_COMPLEX},
{"union", AGGR, RID_UNION,}, {"union", AGGR, RID_UNION,},
{"double", TYPESPEC, RID_DOUBLE,}, {"double", TYPESPEC, RID_DOUBLE,},
{"",}, {"", 0, 0},
{"__alignof", ALIGNOF, NORID}, {"__alignof", ALIGNOF, NORID},
{"",}, {"",}, {"", 0, 0}, {"", 0, 0},
{"bitor", '|', NORID,}, {"bitor", '|', NORID,},
{"or_eq", ASSIGN, NORID,}, {"or_eq", ASSIGN, NORID,},
{"if", IF, NORID,}, {"if", IF, NORID,},
{"",}, {"", 0, 0},
{"case", CASE, NORID,}, {"case", CASE, NORID,},
{"",}, {"", 0, 0},
{"enum", ENUM, NORID,}, {"enum", ENUM, NORID,},
{"signed", TYPESPEC, RID_SIGNED,}, {"signed", TYPESPEC, RID_SIGNED,},
{"",}, {"", 0, 0},
{"__sigof__", SIGOF, NORID /* Extension */,}, {"__sigof__", SIGOF, NORID /* Extension */,},
{"char", TYPESPEC, RID_CHAR,}, {"char", TYPESPEC, RID_CHAR,},
{"",}, {"",}, {"", 0, 0}, {"", 0, 0},
{"__signed", TYPESPEC, RID_SIGNED}, {"__signed", TYPESPEC, RID_SIGNED},
{"namespace", NAMESPACE, NORID,}, {"namespace", NAMESPACE, NORID,},
{"__label__", LABEL, NORID}, {"__label__", LABEL, NORID},
{"volatile", CV_QUALIFIER, RID_VOLATILE,}, {"volatile", CV_QUALIFIER, RID_VOLATILE,},
{"protected", VISSPEC, RID_PROTECTED,}, {"protected", VISSPEC, RID_PROTECTED,},
{"__wchar_t", TYPESPEC, RID_WCHAR /* Unique to ANSI C++ */,}, {"__wchar_t", TYPESPEC, RID_WCHAR /* Unique to ANSI C++ */,},
{"",}, {"",}, {"", 0, 0}, {"", 0, 0},
{"unsigned", TYPESPEC, RID_UNSIGNED,}, {"unsigned", TYPESPEC, RID_UNSIGNED,},
{"continue", CONTINUE, NORID,}, {"continue", CONTINUE, NORID,},
{"break", BREAK, NORID,}, {"break", BREAK, NORID,},
{"",}, {"", 0, 0},
{"friend", SCSPEC, RID_FRIEND,}, {"friend", SCSPEC, RID_FRIEND,},
{"and_eq", ASSIGN, NORID,}, {"and_eq", ASSIGN, NORID,},
{"typedef", SCSPEC, RID_TYPEDEF,}, {"typedef", SCSPEC, RID_TYPEDEF,},
{"",}, {"", 0, 0},
{"do", DO, NORID,}, {"do", DO, NORID,},
{"void", TYPESPEC, RID_VOID,}, {"void", TYPESPEC, RID_VOID,},
{"",}, {"",}, {"",}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0},
{"const", CV_QUALIFIER, RID_CONST,}, {"const", CV_QUALIFIER, RID_CONST,},
{"static", SCSPEC, RID_STATIC,}, {"static", SCSPEC, RID_STATIC,},
{"",}, {"", 0, 0},
{"__typeof", TYPEOF, NORID}, {"__typeof", TYPEOF, NORID},
{"",}, {"",}, {"",}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0},
{"goto", GOTO, NORID,}, {"goto", GOTO, NORID,},
{"",}, {"", 0, 0},
{"asm", ASM_KEYWORD, NORID,}, {"asm", ASM_KEYWORD, NORID,},
{"operator", OPERATOR, NORID,}, {"operator", OPERATOR, NORID,},
{"__signature__", AGGR, RID_SIGNATURE /* Extension */,}, {"__signature__", AGGR, RID_SIGNATURE /* Extension */,},
{"",}, {"", 0, 0},
{"mutable", SCSPEC, RID_MUTABLE,}, {"mutable", SCSPEC, RID_MUTABLE,},
{"",}, {"",}, {"", 0, 0}, {"", 0, 0},
{"sigof", SIGOF, NORID /* Extension */,}, {"sigof", SIGOF, NORID /* Extension */,},
{"class", AGGR, RID_CLASS,}, {"class", AGGR, RID_CLASS,},
{"compl", '~', NORID,}, {"compl", '~', NORID,},
{"public", VISSPEC, RID_PUBLIC,}, {"public", VISSPEC, RID_PUBLIC,},
{"and", ANDAND, NORID,}, {"and", ANDAND, NORID,},
{"",}, {"",}, {"", 0, 0}, {"", 0, 0},
{"float", TYPESPEC, RID_FLOAT,}, {"float", TYPESPEC, RID_FLOAT,},
{"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0},
{"",}, {"",}, {"",}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0},
{"default", DEFAULT, NORID,}, {"default", DEFAULT, NORID,},
{"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0},
{"",}, {"",}, {"", 0, 0}, {"", 0, 0},
{"bitand", '&', NORID,}, {"bitand", '&', NORID,},
{"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0},
{"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0},
{"",}, {"",}, {"",}, {"",}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0},
{"catch", CATCH, NORID,}, {"catch", CATCH, NORID,},
{"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0},
{"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0},
{"auto", SCSPEC, RID_AUTO,}, {"auto", SCSPEC, RID_AUTO,},
{"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0},
{"",}, {"",}, {"",}, {"",}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0},
{"const_cast", CONST_CAST, NORID,}, {"const_cast", CONST_CAST, NORID,},
{"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0},
{"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0},
{"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0},
{"",}, {"",}, {"dynamic_cast", DYNAMIC_CAST, NORID,}, {"", 0, 0}, {"", 0, 0},
{"dynamic_cast", DYNAMIC_CAST, NORID,}
}; };
if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
...@@ -225,7 +239,7 @@ is_reserved_word (str, len) ...@@ -225,7 +239,7 @@ is_reserved_word (str, len)
{ {
register char *s = wordlist[key].name; register char *s = wordlist[key].name;
if (*s == *str && !strcmp (str + 1, s + 1)) if (*str == *s && !strcmp (str + 1, s + 1))
return &wordlist[key]; return &wordlist[key];
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment