aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog28
-rw-r--r--gcc/cppexp.c4
-rw-r--r--gcc/cppfiles.c6
-rw-r--r--gcc/cpphash.c65
-rw-r--r--gcc/cpphash.h78
-rw-r--r--gcc/cppinit.c2
-rw-r--r--gcc/cpplib.c32
-rw-r--r--gcc/cpplib.h75
-rw-r--r--gcc/fix-header.c2
-rw-r--r--gcc/scan.h3
10 files changed, 151 insertions, 144 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3e6a9a5..4b6602c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,33 @@
2000-02-09 Zack Weinberg <zack@wolery.cumb.org>
+ * cpplib.h: Provide HASHNODE typedef and forward decl of
+ struct hashnode only. Kill cpp_hashnode typedef. MACRODEF,
+ DEFINITION, struct hashnode, struct macrodef, struct
+ definition, scan_decls prototype, default defn of
+ INCLUDE_LEN_FUDGE moved elsewhere.
+
+ * cpphash.h: MACRODEF, DEFINITION, struct macrodef, struct
+ definition, and struct hashnode moved here. Remove the unused
+ 'predefined' field from struct definition. Replace the 'args'
+ union with its sole member. All users updated (cpphash.c).
+ Delete HASHSTEP and MAKE_POS macros, and hashf prototype. Add
+ multiple include guard.
+
+ * cpphash.c (hashf): Make static; use better algorithm; drop
+ HASHSIZE parameter; return an unsigned int.
+ (cpp_lookup): Drop HASH parameter. PFILE parameter is
+ used. Calculate HASHSIZE modulus here.
+ (cpp_install): Drop HASH parameter. Calculate HASHSIZE modulus
+ here.
+ (create_definition): Drop PREDEFINITION parameter.
+ * cpplib.c (do_define): Don't calculate a hash value here.
+ Don't pass (keyword == NULL) to create_definition.
+
+ * scan.h: Prototype scan_decls here.
+ * cppfiles.c: Move INCLUDE_LEN_FUDGE default defn here.
+ * cppexp.c, cppfiles.c, cppinit.c, cpplib.c, fix-header.c: All
+ callers of cpp_lookup and cpp_install updated.
+
* cpphash.c (macarg): Hoist all the flag diddling out of the
function...
(macroexpand): ... and out of the loop that calls macarg.
diff --git a/gcc/cppexp.c b/gcc/cppexp.c
index 3a6ea14..7f8c917 100644
--- a/gcc/cppexp.c
+++ b/gcc/cppexp.c
@@ -332,7 +332,7 @@ parse_charconst (pfile, start, end)
num_bits = num_chars * width;
if (cpp_lookup (pfile, (const U_CHAR *)"__CHAR_UNSIGNED__",
- sizeof ("__CHAR_UNSIGNED__")-1, -1)
+ sizeof ("__CHAR_UNSIGNED__")-1)
|| ((result >> (num_bits - 1)) & 1) == 0)
op.value = result & ((unsigned HOST_WIDEST_INT) ~0
>> (HOST_BITS_PER_WIDEST_INT - num_bits));
@@ -472,7 +472,7 @@ cpp_lex (pfile, skip_evaluation)
goto oops;
++ip->cur;
}
- hp = cpp_lookup (pfile, tok, len, -1);
+ hp = cpp_lookup (pfile, tok, len);
if (hp != NULL)
{
if (hp->type == T_POISON)
diff --git a/gcc/cppfiles.c b/gcc/cppfiles.c
index 8bc313d..deb8bf0 100644
--- a/gcc/cppfiles.c
+++ b/gcc/cppfiles.c
@@ -68,6 +68,10 @@ static void hack_vms_include_specification PARAMS ((char *));
#define INO_T_EQ(a, b) ((a) == (b))
#endif
+#ifndef INCLUDE_LEN_FUDGE
+#define INCLUDE_LEN_FUDGE 0
+#endif
+
/* Merge the four include chains together in the order quote, bracket,
system, after. Remove duplicate dirs (as determined by
INO_T_EQ()). The system_include and after_include chains are never
@@ -282,7 +286,7 @@ redundant_include_p (pfile, ihash, ilist)
included again if the string is the name of a defined macro. */
return (i->control_macro
&& (i->control_macro[0] == '\0'
- || cpp_lookup (pfile, i->control_macro, -1, -1)))
+ || cpp_lookup (pfile, i->control_macro, -1)))
? (struct include_hash *)-1 : i;
return 0;
diff --git a/gcc/cpphash.c b/gcc/cpphash.c
index 8a178f3..0a4e860 100644
--- a/gcc/cpphash.c
+++ b/gcc/cpphash.c
@@ -29,6 +29,7 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "cpphash.h"
#undef abort
+static unsigned int hashf PARAMS ((const U_CHAR *, int));
static int comp_def_part PARAMS ((int, U_CHAR *, int, U_CHAR *,
int, int));
static void push_macro_expansion PARAMS ((cpp_reader *,
@@ -91,38 +92,35 @@ struct argdata
/* Return hash function on name. must be compatible with the one
computed a step at a time, elsewhere */
-int
-hashf (name, len, hashsize)
- register const U_CHAR *name;
+static unsigned int
+hashf (s, len)
+ register const U_CHAR *s;
register int len;
- int hashsize;
{
- register int r = 0;
-
- while (len--)
- r = HASHSTEP (r, *name++);
+ unsigned int n = len;
+ unsigned int r = 0;
- return MAKE_POS (r) % hashsize;
+ do
+ r = r * 67 + (*s++ - 113);
+ while (--n);
+ return r + len;
}
/* Find the most recent hash node for name "name" (ending with first
non-identifier char) installed by cpp_install
If LEN is >= 0, it is the length of the name.
- Otherwise, compute the length by scanning the entire name.
-
- If HASH is >= 0, it is the precomputed hash code.
- Otherwise, compute the hash code. */
+ Otherwise, compute the length by scanning the entire name. */
HASHNODE *
-cpp_lookup (pfile, name, len, hash)
- cpp_reader *pfile ATTRIBUTE_UNUSED;
+cpp_lookup (pfile, name, len)
+ cpp_reader *pfile;
const U_CHAR *name;
int len;
- int hash;
{
register const U_CHAR *bp;
register HASHNODE *bucket;
+ register unsigned int hash;
if (len < 0)
{
@@ -130,8 +128,7 @@ cpp_lookup (pfile, name, len, hash)
len = bp - name;
}
- if (hash < 0)
- hash = hashf (name, len, HASHSIZE);
+ hash = hashf (name, len) % HASHSIZE;
bucket = pfile->hashtab[hash];
while (bucket)
@@ -183,7 +180,7 @@ delete_macro (hp)
free (ap);
}
if (d->nargs >= 0)
- free (d->args.argnames);
+ free (d->argnames);
free (d);
}
@@ -204,17 +201,17 @@ delete_macro (hp)
Otherwise, compute the hash code. */
HASHNODE *
-cpp_install (pfile, name, len, type, value, hash)
+cpp_install (pfile, name, len, type, value)
cpp_reader *pfile;
const U_CHAR *name;
int len;
enum node_type type;
const char *value;
- int hash;
{
register HASHNODE *hp;
register int i, bucket;
register const U_CHAR *p;
+ unsigned int hash;
if (len < 0)
{
@@ -224,8 +221,7 @@ cpp_install (pfile, name, len, type, value, hash)
len = p - name;
}
- if (hash < 0)
- hash = hashf (name, len, HASHSIZE);
+ hash = hashf (name, len) % HASHSIZE;
i = sizeof (HASHNODE) + len + 1;
hp = (HASHNODE *) xmalloc (i);
@@ -582,10 +578,9 @@ static char rest_extension[] = "...";
as for do_define. */
MACRODEF
-create_definition (buf, limit, pfile, predefinition)
+create_definition (buf, limit, pfile)
U_CHAR *buf, *limit;
cpp_reader *pfile;
- int predefinition;
{
U_CHAR *bp; /* temp ptr into input buffer */
U_CHAR *symname; /* remember where symbol name starts */
@@ -701,24 +696,24 @@ create_definition (buf, limit, pfile, predefinition)
defn = collect_expansion (pfile, bp, limit, argno, arg_ptrs);
defn->rest_args = rest_args;
- /* Now set defn->args.argnames to the result of concatenating
+ /* Now set defn->argnames to the result of concatenating
the argument names in reverse order
with comma-space between them. */
- defn->args.argnames = (U_CHAR *) xmalloc (arglengths + 1);
+ defn->argnames = (U_CHAR *) xmalloc (arglengths + 1);
{
struct arglist *temp;
int i = 0;
for (temp = arg_ptrs; temp; temp = temp->next)
{
- bcopy (temp->name, &defn->args.argnames[i], temp->length);
+ bcopy (temp->name, &defn->argnames[i], temp->length);
i += temp->length;
if (temp->next != 0)
{
- defn->args.argnames[i++] = ',';
- defn->args.argnames[i++] = ' ';
+ defn->argnames[i++] = ',';
+ defn->argnames[i++] = ' ';
}
}
- defn->args.argnames[i] = 0;
+ defn->argnames[i] = 0;
}
}
else
@@ -741,14 +736,12 @@ create_definition (buf, limit, pfile, predefinition)
}
/* now everything from bp before limit is the definition. */
defn = collect_expansion (pfile, bp, limit, -1, NULL_PTR);
- defn->args.argnames = (U_CHAR *) "";
+ defn->argnames = (U_CHAR *) "";
}
defn->line = line;
defn->file = file;
- /* OP is null if this is a predefinition */
- defn->predefined = predefinition;
mdef.defn = defn;
mdef.symnam = symname;
mdef.symlen = sym_length;
@@ -1504,7 +1497,7 @@ compare_defs (pfile, d1, d2)
if (d1->nargs != d2->nargs)
return 1;
if (CPP_PEDANTIC (pfile)
- && strcmp ((char *) d1->args.argnames, (char *) d2->args.argnames))
+ && strcmp ((char *) d1->argnames, (char *) d2->argnames))
return 1;
for (a1 = d1->pattern, a2 = d2->pattern; a1 && a2;
a1 = a1->next, a2 = a2->next)
@@ -1607,7 +1600,7 @@ dump_definition (pfile, macro)
else
{
struct reflist *r;
- unsigned char *argnames = (unsigned char *) xstrdup (defn->args.argnames);
+ unsigned char *argnames = (unsigned char *) xstrdup (defn->argnames);
unsigned char **argv = (unsigned char **) alloca (defn->nargs *
sizeof(char *));
int *argl = (int *) alloca (defn->nargs * sizeof(int));
diff --git a/gcc/cpphash.h b/gcc/cpphash.h
index 5422979..960700c 100644
--- a/gcc/cpphash.h
+++ b/gcc/cpphash.h
@@ -15,6 +15,65 @@ You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+#ifndef __GCC_CPPHASH__
+#define __GCC_CPPHASH__
+
+/* Structure returned by create_definition */
+typedef struct macrodef MACRODEF;
+struct macrodef
+{
+ struct definition *defn;
+ const U_CHAR *symnam;
+ int symlen;
+};
+
+/* Structure allocated for every #define. For a simple replacement
+ such as
+ #define foo bar ,
+ nargs = -1, the `pattern' list is null, and the expansion is just
+ the replacement text. Nargs = 0 means a functionlike macro with no args,
+ e.g.,
+ #define getchar() getc (stdin) .
+ When there are args, the expansion is the replacement text with the
+ args squashed out, and the reflist is a list describing how to
+ build the output from the input: e.g., "3 chars, then the 1st arg,
+ then 9 chars, then the 3rd arg, then 0 chars, then the 2nd arg".
+ The chars here come from the expansion. Whatever is left of the
+ expansion after the last arg-occurrence is copied after that arg.
+ Note that the reflist can be arbitrarily long---
+ its length depends on the number of times the arguments appear in
+ the replacement text, not how many args there are. Example:
+ #define f(x) x+x+x+x+x+x+x would have replacement text "++++++" and
+ pattern list
+ { (0, 1), (1, 1), (1, 1), ..., (1, 1), NULL }
+ where (x, y) means (nchars, argno). */
+
+typedef struct definition DEFINITION;
+struct definition {
+ int nargs;
+ int length; /* length of expansion string */
+ unsigned char *expansion;
+ int line; /* Line number of definition */
+ const char *file; /* File of definition */
+ char rest_args; /* Nonzero if last arg. absorbs the rest */
+ struct reflist {
+ struct reflist *next;
+ char stringify; /* nonzero if this arg was preceded by a
+ # operator. */
+ char raw_before; /* Nonzero if a ## operator before arg. */
+ char raw_after; /* Nonzero if a ## operator after arg. */
+ char rest_args; /* Nonzero if this arg. absorbs the rest */
+ int nchars; /* Number of literal chars to copy before
+ this arg occurrence. */
+ int argno; /* Number of arg to substitute (origin-0) */
+ } *pattern;
+ /* Names of macro args, concatenated in reverse order
+ with comma-space between them.
+ The only use of this is that we warn on redefinition
+ if this differs between the old and new definitions. */
+ unsigned char *argnames;
+};
+
/* different kinds of things that can appear in the value field
of a hash node. */
union hashval
@@ -36,26 +95,15 @@ struct hashnode {
union hashval value; /* pointer to expansion, or whatever */
};
-typedef struct hashnode HASHNODE;
-
-/* Some definitions for the hash table. The hash function MUST be
- computed as shown in hashf () below. That is because the rescan
- loop computes the hash value `on the fly' for most tokens,
- in order to avoid the overhead of a lot of procedure calls to
- the hashf () function. Hashf () only exists for the sake of
- politeness, for use when speed isn't so important. */
-
-#define HASHSTEP(old, c) ((old << 2) + c)
-#define MAKE_POS(v) (v & 0x7fffffff) /* make number positive */
-
extern HASHNODE *cpp_install PARAMS ((cpp_reader *, const U_CHAR *, int,
- enum node_type, const char *, int));
-extern int hashf PARAMS ((const U_CHAR *, int, int));
+ enum node_type, const char *));
extern void delete_macro PARAMS ((HASHNODE *));
extern MACRODEF create_definition PARAMS ((U_CHAR *, U_CHAR *,
- cpp_reader *, int));
+ cpp_reader *));
extern int compare_defs PARAMS ((cpp_reader *, DEFINITION *,
DEFINITION *));
extern void macroexpand PARAMS ((cpp_reader *, HASHNODE *));
extern void dump_definition PARAMS ((cpp_reader *, MACRODEF));
+
+#endif
diff --git a/gcc/cppinit.c b/gcc/cppinit.c
index fa67ee2..9ca7e7e 100644
--- a/gcc/cppinit.c
+++ b/gcc/cppinit.c
@@ -553,7 +553,7 @@ initialize_builtins (pfile)
val = (b->flags & ULP) ? user_label_prefix : b->value;
len = strlen (b->name);
- cpp_install (pfile, b->name, len, b->type, val, -1);
+ cpp_install (pfile, b->name, len, b->type, val);
if ((b->flags & DUMP) && CPP_OPTIONS (pfile)->debug_output)
dump_special_to_buffer (pfile, b->name);
}
diff --git a/gcc/cpplib.c b/gcc/cpplib.c
index 7abb331..896d602 100644
--- a/gcc/cpplib.c
+++ b/gcc/cpplib.c
@@ -654,7 +654,6 @@ do_define (pfile, keyword)
cpp_reader *pfile;
const struct directive *keyword;
{
- int hashcode;
MACRODEF mdef;
HASHNODE *hp;
long here;
@@ -678,13 +677,11 @@ do_define (pfile, keyword)
CPP_SET_WRITTEN (pfile, here);
- mdef = create_definition (macro, end, pfile, keyword == NULL);
+ mdef = create_definition (macro, end, pfile);
if (mdef.defn == 0)
return 0;
- hashcode = hashf (mdef.symnam, mdef.symlen, HASHSIZE);
-
- if ((hp = cpp_lookup (pfile, mdef.symnam, mdef.symlen, hashcode)) != NULL)
+ if ((hp = cpp_lookup (pfile, mdef.symnam, mdef.symlen)) != NULL)
{
int ok = 0;
/* Redefining a precompiled key is ok. */
@@ -720,8 +717,7 @@ do_define (pfile, keyword)
}
}
else
- cpp_install (pfile, mdef.symnam, mdef.symlen, new_type,
- (char *) mdef.defn, hashcode);
+ cpp_install (pfile, mdef.symnam, mdef.symlen, new_type, (char *)mdef.defn);
if (keyword != NULL && keyword->type == T_DEFINE)
{
@@ -1475,7 +1471,7 @@ do_undef (pfile, keyword)
sym_length = check_macro_name (pfile, buf);
- while ((hp = cpp_lookup (pfile, name, sym_length, -1)) != NULL)
+ while ((hp = cpp_lookup (pfile, name, sym_length)) != NULL)
{
/* If we are generating additional info for debugging (with -g) we
need to pass through all effective #undef commands. */
@@ -1923,7 +1919,7 @@ do_xifdef (pfile, keyword)
}
else if (token == CPP_NAME)
{
- HASHNODE *hp = cpp_lookup (pfile, ident, ident_length, -1);
+ HASHNODE *hp = cpp_lookup (pfile, ident, ident_length);
skip = (hp == NULL) ^ (keyword->type == T_IFNDEF);
if (start_of_file && !skip)
{
@@ -2617,7 +2613,7 @@ cpp_get_token (pfile)
return CPP_NAME;
ident = pfile->token_buffer + before_name_written;
ident_len = CPP_PWRITTEN (pfile) - ident;
- hp = cpp_lookup (pfile, ident, ident_len, -1);
+ hp = cpp_lookup (pfile, ident, ident_len);
if (!hp)
return CPP_NAME;
if (hp->type == T_DISABLED)
@@ -3018,16 +3014,16 @@ do_assert (pfile, keyword)
thislen = strlen (sym);
baselen = index (sym, '(') - sym;
- this = cpp_lookup (pfile, sym, thislen, -1);
+ this = cpp_lookup (pfile, sym, thislen);
if (this)
{
cpp_warning (pfile, "`%s' re-asserted", sym);
goto error;
}
- base = cpp_lookup (pfile, sym, baselen, -1);
+ base = cpp_lookup (pfile, sym, baselen);
if (! base)
- base = cpp_install (pfile, sym, baselen, T_ASSERT, 0, -1);
+ base = cpp_install (pfile, sym, baselen, T_ASSERT, 0);
else if (base->type != T_ASSERT)
{
/* Token clash - but with what?! */
@@ -3036,7 +3032,7 @@ do_assert (pfile, keyword)
}
this = cpp_install (pfile, sym, thislen, T_ASSERT,
- (char *)base->value.aschain, -1);
+ (char *)base->value.aschain);
base->value.aschain = this;
pfile->limit = (unsigned char *) sym; /* Pop */
@@ -3077,7 +3073,7 @@ do_unassert (pfile, keyword)
thislen = strlen (sym);
if (ret == 1)
{
- base = cpp_lookup (pfile, sym, thislen, -1);
+ base = cpp_lookup (pfile, sym, thislen);
if (! base)
goto error; /* It isn't an error to #undef what isn't #defined,
so it isn't an error to #unassert what isn't
@@ -3093,9 +3089,9 @@ do_unassert (pfile, keyword)
else
{
baselen = index (sym, '(') - sym;
- base = cpp_lookup (pfile, sym, baselen, -1);
+ base = cpp_lookup (pfile, sym, baselen);
if (! base) goto error;
- this = cpp_lookup (pfile, sym, thislen, -1);
+ this = cpp_lookup (pfile, sym, thislen);
if (! this) goto error;
next = base;
@@ -3144,7 +3140,7 @@ cpp_read_check_assertion (pfile)
result = 0;
else
{
- hp = cpp_lookup (pfile, name, CPP_PWRITTEN (pfile) - name, -1);
+ hp = cpp_lookup (pfile, name, CPP_PWRITTEN (pfile) - name);
result = (hp != 0);
}
diff --git a/gcc/cpplib.h b/gcc/cpplib.h
index e0bf7ae..266b903 100644
--- a/gcc/cpplib.h
+++ b/gcc/cpplib.h
@@ -33,7 +33,6 @@ typedef unsigned char U_CHAR;
typedef struct cpp_reader cpp_reader;
typedef struct cpp_buffer cpp_buffer;
typedef struct cpp_options cpp_options;
-typedef struct hashnode cpp_hashnode;
enum cpp_token {
CPP_EOF = -1,
@@ -140,6 +139,9 @@ struct file_name_map_list;
Applying cpp_get_token repeatedly yields a stream of pre-processor
tokens. Usually, there is only one cpp_reader object active. */
+struct hashnode;
+typedef struct hashnode HASHNODE;
+
struct cpp_reader
{
parse_underflow_t get_token;
@@ -167,7 +169,7 @@ struct cpp_reader
/* Hash table of macros and assertions. See cpphash.c */
#define HASHSIZE 1403
- struct hashnode **hashtab;
+ HASHNODE **hashtab;
/* Hash table of other included files. See cppfiles.c */
#define ALL_INCLUDE_HASHSIZE 71
@@ -603,66 +605,6 @@ enum node_type {
T_UNUSED /* Used for something not defined. */
};
-/* Structure returned by create_definition */
-typedef struct macrodef MACRODEF;
-struct macrodef
-{
- struct definition *defn;
- const U_CHAR *symnam;
- int symlen;
-};
-
-/* Structure allocated for every #define. For a simple replacement
- such as
- #define foo bar ,
- nargs = -1, the `pattern' list is null, and the expansion is just
- the replacement text. Nargs = 0 means a functionlike macro with no args,
- e.g.,
- #define getchar() getc (stdin) .
- When there are args, the expansion is the replacement text with the
- args squashed out, and the reflist is a list describing how to
- build the output from the input: e.g., "3 chars, then the 1st arg,
- then 9 chars, then the 3rd arg, then 0 chars, then the 2nd arg".
- The chars here come from the expansion. Whatever is left of the
- expansion after the last arg-occurrence is copied after that arg.
- Note that the reflist can be arbitrarily long---
- its length depends on the number of times the arguments appear in
- the replacement text, not how many args there are. Example:
- #define f(x) x+x+x+x+x+x+x would have replacement text "++++++" and
- pattern list
- { (0, 1), (1, 1), (1, 1), ..., (1, 1), NULL }
- where (x, y) means (nchars, argno). */
-
-typedef struct definition DEFINITION;
-struct definition {
- int nargs;
- int length; /* length of expansion string */
- int predefined; /* True if the macro was builtin or */
- /* came from the command line */
- unsigned char *expansion;
- int line; /* Line number of definition */
- const char *file; /* File of definition */
- char rest_args; /* Nonzero if last arg. absorbs the rest */
- struct reflist {
- struct reflist *next;
- char stringify; /* nonzero if this arg was preceded by a
- # operator. */
- char raw_before; /* Nonzero if a ## operator before arg. */
- char raw_after; /* Nonzero if a ## operator after arg. */
- char rest_args; /* Nonzero if this arg. absorbs the rest */
- int nchars; /* Number of literal chars to copy before
- this arg occurrence. */
- int argno; /* Number of arg to substitute (origin-0) */
- } *pattern;
- union {
- /* Names of macro args, concatenated in reverse order
- with comma-space between them.
- The only use of this is that we warn on redefinition
- if this differs between the old and new definitions. */
- unsigned char *argnames;
- } args;
-};
-
/* Character classes.
If the definition of `numchar' looks odd to you, please look up the
definition of a pp-number in the C standard [section 6.4.8 of C99] */
@@ -744,14 +686,12 @@ extern void cpp_grow_buffer PARAMS ((cpp_reader *, long));
extern cpp_buffer *cpp_push_buffer PARAMS ((cpp_reader *,
unsigned char *, long));
extern cpp_buffer *cpp_pop_buffer PARAMS ((cpp_reader *));
+extern HASHNODE *cpp_lookup PARAMS ((cpp_reader *, const U_CHAR *, int));
-extern cpp_hashnode *cpp_lookup PARAMS ((cpp_reader *, const unsigned char *,
- int, int));
extern void cpp_reader_init PARAMS ((cpp_reader *));
extern void cpp_options_init PARAMS ((cpp_options *));
extern int cpp_start_read PARAMS ((cpp_reader *, char *));
extern int cpp_read_check_assertion PARAMS ((cpp_reader *));
-extern int scan_decls PARAMS ((cpp_reader *, int, char **));
extern void skip_rest_of_line PARAMS ((cpp_reader *));
extern void cpp_finish PARAMS ((cpp_reader *));
@@ -779,11 +719,6 @@ extern void deps_output PARAMS ((cpp_reader *,
const char *, int));
extern struct include_hash *include_hash PARAMS ((cpp_reader *, const char *, int));
-#ifndef INCLUDE_LEN_FUDGE
-#define INCLUDE_LEN_FUDGE 0
-#endif
-
-
#ifdef __cplusplus
}
#endif
diff --git a/gcc/fix-header.c b/gcc/fix-header.c
index f01eadc..802d636 100644
--- a/gcc/fix-header.c
+++ b/gcc/fix-header.c
@@ -603,7 +603,7 @@ check_macro_names (pfile, names)
{
while (*names)
{
- if (cpp_lookup (pfile, names, -1, -1))
+ if (cpp_lookup (pfile, names, -1))
recognized_macro (names);
names += strlen (names) + 1;
}
diff --git a/gcc/scan.h b/gcc/scan.h
index a2d9644..1c321f5 100644
--- a/gcc/scan.h
+++ b/gcc/scan.h
@@ -62,6 +62,9 @@ extern void recognized_function _PARAMS((const char *, int, int, const char *, i
extern void recognized_extern _PARAMS((const char *, int, const char *, int));
extern unsigned int hashstr _PARAMS((const char *, unsigned int));
+struct cpp_reader;
+extern int scan_decls _PARAMS((struct cpp_reader *, int, char **));
+
/* get_token is a simple C lexer. */
#define IDENTIFIER_TOKEN 300
#define CHAR_TOKEN 301