diff options
author | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-02-26 13:09:58 +0000 |
---|---|---|
committer | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-02-26 13:09:58 +0000 |
commit | b8053af55de78a3f080783e5113fd6452e5a43c5 (patch) | |
tree | a5906142e844e296abb7382e34657faf4e58f74f /libcpp | |
parent | 4896274c9597b09d4c61bdd2efb3201a72634b3c (diff) | |
download | gcc-b8053af55de78a3f080783e5113fd6452e5a43c5.tar.gz |
2008-02-26 Basile Starynkevitch <basile@starynkevitch.net>
MELT branch merged with trunk r132671
Merged revisions 132452-132671 via svnmerge from
svn+ssh://bstarynk@gcc.gnu.org/svn/gcc/trunk
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@132672 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libcpp')
-rw-r--r-- | libcpp/ChangeLog | 17 | ||||
-rw-r--r-- | libcpp/Makefile.in | 2 | ||||
-rw-r--r-- | libcpp/identifiers.c | 17 | ||||
-rw-r--r-- | libcpp/include/line-map.h | 4 | ||||
-rw-r--r-- | libcpp/lex.c | 6 | ||||
-rw-r--r-- | libcpp/line-map.c | 7 | ||||
-rw-r--r-- | libcpp/traditional.c | 4 |
7 files changed, 38 insertions, 19 deletions
diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog index a14c38ef9a9..5a959c3791e 100644 --- a/libcpp/ChangeLog +++ b/libcpp/ChangeLog @@ -1,3 +1,20 @@ +2008-02-25 Thiemo Seufer <ths@mips.com> + + Makefile.in ($(srcdir)/config.in): Depend on configure.ac. + +2008-02-19 Tom Tromey <tromey@redhat.com> + + * 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. + 2008-01-25 Jakub Jelinek <jakub@redhat.com> PR preprocessor/34692 diff --git a/libcpp/Makefile.in b/libcpp/Makefile.in index 960a42d56e3..7f4be52ddee 100644 --- a/libcpp/Makefile.in +++ b/libcpp/Makefile.in @@ -119,7 +119,7 @@ stamp-h1: $(srcdir)/config.in config.status -rm -f stamp-h1 $(SHELL) ./config.status config.h -$(srcdir)/config.in: @MAINT@ $(srcdir)/configure +$(srcdir)/config.in: @MAINT@ $(srcdir)/configure.ac cd $(srcdir) && $(AUTOHEADER) -rm -f stamp-h1 diff --git a/libcpp/identifiers.c b/libcpp/identifiers.c index c22f4a714bb..41f32a2bbae 100644 --- a/libcpp/identifiers.c +++ b/libcpp/identifiers.c @@ -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); } diff --git a/libcpp/include/line-map.h b/libcpp/include/line-map.h index cddc74d432e..3378315238f 100644 --- a/libcpp/include/line-map.h +++ b/libcpp/include/line-map.h @@ -172,7 +172,7 @@ extern void linemap_print_containing_files (struct line_maps *, /* Set LOC to a source position that is the same line as the most recent linemap_line_start, but with the specified TO_COLUMN column number. */ -#define LINEMAP_POSITION_FOR_COLUMN(LOC, SET, TO_COLUMN) { \ +#define LINEMAP_POSITION_FOR_COLUMN(LOC, SET, TO_COLUMN) do { \ unsigned int to_column = (TO_COLUMN); \ struct line_maps *set = (SET); \ if (__builtin_expect (to_column >= set->max_column_hint, 0)) \ @@ -183,7 +183,7 @@ extern void linemap_print_containing_files (struct line_maps *, if (r >= set->highest_location) \ set->highest_location = r; \ (LOC) = r; \ - }} + }} while (0) extern source_location diff --git a/libcpp/lex.c b/libcpp/lex.c index ef59f900c64..2eaf6105922 100644 --- a/libcpp/lex.c +++ b/libcpp/lex.c @@ -1,5 +1,5 @@ /* CPP Library - lexical analysis. - Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc. Contributed by Per Bothner, 1994-95. Based on CCCP program by Paul Rubin, June 1986 Adapted to ANSI C, Richard Stallman, Jan 1987 @@ -538,8 +538,8 @@ lex_identifier (cpp_reader *pfile, const uchar *base, bool starts_ucn, len = cur - base; hash = HT_HASHFINISH (hash, len); - result = (cpp_hashnode *) - ht_lookup_with_hash (pfile->hash_table, base, len, hash, HT_ALLOC); + result = CPP_HASHNODE (ht_lookup_with_hash (pfile->hash_table, + base, len, hash, HT_ALLOC)); } /* Rarely, identifiers require diagnostics when lexed. */ diff --git a/libcpp/line-map.c b/libcpp/line-map.c index c13a82dcafc..2c6d2510e61 100644 --- a/libcpp/line-map.c +++ b/libcpp/line-map.c @@ -1,5 +1,5 @@ /* Map logical line numbers to (source file, line number) pairs. - Copyright (C) 2001, 2003, 2004, 2007 + Copyright (C) 2001, 2003, 2004, 2007, 2008 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it @@ -81,7 +81,6 @@ linemap_free (struct line_maps *set) FROM_LINE should be monotonic increasing across calls to this function. A call to this function can relocate the previous set of - A call to this function can relocate the previous set of maps, so any stored line_map pointers should not be used. */ const struct line_map * @@ -225,8 +224,8 @@ linemap_line_start (struct line_maps *set, unsigned int to_line, if (line_delta < 0 || last_line != map->to_line || SOURCE_COLUMN (map, highest) >= (1U << column_bits)) - map = (struct line_map*) linemap_add (set, LC_RENAME, map->sysp, - map->to_file, to_line); + map = (struct line_map *) linemap_add (set, LC_RENAME, map->sysp, + map->to_file, to_line); map->column_bits = column_bits; r = map->start_location + ((to_line - map->to_line) << column_bits); } diff --git a/libcpp/traditional.c b/libcpp/traditional.c index 6c4dda1a9f3..1a384253a90 100644 --- a/libcpp/traditional.c +++ b/libcpp/traditional.c @@ -253,8 +253,8 @@ lex_identifier (cpp_reader *pfile, const uchar *cur) CUR (pfile->context) = cur; len = out - pfile->out.cur; - result = (cpp_hashnode *) ht_lookup (pfile->hash_table, pfile->out.cur, - len, HT_ALLOC); + result = CPP_HASHNODE (ht_lookup (pfile->hash_table, pfile->out.cur, + len, HT_ALLOC)); pfile->out.cur = out; return result; } |