traditional.c (lex_identifier): Use CPP_HASHNODE.
* traditional.c (lex_identifier): Use CPP_HASHNODE. * lex.c (lex_identifier): Use CPP_HASHNODE. * include/line-map.h (LINEMAP_POSITION_FOR_COLUMN): Wrap in do-while. * identifiers.c (alloc_node): Change return type. (_cpp_init_hashtable): Don't cast 'alloc_node'. (proxy_assertion_broken): New declaration. (cpp_forall_identifiers): Move comment. * line-map.c (linemap_add): Comment fix. (linemap_line_start): Indentation fix. From-SVN: r132467
This commit is contained in:
parent
18ca3965e9
commit
2bf41bf05d
6 changed files with 33 additions and 18 deletions
|
@ -1,6 +1,6 @@
|
|||
/* Hash tables for the CPP library.
|
||||
Copyright (C) 1986, 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1998,
|
||||
1999, 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||
1999, 2000, 2001, 2002, 2007 Free Software Foundation, Inc.
|
||||
Written by Per Bothner, 1994.
|
||||
Based on CCCP program by Paul Rubin, June 1986
|
||||
Adapted to ANSI C, Richard Stallman, Jan 1987
|
||||
|
@ -28,18 +28,18 @@ Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|||
#include "cpplib.h"
|
||||
#include "internal.h"
|
||||
|
||||
static cpp_hashnode *alloc_node (hash_table *);
|
||||
static hashnode alloc_node (hash_table *);
|
||||
|
||||
/* Return an identifier node for hashtable.c. Used by cpplib except
|
||||
when integrated with the C front ends. */
|
||||
static cpp_hashnode *
|
||||
static hashnode
|
||||
alloc_node (hash_table *table)
|
||||
{
|
||||
cpp_hashnode *node;
|
||||
|
||||
node = XOBNEW (&table->pfile->hash_ob, cpp_hashnode);
|
||||
memset (node, 0, sizeof (cpp_hashnode));
|
||||
return node;
|
||||
return HT_NODE (node);
|
||||
}
|
||||
|
||||
/* Set up the identifier hash table. Use TABLE if non-null, otherwise
|
||||
|
@ -53,7 +53,7 @@ _cpp_init_hashtable (cpp_reader *pfile, hash_table *table)
|
|||
{
|
||||
pfile->our_hashtable = 1;
|
||||
table = ht_create (13); /* 8K (=2^13) entries. */
|
||||
table->alloc_node = (hashnode (*) (hash_table *)) alloc_node;
|
||||
table->alloc_node = alloc_node;
|
||||
|
||||
_obstack_begin (&pfile->hash_ob, 0, 0,
|
||||
(void *(*) (long)) xmalloc,
|
||||
|
@ -107,12 +107,15 @@ cpp_defined (cpp_reader *pfile, const unsigned char *str, int len)
|
|||
return node && node->type == NT_MACRO;
|
||||
}
|
||||
|
||||
/* We don't need a proxy since the hash table's identifier comes first
|
||||
in cpp_hashnode. However, in case this is ever changed, we have a
|
||||
static assertion for it. */
|
||||
extern char proxy_assertion_broken[offsetof (struct cpp_hashnode, ident) == 0 ? 1 : -1];
|
||||
|
||||
/* For all nodes in the hashtable, callback CB with parameters PFILE,
|
||||
the node, and V. */
|
||||
void
|
||||
cpp_forall_identifiers (cpp_reader *pfile, cpp_cb cb, void *v)
|
||||
{
|
||||
/* We don't need a proxy since the hash table's identifier comes
|
||||
first in cpp_hashnode. */
|
||||
ht_forall (pfile->hash_table, (ht_cb) cb, v);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue