diff options
author | Zack Weinberg <zackw@stanford.edu> | 2001-03-02 00:40:00 +0000 |
---|---|---|
committer | Zack Weinberg <zack@gcc.gnu.org> | 2001-03-02 00:40:00 +0000 |
commit | 71b7be38c3f1d50ca004b3aa1c21e206d595c67f (patch) | |
tree | b9429823f84096cf8932b11e6e31c6dd708dab5d /gcc/stringpool.c | |
parent | 5aa709ad7e1cb28ae54dea521a5ca6cbf1fe6016 (diff) | |
download | gcc-71b7be38c3f1d50ca004b3aa1c21e206d595c67f.zip gcc-71b7be38c3f1d50ca004b3aa1c21e206d595c67f.tar.gz gcc-71b7be38c3f1d50ca004b3aa1c21e206d595c67f.tar.bz2 |
stringpool.c (set_identifier): New function.
* stringpool.c (set_identifier): New function.
* tree.h: Prototype it.
* c-parse.in: Kill D_YES. If compiled for objc, call
save_and_forget_protocol_qualifiers from init_reswords.
* objc/objc-act.c (remember_protocol_qualifiers,
forget_protocol_qualifiers): Don't diddle C_IS_RESERVED_WORD.
Swap out the non-keyword IDENTIFIER_NODEs for keyword ones, or
vice versa.
(save_and_forget_protocol_qualifiers): New function.
* c-lex.h: Prototype save_and_forget_protocol_qualifiers.
From-SVN: r40170
Diffstat (limited to 'gcc/stringpool.c')
-rw-r--r-- | gcc/stringpool.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/gcc/stringpool.c b/gcc/stringpool.c index ceb454d..f5e8968 100644 --- a/gcc/stringpool.c +++ b/gcc/stringpool.c @@ -340,6 +340,25 @@ maybe_get_identifier (text) return NULL_TREE; } +/* Look up an identifier with the name TEXT, replace its identifier + node with NODE, and return the old identifier node. This is used + by languages which need to enable and disable keywords based on + context; e.g. see remember_protocol_qualifiers in objc/objc-act.c. */ +tree +set_identifier (text, node) + const char *text; + tree node; +{ + struct str_header *str; + tree old; + size_t length = strlen (text); + + str = alloc_string (text, length, INSERT); + old = str->data; /* might be null */ + str->data = node; + return old; +} + /* Report some basic statistics about the string pool. */ void |