mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-19 08:46:21 +08:00
cpplex.c (_cpp_scan_until): Clear AUX field of tokens.
* cpplex.c (_cpp_scan_until): Clear AUX field of tokens. * cpplib.c (do_unassert): Put the list to compare against on the stack. From-SVN: r34025
This commit is contained in:
parent
ec5bb3cfb0
commit
a58f64f5c2
@ -1,3 +1,9 @@
|
||||
2000-05-19 Zack Weinberg <zack@wolery.cumb.org>
|
||||
|
||||
* cpplex.c (_cpp_scan_until): Clear AUX field of tokens.
|
||||
* cpplib.c (do_unassert): Put the list to compare against on
|
||||
the stack.
|
||||
|
||||
2000-05-19 Bruce Korb <bkorb@gnu.org>
|
||||
|
||||
* fixinc/README: cleaned up old documentation
|
||||
|
@ -790,6 +790,7 @@ _cpp_scan_until (pfile, list, stop)
|
||||
list->tokens_used++;
|
||||
TOK_TYPE (list, i) = type;
|
||||
TOK_COL (list, i) = col;
|
||||
TOK_AUX (list, i) = 0;
|
||||
TOK_FLAGS (list, i) = space_before ? PREV_WHITESPACE : 0;
|
||||
|
||||
TOK_LEN (list, i) = len;
|
||||
|
20
gcc/cpplib.c
20
gcc/cpplib.c
@ -1607,8 +1607,9 @@ do_unassert (pfile)
|
||||
U_CHAR *sym;
|
||||
size_t len;
|
||||
HASHNODE *hp;
|
||||
struct predicate *pred = 0;
|
||||
cpp_toklist ans;
|
||||
enum cpp_ttype type;
|
||||
int specific = 0;
|
||||
|
||||
old_written = CPP_WRITTEN (pfile);
|
||||
pfile->no_macro_expand++;
|
||||
@ -1624,10 +1625,10 @@ do_unassert (pfile)
|
||||
type = _cpp_get_directive_token (pfile);
|
||||
if (type == CPP_OPEN_PAREN)
|
||||
{
|
||||
pred = (struct predicate *) xmalloc (sizeof (struct predicate));
|
||||
_cpp_init_toklist (&pred->answer);
|
||||
specific = 1;
|
||||
_cpp_init_toklist (&ans);
|
||||
|
||||
if (_cpp_scan_until (pfile, &pred->answer, CPP_CLOSE_PAREN)
|
||||
if (_cpp_scan_until (pfile, &ans, CPP_CLOSE_PAREN)
|
||||
!= CPP_CLOSE_PAREN)
|
||||
ERROR ("missing close paren in #unassert");
|
||||
|
||||
@ -1645,13 +1646,13 @@ do_unassert (pfile)
|
||||
goto error to clean up. */
|
||||
goto error;
|
||||
|
||||
if (pred)
|
||||
if (specific)
|
||||
{
|
||||
/* Find this specific answer and remove it. */
|
||||
struct predicate *o, *p;
|
||||
|
||||
for (p = NULL, o = hp->value.pred; o; p = o, o = o->next)
|
||||
if (_cpp_equiv_toklists (&pred->answer, &o->answer))
|
||||
if (_cpp_equiv_toklists (&ans, &o->answer))
|
||||
{
|
||||
if (p)
|
||||
p->next = o->next;
|
||||
@ -1682,11 +1683,8 @@ do_unassert (pfile)
|
||||
_cpp_skip_rest_of_line (pfile);
|
||||
pfile->no_macro_expand--;
|
||||
CPP_SET_WRITTEN (pfile, old_written);
|
||||
if (pred)
|
||||
{
|
||||
_cpp_free_toklist (&pred->answer);
|
||||
free (pred);
|
||||
}
|
||||
if (specific)
|
||||
_cpp_free_toklist (&ans);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user