diff options
author | obrien <obrien@FreeBSD.org> | 2002-02-01 18:16:02 +0000 |
---|---|---|
committer | obrien <obrien@FreeBSD.org> | 2002-02-01 18:16:02 +0000 |
commit | c9ab9ae440a8066b2c2b85b157b1fdadcf09916a (patch) | |
tree | 086d9d6c8fbd4fc8fe4495059332f66bc0f8d12b /contrib/gcc/gen-protos.c | |
parent | 2ecfd8bd04b63f335c1ec6295740a4bfd97a4fa6 (diff) | |
download | FreeBSD-src-c9ab9ae440a8066b2c2b85b157b1fdadcf09916a.zip FreeBSD-src-c9ab9ae440a8066b2c2b85b157b1fdadcf09916a.tar.gz |
Enlist the FreeBSD-CURRENT users as testers of what is to become Gcc 3.1.0.
These bits are taken from the FSF anoncvs repo on 1-Feb-2002 08:20 PST.
Diffstat (limited to 'contrib/gcc/gen-protos.c')
-rw-r--r-- | contrib/gcc/gen-protos.c | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/contrib/gcc/gen-protos.c b/contrib/gcc/gen-protos.c index 1085035..96aeef9 100644 --- a/contrib/gcc/gen-protos.c +++ b/contrib/gcc/gen-protos.c @@ -1,5 +1,6 @@ /* gen-protos.c - massages a list of prototypes, for use by fixproto. - Copyright (C) 1993, 94-96, 1998 Free Software Foundation, Inc. + Copyright (C) 1993, 1994, 1995, 1996, 1998, + 1999 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the @@ -18,28 +19,31 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "hconfig.h" #include "system.h" #include "scan.h" -#include "cpplib.h" -#include "cpphash.h" #undef abort int verbose = 0; -char *progname; +const char *progname; + +static void add_hash PARAMS ((const char *)); +static int parse_fn_proto PARAMS ((char *, char *, struct fn_decl *)); #define HASH_SIZE 2503 /* a prime */ int hash_tab[HASH_SIZE]; int next_index; +int collisions; static void add_hash (fname) - char *fname; + const char *fname; { int i, i0; /* NOTE: If you edit this, also edit lookup_std_proto in fix-header.c !! */ - i = hashf (fname, strlen (fname), HASH_SIZE); + i = hashstr (fname, strlen (fname)) % HASH_SIZE; i0 = i; if (hash_tab[i] != 0) { + collisions++; for (;;) { i = (i+1) % HASH_SIZE; @@ -65,7 +69,7 @@ parse_fn_proto (start, end, fn) char *start, *end; struct fn_decl *fn; { - register char *ptr; + char *ptr; int param_nesting = 1; char *param_start, *param_end, *decl_start, *name_start, *name_end; @@ -105,7 +109,8 @@ parse_fn_proto (start, end, fn) } name_end = ptr+1; - while (ISALNUM ((unsigned char)*ptr) || *ptr == '_') --ptr; + while (ISIDNUM (*ptr)) + --ptr; name_start = ptr+1; while (*ptr == ' ' || *ptr == '\t') ptr--; ptr[1] = 0; @@ -124,6 +129,8 @@ parse_fn_proto (start, end, fn) return 1; } +extern int main PARAMS ((int, char **)); + int main (argc, argv) int argc ATTRIBUTE_UNUSED; @@ -181,5 +188,8 @@ main (argc, argv) fprintf (outf, " %d,\n", hash_tab[i]); fprintf (outf, "};\n"); + fprintf (stderr, "gen-protos: %d entries %d collisions\n", + next_index, collisions); + return 0; } |