cfns.h   [plain text]


/* C code produced by gperf version 2.7 */
/* Command-line: gperf -o -C -E -k 1-6,$ -j1 -D -N libc_name_p ../../../egcs-CVS20000404/gcc/cp/cfns.gperf  */
#ifdef __GNUC__
__inline
#endif
static unsigned int hash PARAMS ((const char *, unsigned int));
#ifdef __GNUC__
__inline
#endif
const char * libc_name_p PARAMS ((const char *, unsigned int));
/* maximum key range = 1020, duplicates = 1 */

#ifdef __GNUC__
__inline
#endif
static unsigned int
hash (str, len)
     register const char *str;
     register unsigned int len;
{
  static const unsigned short asso_values[] =
    {
      1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
      1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
      1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
      1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
      1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,    0,    1,
         0, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
      1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
      1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
      1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
      1038, 1038, 1038, 1038, 1038, 1038, 1038,  247,  218,  144,
         0,    0,   40,    7,  126,  184,    2,   15,  146,   67,
         9,   60,    0,    0,    3,    0,    7,    8,  197,    1,
        40,    8, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
      1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
      1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
      1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
      1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
      1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
      1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
      1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
      1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
      1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
      1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
      1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
      1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
      1038, 1038, 1038, 1038, 1038, 1038
    };
  register int hval = len;

  switch (hval)
    {
      default:
      case 6:
        hval += asso_values[(unsigned char)str[5]];
      case 5:
        hval += asso_values[(unsigned char)str[4]];
      case 4:
        hval += asso_values[(unsigned char)str[3]];
      case 3:
        hval += asso_values[(unsigned char)str[2]];
      case 2:
        hval += asso_values[(unsigned char)str[1]];
      case 1:
        hval += asso_values[(unsigned char)str[0]];
        break;
    }
  return hval + asso_values[(unsigned char)str[len - 1]];
}

#ifdef __GNUC__
__inline
#endif
const char *
libc_name_p (str, len)
     register const char *str;
     register unsigned int len;
{
  enum
    {
      TOTAL_KEYWORDS = 207,
      MIN_WORD_LENGTH = 3,
      MAX_WORD_LENGTH = 10,
      MIN_HASH_VALUE = 18,
      MAX_HASH_VALUE = 1037
    };

  static const char * const wordlist[] =
    {
      "gets",
      "puts",
      "sqrt",
      "strerror",
      "strstr",
      "strspn",
      "exp",
      "free",
      "fgets",
      "fputs",
      "fgetws",
      "fputws",
      "pow",
      "fseek",
      "perror",
      "strtod",
      "toupper",
      "towupper",
      "frexp",
      "strtok",
      "fsetpos",
      "ferror",
      "freopen",
      "fgetpos",
      "fopen",
      "wmemset",
      "memset",
      "system",
      "wcsstr",
      "wctype",
      "strxfrm",
      "wcsspn",
      "strcspn",
      "fmod",
      "strcpy",
      "strncpy",
      "strlen",
      "ungetwc",
      "feof",
      "ldexp",
      "isupper",
      "rewind",
      "iswupper",
      "sin",
      "cos",
      "modf",
      "iswpunct",
      "wcstod",
      "log10",
      "log",
      "wcsrtombs",
      "strcmp",
      "fwide",
      "towctrans",
      "strncmp",
      "strtoul",
      "fwrite",
      "exit",
      "swprintf",
      "wcstok",
      "strftime",
      "sprintf",
      "wprintf",
      "strpbrk",
      "time",
      "rand",
      "srand",
      "wmemmove",
      "tan",
      "tolower",
      "fwprintf",
      "towlower",
      "wcstombs",
      "printf",
      "fprintf",
      "strchr",
      "strrchr",
      "wmemcpy",
      "fread",
      "getwchar",
      "putwchar",
      "longjmp",
      "memcpy",
      "wcsxfrm",
      "wcscspn",
      "getc",
      "putc",
      "getwc",
      "putwc",
      "wcscpy",
      "wcsncpy",
      "wcslen",
      "floor",
      "setbuf",
      "ungetc",
      "rename",
      "remove",
      "gmtime",
      "mktime",
      "fgetc",
      "fputc",
      "fgetwc",
      "fputwc",
      "memcmp",
      "iswctype",
      "wmemcmp",
      "ispunct",
      "mbstowcs",
      "wcscmp",
      "mbsrtowcs",
      "setlocale",
      "wcsncmp",
      "wcstoul",
      "strtol",
      "wcsftime",
      "iswprint",
      "wcspbrk",
      "iswdigit",
      "isprint",
      "fclose",
      "atof",
      "islower",
      "iswlower",
      "ctime",
      "wmemchr",
      "memchr",
      "wctrans",
      "strcat",
      "getenv",
      "strncat",
      "iswxdigit",
      "wcschr",
      "wcsrchr",
      "isxdigit",
      "vswprintf",
      "raise",
      "iswspace",
      "vsprintf",
      "vwprintf",
      "vprintf",
      "swscanf",
      "sinh",
      "tmpfile",
      "asin",
      "mblen",
      "acos",
      "mbrlen",
      "cosh",
      "difftime",
      "memmove",
      "abs",
      "tmpnam",
      "vfwprintf",
      "setvbuf",
      "vfprintf",
      "scanf",
      "sscanf",
      "wscanf",
      "fwscanf",
      "ftell",
      "fflush",
      "atexit",
      "iswcntrl",
      "iscntrl",
      "mbrtowc",
      "wcrtomb",
      "fabs",
      "wcstol",
      "strcoll",
      "atan2",
      "tanh",
      "atan",
      "fscanf",
      "clock",
      "getchar",
      "putchar",
      "abort",
      "clearerr",
      "wcscat",
      "wcsncat",
      "isdigit",
      "isgraph",
      "iswgraph",
      "btowc",
      "div",
      "isspace",
      "atol",
      "labs",
      "ceil",
      "mbtowc",
      "wcscoll",
      "wctob",
      "asctime",
      "iswalnum",
      "isalnum",
      "mbsinit",
      "atoi",
      "wctomb",
      "ldiv",
      "signal",
      "realloc",
      "localtime",
      "iswalpha",
      "localeconv",
      "isalpha",
      "malloc",
      "calloc"
    };

  static const short lookup[] =
    {
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,    0,    1,   -1,    2,   -1,   -1,
        -1,   -1,   -1,    3,   -1,    4,   -1,   -1,
        -1,   -1,    5,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,    6,   -1,   -1,   -1,    7,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,    8,    9,   10,   11,   -1,
        -1,   12,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   13,   -1,   -1,   14,   -1,
        -1,   -1,   -1,   15,   -1,   16,   -1,   17,
        18,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   19,   20,   -1,   -1,   -1,   21,   22,
        -1,   23,   -1,   24,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   25,   -1,   -1,
        -1,   -1,   26,   27,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   28,   -1,   29,   30,
        -1,   31,   32,   33,   -1,   -1,   -1,   -1,
        34,   -1,   35,   -1,   36,   -1,   -1,   37,
        38,   -1,   -1,   -1,   -1,   -1,   -1,   39,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   40,   41,   42,   43,   -1,   44,
        -1,   -1,   -1,   45,   -1,   -1,   -1,   -1,
        -1,   46,   47,   48,   -1,   -1,   -1,   49,
        50,   -1,   -1,   51,   -1,   -1,   52,   53,
        -1,   -1,   -1,   -1,   -1,   54,   55,   -1,
        -1,   56,   57,   -1,   -1,   58,   -1,   -1,
        59,   60,   61,   62,   -1,   63,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   64,   65,
        66,   -1,   -1,   -1,   -1,   -1,   67,   -1,
        -1,   -1,   -1,   68,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   69,   70,   71,   72,
        -1,   73,   74,   -1,   75,   76,   77,   78,
        79,   80,   81,   -1,   82,   -1,   83,   -1,
        -1,   84,   85,   86,   87,   88,   -1,   89,
        -1,   90,   -1,   91,   -1,   92,   -1,   93,
        -1,   -1,   -1,   -1,   -1,   94,   -1,   -1,
        -1,   -1,   -1,   -1,   95,   96,   -1,   -1,
        -1,   -1,   97,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   98,   99,  100,  101,  102,  103,
       104,  105,   -1,   -1,   -1,   -1,   -1,  106,
        -1,  107,  108,   -1,  109,   -1,  110,   -1,
        -1,   -1,   -1,   -1,  111,  112,   -1,  113,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
       114,   -1,   -1,  115,  116,   -1,   -1,  117,
        -1,   -1,  118,   -1,  119,   -1,  120,   -1,
        -1,  121,   -1,  122,   -1,   -1,   -1,  123,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,  124,
       125,   -1,  126,   -1,   -1,  127,   -1,  128,
       129,  130,   -1,  131,  132,   -1,  133,   -1,
        -1,   -1,  134,   -1,   -1,   -1,   -1,  135,
       136,  137,  138,   -1,   -1,   -1,   -1,  139,
       140,  141,   -1,  142,   -1,  143,  144,  145,
        -1,   -1,  146,   -1,  147,   -1,   -1,  148,
        -1,  149,   -1,   -1,  150,   -1,  151,   -1,
        -1,   -1,  152,   -1,   -1,  153,   -1,   -1,
        -1,  154,   -1,   -1,   -1,  155,  156,  157,
       158,   -1,  159,   -1,  160,   -1,   -1,   -1,
        -1,   -1,  161,  162,  163,   -1,   -1,   -1,
        -1,   -1,   -1, -719,   -1,  166,  167,  -43,
        -2,  168,   -1,  169,   -1,   -1,   -1,  170,
        -1,   -1,   -1,  171,   -1,   -1,  172,   -1,
        -1,  173,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,  174,  175,   -1,
        -1,   -1,   -1,  176,   -1,   -1,   -1,  177,
        -1,   -1,   -1,   -1,  178,   -1,   -1,  179,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,  180,  181,   -1,
       182,   -1,   -1,  183,   -1,  184,  185,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,  186,   -1,   -1,   -1,   -1,  187,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
       188,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,  189,
       190,   -1,   -1,   -1,   -1,  191,   -1,   -1,
       192,   -1,   -1,   -1,   -1,   -1,  193,   -1,
        -1,   -1,   -1,   -1,  194,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,  195,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,  196,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,  197,   -1,   -1,   -1,   -1,   -1,   -1,
       198,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,  199,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,  200,   -1,   -1,   -1,   -1,   -1,  201,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,  202,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,  203,   -1,
        -1,   -1,   -1,   -1,   -1,  204,   -1,   -1,
       205,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,  206
    };

  if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
    {
      register int key = hash (str, len);

      if (key <= MAX_HASH_VALUE && key >= 0)
        {
          register int index = lookup[key];

          if (index >= 0)
            {
              register const char *s = wordlist[index];

              if (*str == *s && !strcmp (str + 1, s + 1))
                return s;
            }
          else if (index < -TOTAL_KEYWORDS)
            {
              register int offset = - 1 - TOTAL_KEYWORDS - index;
              register const char * const *wordptr = &wordlist[TOTAL_KEYWORDS + lookup[offset]];
              register const char * const *wordendptr = wordptr + -lookup[offset + 1];

              while (wordptr < wordendptr)
                {
                  register const char *s = *wordptr;

                  if (*str == *s && !strcmp (str + 1, s + 1))
                    return s;
                  wordptr++;
                }
            }
        }
    }
  return 0;
}