/*  -*- buffer-read-only: t -*- vi: set ro:
 *
 *DO NOT EDIT THIS FILE   (fixincl.x)
 *
 *It has been AutoGen-ed  August 13, 2015 at 05:25:50 PM by AutoGen 5.18.3
 *From the definitions    inclhack.def
 *and the template file   fixincl
 */
/* DO NOT SVN-MERGE THIS FILE, EITHER Thu Aug 13 17:25:50 UTC 2015
 *
 * You must regenerate it.  Use the ./genfixes script.
 *
 *
 * This is part of the fixincl program used to install modified versions of
 * certain ANSI-incompatible system header files which are fixed to work
 * correctly with ANSI C and placed in a directory that GNU C will search.
 *
 * This file contains 230 fixup descriptions.
 *
 * See README for more information.
 *
 *  inclhack copyright (c) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
 *                         2006, 2007, 2008
 *  The Free Software Foundation, Inc.
 *
 *  inclhack is free software: you can redistribute it and/or modify it
 *  under the terms of the GNU General Public License as published by the
 *  Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *  
 *  inclhack is distributed in the hope that it will be useful, but
 *  WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 *  See the GNU General Public License for more details.
 *  
 *  You should have received a copy of the GNU General Public License along
 *  with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
#ifndef SED_PROGRAM
#define SED_PROGRAM "/usr/bin/sed"
#endif
static char const sed_cmd_z[] = SED_PROGRAM;

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aab_Aix_Stdio fix
 */
tSCC zAab_Aix_StdioName[] =
     "AAB_aix_stdio";

/*
 *  File name selection pattern
 */
tSCC zAab_Aix_StdioList[] =
  "stdio.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAab_Aix_StdioMachs[] = {
        "*-*-aix*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAab_Aix_StdioSelect0[] =
       "define fopen fopen64";

#define    AAB_AIX_STDIO_TEST_CT  1
static tTestDesc aAab_Aix_StdioTests[] = {
  { TT_EGREP,    zAab_Aix_StdioSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aab_Aix_Stdio
 */
static const char* apzAab_Aix_StdioPatch[] = {
    "wrap",
    "",
    "\n\
#if defined __GNUG__ && defined _LARGE_FILES && defined __cplusplus\n\
#define __need__aix_stdio_h_fix\n\
#ifdef __need__aix_stdio_h_fix\n\
#undef fseeko\n\
#undef ftello\n\
#undef fgetpos\n\
#undef fsetpos\n\
#undef fopen\n\
#undef freopen\n\
/* Alias the symbols using asm */\n\
extern \"C\" {\n\
extern int fgetpos(FILE *, fpos64_t *) __asm__(\"fgetpos64\");\n\
extern FILE *fopen(const char *, const char *) __asm__(\"fopen64\");\n\
extern FILE *freopen(const char *, const char *, FILE *) __asm__(\"freopen64\");\n\
extern int fseeko(FILE *, off64_t, int) __asm__(\"fseeko64\");\n\
extern int fsetpos(FILE *, const fpos64_t *) __asm__(\"fsetpos64\");\n\
extern off64_t ftello(FILE *) __asm__(\"ftello64\");\n\
}\n\
#endif\n\
#endif\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aab_Aix_Fcntl fix
 */
tSCC zAab_Aix_FcntlName[] =
     "AAB_aix_fcntl";

/*
 *  File name selection pattern
 */
tSCC zAab_Aix_FcntlList[] =
  "fcntl.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAab_Aix_FcntlMachs[] = {
        "*-*-aix*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAab_Aix_FcntlSelect0[] =
       "define open[ \t]open64";

#define    AAB_AIX_FCNTL_TEST_CT  1
static tTestDesc aAab_Aix_FcntlTests[] = {
  { TT_EGREP,    zAab_Aix_FcntlSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aab_Aix_Fcntl
 */
static const char* apzAab_Aix_FcntlPatch[] = {
    "wrap",
    "",
    "\n\
#if defined __GNUG__ && defined _LARGE_FILES && defined __cplusplus\n\
#define __need__aix_fcntl_h_fix\n\
#ifdef __need__aix_fcntl_h_fix\n\
#undef open\n\
#undef creat\n\
#undef openat\n\
/* Alias the symbols using asm */\n\
extern \"C\" {\n\
extern int open(const char *, int, ...) __asm__(\"open64\");\n\
extern int creat(const char *, mode_t) __asm__(\"creat64\");\n\
#if (_XOPEN_SOURCE >= 700)\n\
extern int openat(int, const char *, int, ...) __asm__(\"open64at\");\n\
#endif\n\
}\n\
#endif\n\
#endif\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aab_Darwin7_9_Long_Double_Funcs fix
 */
tSCC zAab_Darwin7_9_Long_Double_FuncsName[] =
     "AAB_darwin7_9_long_double_funcs";

/*
 *  File name selection pattern
 */
tSCC zAab_Darwin7_9_Long_Double_FuncsList[] =
  "architecture/ppc/math.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAab_Darwin7_9_Long_Double_FuncsMachs[] = {
        "*-*-darwin7.9*",
        (const char*)NULL };

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zAab_Darwin7_9_Long_Double_FuncsBypass0[] =
       "powl";

#define    AAB_DARWIN7_9_LONG_DOUBLE_FUNCS_TEST_CT  1
static tTestDesc aAab_Darwin7_9_Long_Double_FuncsTests[] = {
  { TT_NEGREP,   zAab_Darwin7_9_Long_Double_FuncsBypass0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aab_Darwin7_9_Long_Double_Funcs
 */
static const char* apzAab_Darwin7_9_Long_Double_FuncsPatch[] = {
"/* This file prototypes the long double functions available on Mac OS\n\
   10.3.9.  */\n\
#ifndef __MATH__\n\
# undef __APPLE_CC__\n\
# define __APPLE_CC__  1345\n\
# include_next <architecture/ppc/math.h>\n\
# undef __APPLE_CC__\n\
# define __APPLE_CC__ 1\n\
# ifndef __LIBMLDBL_COMPAT\n\
#  ifdef __LONG_DOUBLE_128__\n\
#   define __LIBMLDBL_COMPAT(sym) __asm(\"_\" #sym \"$LDBL128\")\n\
#  else\n\
#   define __LIBMLDBL_COMPAT(sym)\n\
#  endif /* __LONG_DOUBLE_128__ */\n\
# endif /* __LIBMLDBL_COMPAT */\n\
# ifdef __cplusplus\n\
   extern \"C\" {\n\
# endif\n\
  extern long double acosl( long double ) __LIBMLDBL_COMPAT(acosl);\n\
  extern long double asinl( long double ) __LIBMLDBL_COMPAT(asinl);\n\
  extern long double atanl( long double ) __LIBMLDBL_COMPAT(atanl);\n\
  extern long double atan2l( long double, long double ) __LIBMLDBL_COMPAT(atan2l);\n\
  extern long double cosl( long double ) __LIBMLDBL_COMPAT(cosl);\n\
  extern long double sinl( long double ) __LIBMLDBL_COMPAT(sinl);\n\
  extern long double tanl( long double ) __LIBMLDBL_COMPAT(tanl);\n\
  extern long double acoshl( long double ) __LIBMLDBL_COMPAT(acoshl);\n\
  extern long double asinhl( long double ) __LIBMLDBL_COMPAT(asinhl);\n\
  extern long double atanhl( long double ) __LIBMLDBL_COMPAT(atanhl);\n\
  extern long double coshl( long double ) __LIBMLDBL_COMPAT(coshl);\n\
  extern long double sinhl( long double ) __LIBMLDBL_COMPAT(sinhl);\n\
  extern long double tanhl( long double ) __LIBMLDBL_COMPAT(tanhl);\n\
  extern long double expl( long double ) __LIBMLDBL_COMPAT(expl);\n\
  extern long double exp2l( long double ) __LIBMLDBL_COMPAT(exp2l);\n\
  extern long double expm1l( long double ) __LIBMLDBL_COMPAT(expm1l);\n\
  extern long double logl( long double ) __LIBMLDBL_COMPAT(logl);\n\
  extern long double log10l( long double ) __LIBMLDBL_COMPAT(log10l);\n\
  extern long double log2l( long double ) __LIBMLDBL_COMPAT(log2l);\n\
  extern long double log1pl( long double ) __LIBMLDBL_COMPAT(log1pl);\n\
  extern long double logbl( long double ) __LIBMLDBL_COMPAT(logbl);\n\
  extern long double modfl( long double, long double * ) __LIBMLDBL_COMPAT(modfl);\n\
  extern long double ldexpl( long double, int ) __LIBMLDBL_COMPAT(ldexpl);\n\
  extern long double frexpl( long double, int * ) __LIBMLDBL_COMPAT(frexpl);\n\
  extern int ilogbl( long double ) __LIBMLDBL_COMPAT(ilogbl);\n\
  extern long double scalbnl( long double, int ) __LIBMLDBL_COMPAT(scalbnl);\n\
  extern long double scalblnl( long double, long int ) __LIBMLDBL_COMPAT(scalblnl);\n\
  extern long double fabsl( long double ) __LIBMLDBL_COMPAT(fabsl);\n\
  extern long double cbrtl( long double ) __LIBMLDBL_COMPAT(cbrtl);\n\
  extern long double hypotl( long double, long double ) __LIBMLDBL_COMPAT(hypotl);\n\
  extern long double powl( long double, long double ) __LIBMLDBL_COMPAT(powl);\n\
  extern long double sqrtl( long double ) __LIBMLDBL_COMPAT(sqrtl);\n\
  extern long double erfl( long double ) __LIBMLDBL_COMPAT(erfl);\n\
  extern long double erfcl( long double ) __LIBMLDBL_COMPAT(erfcl);\n\
  extern long double lgammal( long double ) __LIBMLDBL_COMPAT(lgammal);\n\
  extern long double tgammal( long double ) __LIBMLDBL_COMPAT(tgammal);\n\
  extern long double ceill( long double ) __LIBMLDBL_COMPAT(ceill);\n\
  extern long double floorl( long double ) __LIBMLDBL_COMPAT(floorl);\n\
  extern long double nearbyintl( long double ) __LIBMLDBL_COMPAT(nearbyintl);\n\
  extern long double rintl( long double ) __LIBMLDBL_COMPAT(rintl);\n\
  extern long int lrintl( long double ) __LIBMLDBL_COMPAT(lrintl);\n\
  extern long long int llrintl( long double ) __LIBMLDBL_COMPAT(llrintl);\n\
  extern long double roundl( long double ) __LIBMLDBL_COMPAT(roundl);\n\
  extern long int lroundl( long double ) __LIBMLDBL_COMPAT(lroundl);\n\
  extern long long int llroundl( long double ) __LIBMLDBL_COMPAT(llroundl);\n\
  extern long double truncl( long double ) __LIBMLDBL_COMPAT(truncl);\n\
  extern long double fmodl( long double, long double) __LIBMLDBL_COMPAT(fmodl);\n\
  extern long double remainderl( long double, long double ) __LIBMLDBL_COMPAT(remainderl);\n\
  extern long double remquol( long double, long double, int * ) __LIBMLDBL_COMPAT(remquol);\n\
  extern long double copysignl( long double, long double ) __LIBMLDBL_COMPAT(copysignl);\n\
  extern long double nanl( const char * ) __LIBMLDBL_COMPAT(nanl);\n\
  extern long double nextafterl( long double, long double ) __LIBMLDBL_COMPAT(nextafterl);\n\
  extern long double nexttowardl( long double, long double ) __LIBMLDBL_COMPAT(nexttowardl);\n\
  extern long double fdiml( long double, long double ) __LIBMLDBL_COMPAT(fdiml);\n\
  extern long double fmaxl( long double, long double ) __LIBMLDBL_COMPAT(fmaxl);\n\
  extern long double fminl( long double, long double ) __LIBMLDBL_COMPAT(fminl);\n\
  extern long double fmal( long double, long double, long double ) __LIBMLDBL_COMPAT(fmal);\n\
# ifdef __cplusplus\n\
   }\n\
# endif\n\
#endif /* __MATH__ */",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aab_Fd_Zero_Asm_Posix_Types_H fix
 */
tSCC zAab_Fd_Zero_Asm_Posix_Types_HName[] =
     "AAB_fd_zero_asm_posix_types_h";

/*
 *  File name selection pattern
 */
tSCC zAab_Fd_Zero_Asm_Posix_Types_HList[] =
  "asm/posix_types.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAab_Fd_Zero_Asm_Posix_Types_HMachs[] = {
        "i[34567]86-*-linux*",
        (const char*)NULL };

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zAab_Fd_Zero_Asm_Posix_Types_HBypass0[] =
       "} while";
tSCC zAab_Fd_Zero_Asm_Posix_Types_HBypass1[] =
       "x86_64";
tSCC zAab_Fd_Zero_Asm_Posix_Types_HBypass2[] =
       "posix_types_64";

#define    AAB_FD_ZERO_ASM_POSIX_TYPES_H_TEST_CT  3
static tTestDesc aAab_Fd_Zero_Asm_Posix_Types_HTests[] = {
  { TT_NEGREP,   zAab_Fd_Zero_Asm_Posix_Types_HBypass0, (regex_t*)NULL },
  { TT_NEGREP,   zAab_Fd_Zero_Asm_Posix_Types_HBypass1, (regex_t*)NULL },
  { TT_NEGREP,   zAab_Fd_Zero_Asm_Posix_Types_HBypass2, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aab_Fd_Zero_Asm_Posix_Types_H
 */
static const char* apzAab_Fd_Zero_Asm_Posix_Types_HPatch[] = {
"/* This file fixes a bug in the __FD_ZERO macro\n\
   for older versions of the Linux kernel. */\n\
#ifndef _POSIX_TYPES_H_WRAPPER\n\
#include <features.h>\n\
 #include_next <asm/posix_types.h>\n\n\
#if defined(__FD_ZERO) && !defined(__GLIBC__)\n\
#undef __FD_ZERO\n\
#define __FD_ZERO(fdsetp) \\\n\
  do { \\\n\
    int __d0, __d1; \\\n\
__asm__ __volatile__(\"cld ; rep ; stosl\" \\\n\
: \"=&c\" (__d0), \"=&D\" (__d1) \\\n\
: \"a\" (0), \"0\" (__FDSET_LONGS), \\\n\
  \"1\" ((__kernel_fd_set *) (fdsetp)) :\"memory\"); \\\n\
  } while (0)\n\
#endif\n\n\
#define _POSIX_TYPES_H_WRAPPER\n\
#endif /* _POSIX_TYPES_H_WRAPPER */",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aab_Fd_Zero_Gnu_Types_H fix
 */
tSCC zAab_Fd_Zero_Gnu_Types_HName[] =
     "AAB_fd_zero_gnu_types_h";

/*
 *  File name selection pattern
 */
tSCC zAab_Fd_Zero_Gnu_Types_HList[] =
  "gnu/types.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAab_Fd_Zero_Gnu_Types_HMachs[] = {
        "i[34567]86-*-linux*",
        (const char*)NULL };
#define AAB_FD_ZERO_GNU_TYPES_H_TEST_CT  0
#define aAab_Fd_Zero_Gnu_Types_HTests   (tTestDesc*)NULL

/*
 *  Fix Command Arguments for Aab_Fd_Zero_Gnu_Types_H
 */
static const char* apzAab_Fd_Zero_Gnu_Types_HPatch[] = {
"/* This file fixes a bug in the __FD_ZERO macro present in glibc 1.x. */\n\
#ifndef _TYPES_H_WRAPPER\n\
#include <features.h>\n\
#include_next <gnu/types.h>\n\n\
#if defined(__FD_ZERO) && !defined(__GLIBC__)\n\
#undef __FD_ZERO\n\
# define __FD_ZERO(fdsetp) \\\n\
  do { \\\n\
    int __d0, __d1; \\\n\
        __asm__ __volatile__(\"cld ; rep ; stosl\" \\\n\
        : \"=&c\" (__d0), \"=&D\" (__d1) \\\n\
        : \"a\" (0), \"0\" (__FDSET_LONGS), \\\n\
          \"1\" ((__fd_set *) (fdsetp)) :\"memory\"); \\\n\
  } while (0)\n\
#endif\n\n\
#define _TYPES_H_WRAPPER\n\
#endif /* _TYPES_H_WRAPPER */",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aab_Fd_Zero_Selectbits_H fix
 */
tSCC zAab_Fd_Zero_Selectbits_HName[] =
     "AAB_fd_zero_selectbits_h";

/*
 *  File name selection pattern
 */
tSCC zAab_Fd_Zero_Selectbits_HList[] =
  "selectbits.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAab_Fd_Zero_Selectbits_HMachs[] = {
        "i[34567]86-*-linux*",
        (const char*)NULL };
#define AAB_FD_ZERO_SELECTBITS_H_TEST_CT  0
#define aAab_Fd_Zero_Selectbits_HTests   (tTestDesc*)NULL

/*
 *  Fix Command Arguments for Aab_Fd_Zero_Selectbits_H
 */
static const char* apzAab_Fd_Zero_Selectbits_HPatch[] = {
"/* This file fixes a bug in the __FD_ZERO macro present in glibc 2.0.x. */\n\
#ifndef _SELECTBITS_H_WRAPPER\n\
  #include <features.h>\n\
  #include_next <selectbits.h>\n\n\
  #if defined(__FD_ZERO) && defined(__GLIBC__) \\\\\n\
  && defined(__GLIBC_MINOR__) && __GLIBC__ == 2 \\\\\n\
  && __GLIBC_MINOR__ == 0\n\
     #undef __FD_ZERO\n\
     #define __FD_ZERO(fdsetp) \\\\\n\
     do { \\\\\n\
        int __d0, __d1; \\\\\n\
      __asm__ __volatile__ (\"cld; rep; stosl\" \\\\\n\
                        : \"=&c\" (__d0), \"=&D\" (__d1) \\\\\n\
                        : \"a\" (0), \"0\" (sizeof (__fd_set) \\\\\n\
                                        / sizeof (__fd_mask)), \\\\\n\
                          \"1\" ((__fd_mask *) (fdsetp)) \\\\\n\
                        : \"memory\"); \\\\\n\
      } while (0)\n\
  #endif\n\n\
  #define _SELECTBITS_H_WRAPPER\n\
#endif /* _SELECTBITS_H_WRAPPER */",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aab_Solaris_Sys_Varargs_H fix
 */
tSCC zAab_Solaris_Sys_Varargs_HName[] =
     "AAB_solaris_sys_varargs_h";

/*
 *  File name selection pattern
 */
tSCC zAab_Solaris_Sys_Varargs_HList[] =
  "sys/varargs.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAab_Solaris_Sys_Varargs_HMachs[] = {
        "*-*-solaris*",
        (const char*)NULL };
#define AAB_SOLARIS_SYS_VARARGS_H_TEST_CT  0
#define aAab_Solaris_Sys_Varargs_HTests   (tTestDesc*)NULL

/*
 *  Fix Command Arguments for Aab_Solaris_Sys_Varargs_H
 */
static const char* apzAab_Solaris_Sys_Varargs_HPatch[] = {
"#ifdef __STDC__\n\
  #include <stdarg.h>\n\
#else\n\
  #include <varargs.h>\n\
#endif",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aab_Sun_Memcpy fix
 */
tSCC zAab_Sun_MemcpyName[] =
     "AAB_sun_memcpy";

/*
 *  File name selection pattern
 */
tSCC zAab_Sun_MemcpyList[] =
  "memory.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzAab_Sun_MemcpyMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAab_Sun_MemcpySelect0[] =
       "/\\*\t@\\(#\\)(head/memory.h\t50.1\t |memory\\.h 1\\.[2-4] 8./../.. SMI; from S5R2 1\\.2\t)\\*/";

#define    AAB_SUN_MEMCPY_TEST_CT  1
static tTestDesc aAab_Sun_MemcpyTests[] = {
  { TT_EGREP,    zAab_Sun_MemcpySelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aab_Sun_Memcpy
 */
static const char* apzAab_Sun_MemcpyPatch[] = {
"/* This file was generated by fixincludes */\n\
#ifndef __memory_h__\n\
  #define __memory_h__\n\n\
  #ifdef __STDC__\n\
    extern void *memccpy();\n\
    extern void *memchr();\n\
    extern void *memcpy();\n\
    extern void *memset();\n\
  #else\n\
    extern char *memccpy();\n\
    extern char *memchr();\n\
    extern char *memcpy();\n\
    extern char *memset();\n\
  #endif /* __STDC__ */\n\n\
  extern int memcmp();\n\n\
#endif /* __memory_h__ */",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aab_Vxworks_Assert fix
 */
tSCC zAab_Vxworks_AssertName[] =
     "AAB_vxworks_assert";

/*
 *  File name selection pattern
 */
tSCC zAab_Vxworks_AssertList[] =
  "assert.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAab_Vxworks_AssertMachs[] = {
        "*-*-vxworks*",
        (const char*)NULL };
#define AAB_VXWORKS_ASSERT_TEST_CT  0
#define aAab_Vxworks_AssertTests   (tTestDesc*)NULL

/*
 *  Fix Command Arguments for Aab_Vxworks_Assert
 */
static const char* apzAab_Vxworks_AssertPatch[] = {
"#ifndef _ASSERT_H\n\
#define _ASSERT_H\n\n\
#ifdef assert\n\
#undef assert\n\
#endif\n\n\
#if defined(__STDC__) || defined(__cplusplus)\n\
extern void __assert (const char*);\n\
#else\n\
extern void __assert ();\n\
#endif\n\n\
#ifdef NDEBUG\n\
#define assert(ign) ((void)0)\n\
#else\n\n\
#define ASSERT_STRINGIFY(str) ASSERT_STRINGIFY_HELPER(str)\n\
#define ASSERT_STRINGIFY_HELPER(str) #str\n\n\
#define assert(test) ((void) \\\n\
        ((test) ? ((void)0) : \\\n\
        __assert(\"Assertion failed: \" ASSERT_STRINGIFY(test) \", file \" \\\n\
        __FILE__ \", line \" ASSERT_STRINGIFY(__LINE__) \"\\n\")))\n\n\
#endif\n\n\
#endif",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aab_Vxworks_Regs_Vxtypes fix
 */
tSCC zAab_Vxworks_Regs_VxtypesName[] =
     "AAB_vxworks_regs_vxtypes";

/*
 *  File name selection pattern
 */
tSCC zAab_Vxworks_Regs_VxtypesList[] =
  "regs.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAab_Vxworks_Regs_VxtypesMachs[] = {
        "*-*-vxworks*",
        (const char*)NULL };
#define AAB_VXWORKS_REGS_VXTYPES_TEST_CT  0
#define aAab_Vxworks_Regs_VxtypesTests   (tTestDesc*)NULL

/*
 *  Fix Command Arguments for Aab_Vxworks_Regs_Vxtypes
 */
static const char* apzAab_Vxworks_Regs_VxtypesPatch[] = {
"#ifndef _REGS_H\n\
#define _REGS_H\n\
#include <types/vxTypesOld.h>\n\
#include_next <arch/../regs.h>\n\
#endif",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aab_Vxworks_Stdint fix
 */
tSCC zAab_Vxworks_StdintName[] =
     "AAB_vxworks_stdint";

/*
 *  File name selection pattern
 */
tSCC zAab_Vxworks_StdintList[] =
  "stdint.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAab_Vxworks_StdintMachs[] = {
        "*-*-vxworks*",
        (const char*)NULL };
#define AAB_VXWORKS_STDINT_TEST_CT  0
#define aAab_Vxworks_StdintTests   (tTestDesc*)NULL

/*
 *  Fix Command Arguments for Aab_Vxworks_Stdint
 */
static const char* apzAab_Vxworks_StdintPatch[] = {
"#ifndef _STDINT_H\n\
#define _STDINT_H\n\
/* get int*_t, uint*_t */\n\
#include <types/vxTypes.h>\n\n\
/* get legacy vxworks types for compatibility */\n\
#include <types/vxTypesOld.h>\n\n\
typedef long intptr_t;\n\
typedef unsigned long uintptr_t;\n\n\
typedef int64_t intmax_t;\n\
typedef uint64_t uintmax_t;\n\n\
typedef int8_t int_least8_t;\n\
typedef int16_t int_least16_t;\n\
typedef int32_t int_least32_t;\n\
typedef int64_t int_least64_t;\n\n\
typedef uint8_t uint_least8_t;\n\
typedef uint16_t uint_least16_t;\n\
typedef uint32_t uint_least32_t;\n\
typedef uint64_t uint_least64_t;\n\n\
typedef int8_t int_fast8_t;\n\
typedef int int_fast16_t;\n\
typedef int32_t int_fast32_t;\n\
typedef int64_t int_fast64_t;\n\n\
typedef uint8_t uint_fast8_t;\n\
typedef unsigned int uint_fast16_t;\n\
typedef uint32_t uint_fast32_t;\n\
typedef uint64_t uint_fast64_t;\n\n\
/* Ranges */\n\
#define UINT8_MAX (~(uint8_t)0)\n\
#define UINT8_MIN 0\n\
#define UINT16_MAX (~(uint16_t)0)\n\
#define UINT16_MIN 0\n\
#define UINT32_MAX (~(uint32_t)0)\n\
#define UINT32_MIN 0\n\
#define UINT64_MAX (~(uint64_t)0)\n\
#define UINT64_MIN 0\n\n\
#define UINTPTR_MAX (~(uintptr_t)0)\n\
#define UINTPTR_MIN 0\n\n\
/* Need to do int_fast16_t as well, as type\n\
   size may be architecture dependent */\n\
#define UINT_FAST16_MAX (~(uint_fast16_t)0)\n\
#define UINT_FAST16_MAX 0\n\n\
#define INT8_MAX (UINT8_MAX>>1)\n\
#define INT8_MIN (INT8_MAX+1)\n\
#define INT16_MAX (UINT16_MAX>>1)\n\
#define INT16_MIN (INT16_MAX+1)\n\
#define INT32_MAX (UINT32_MAX>>1)\n\
#define INT32_MIN (INT32_MAX+1)\n\
#define INT64_MAX (UINT64_MAX>>1)\n\
#define INT64_MIN (INT64_MAX+1)\n\n\
#define INTPTR_MAX (UINTPTR_MAX>>1)\n\
#define INTPTR_MIN (INTPTR_MAX+1)\t\n\n\
#define INT_FAST16_MAX (UINT_FAST16_MAX>>1)\n\
#define INT_FAST16_MIN (INT_FAST16_MAX+1)\n\n\
/* now define equiv. constants */\n\
#define UINT_FAST8_MAX UINT8_MAX\n\
#define UINT_FAST8_MIN UINT_FAST8_MIN\n\
#define INT_FAST8_MAX INT8_MAX\n\
#define INT_FAST8_MIN INT8_MIN\n\
#define UINT_FAST32_MAX UINT32_MAX\n\
#define UINT_FAST32_MIN UINT32_MIN\n\
#define INT_FAST32_MAX INT32_MAX\n\
#define INT_FAST32_MIN INT32_MIN\n\
#define UINT_FAST64_MAX UINT64_MAX\n\
#define UINT_FAST64_MIN UINT64_MIN\n\
#define INT_FAST64_MAX INT64_MAX\n\
#define INT_FAST64_MIN INT64_MIN\n\n\
#define UINT_LEAST8_MAX UINT8_MAX\n\
#define UINT_LEAST8_MIN UINT8_MIN\n\
#define INT_LEAST8_MAX INT8_MAX\n\
#define INT_LEAST8_MIN INT8_MIN\n\
#define UINT_LEAST16_MAX UINT16_MAX\n\
#define UINT_LEAST16_MIN UINT16_MIN\n\
#define INT_LEAST16_MAX INT16_MAX\n\
#define INT_LEAST16_MIN INT16_MIN\n\
#define UINT_LEAST32_MAX UINT32_MAX\n\
#define UINT_LEAST32_MIN UINT32_MIN\n\
#define INT_LEAST32_MAX INT32_MAX\n\
#define INT_LEAST32_MIN INT32_MIN\n\
#define UINT_LEAST64_MAX UINT64_MAX\n\
#define UINT_LEAST64_MIN UINT64_MIN\n\
#define INT_LEAST64_MAX INT64_MAX\n\
#define INT_LEAST64_MIN INT64_MIN\n\n\
#define UINTMAX_MAX UINT64_MAX\n\
#define UINTMAX_MIN UINT64_MIN\n\
#define INTMAX_MAX INT64_MAX\n\
#define INTMAX_MIN INT64_MIN\n\n\
#endif",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aab_Vxworks_Unistd fix
 */
tSCC zAab_Vxworks_UnistdName[] =
     "AAB_vxworks_unistd";

/*
 *  File name selection pattern
 */
tSCC zAab_Vxworks_UnistdList[] =
  "unistd.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAab_Vxworks_UnistdMachs[] = {
        "*-*-vxworks*",
        (const char*)NULL };
#define AAB_VXWORKS_UNISTD_TEST_CT  0
#define aAab_Vxworks_UnistdTests   (tTestDesc*)NULL

/*
 *  Fix Command Arguments for Aab_Vxworks_Unistd
 */
static const char* apzAab_Vxworks_UnistdPatch[] = {
"#ifndef _UNISTD_H\n\
#define _UNISTD_H\n\
#include_next <unistd.h>\n\
#include <ioLib.h>\n\
#ifndef STDIN_FILENO\n\
#define STDIN_FILENO 0\n\
#endif\n\
#ifndef STDOUT_FILENO\n\
#define STDOUT_FILENO 1\n\
#endif\n\
#ifndef STDERR_FILENO\n\
#define STDERR_FILENO 2\n\
#endif\n\
#endif /* _UNISTD_H */",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aix_Assert fix
 */
tSCC zAix_AssertName[] =
     "aix_assert";

/*
 *  File name selection pattern
 */
tSCC zAix_AssertList[] =
  "assert.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAix_AssertMachs[] = {
        "*-*-aix*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAix_AssertSelect0[] =
       "#define[ \t]static_assert[ \t]_Static_assert";

#define    AIX_ASSERT_TEST_CT  1
static tTestDesc aAix_AssertTests[] = {
  { TT_EGREP,    zAix_AssertSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aix_Assert
 */
static const char* apzAix_AssertPatch[] = {
    "format",
    "#ifndef __cplusplus\n\
%0\n\
#endif",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aix_Complex fix
 */
tSCC zAix_ComplexName[] =
     "aix_complex";

/*
 *  File name selection pattern
 */
tSCC zAix_ComplexList[] =
  "complex.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAix_ComplexMachs[] = {
        "*-*-aix*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAix_ComplexSelect0[] =
       "#define[ \t]_Complex_I[ \t]__I";

#define    AIX_COMPLEX_TEST_CT  1
static tTestDesc aAix_ComplexTests[] = {
  { TT_EGREP,    zAix_ComplexSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aix_Complex
 */
static const char* apzAix_ComplexPatch[] = {
    "format",
    "#define _Complex_I (__extension__ 1.0iF)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aix_Externc fix
 */
tSCC zAix_ExterncName[] =
     "aix_externc";

/*
 *  File name selection pattern
 */
tSCC zAix_ExterncList[] =
  "ctype.h\0fcntl.h\0langinfo.h\0ldfcn.h\0sys/localedef.h\0sys/times.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAix_ExterncMachs[] = {
        "*-*-aix*",
        (const char*)NULL };

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zAix_ExterncBypass0[] =
       "extern \"C\"";

#define    AIX_EXTERNC_TEST_CT  1
static tTestDesc aAix_ExterncTests[] = {
  { TT_NEGREP,   zAix_ExterncBypass0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aix_Externc
 */
static const char* apzAix_ExterncPatch[] = {
    "wrap",
    "#ifdef __cplusplus\n\
extern \"C\" {\n\
#endif\n",
    "#ifdef __cplusplus\n\
}\n\
#endif\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aix_Externcpp1 fix
 */
tSCC zAix_Externcpp1Name[] =
     "aix_externcpp1";

/*
 *  File name selection pattern
 */
tSCC zAix_Externcpp1List[] =
  "sys/socket.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAix_Externcpp1Machs[] = {
        "*-*-aix*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAix_Externcpp1Select0[] =
       "#ifdef __cplusplus";

#define    AIX_EXTERNCPP1_TEST_CT  1
static tTestDesc aAix_Externcpp1Tests[] = {
  { TT_EGREP,    zAix_Externcpp1Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aix_Externcpp1
 */
static const char* apzAix_Externcpp1Patch[] = {
    "format",
    "#ifdef __cplusplus\n\
extern \"C++\" {",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aix_Externcpp2 fix
 */
tSCC zAix_Externcpp2Name[] =
     "aix_externcpp2";

/*
 *  File name selection pattern
 */
tSCC zAix_Externcpp2List[] =
  "sys/socket.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAix_Externcpp2Machs[] = {
        "*-*-aix*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAix_Externcpp2Select0[] =
       "#else  /\\* __cplusplus \\*/";

#define    AIX_EXTERNCPP2_TEST_CT  1
static tTestDesc aAix_Externcpp2Tests[] = {
  { TT_EGREP,    zAix_Externcpp2Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aix_Externcpp2
 */
static const char* apzAix_Externcpp2Patch[] = {
    "format",
    "} /* extern \"C++\" */\n\
#else  /* __cplusplus */",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aix_Malloc fix
 */
tSCC zAix_MallocName[] =
     "aix_malloc";

/*
 *  File name selection pattern
 */
tSCC zAix_MallocList[] =
  "malloc.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAix_MallocMachs[] = {
        "*-*-aix*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAix_MallocSelect0[] =
       "#ifdef __cplusplus";

#define    AIX_MALLOC_TEST_CT  1
static tTestDesc aAix_MallocTests[] = {
  { TT_EGREP,    zAix_MallocSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aix_Malloc
 */
static const char* apzAix_MallocPatch[] = {
    "format",
    "#if (defined(__cplusplus) && defined(__IBMCPP__))",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aix_Net_If_Arp fix
 */
tSCC zAix_Net_If_ArpName[] =
     "aix_net_if_arp";

/*
 *  File name selection pattern
 */
tSCC zAix_Net_If_ArpList[] =
  "net/if_arp.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAix_Net_If_ArpMachs[] = {
        "*-*-aix*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAix_Net_If_ArpSelect0[] =
       "^struct  fc_softc \\{";

#define    AIX_NET_IF_ARP_TEST_CT  1
static tTestDesc aAix_Net_If_ArpTests[] = {
  { TT_EGREP,    zAix_Net_If_ArpSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aix_Net_If_Arp
 */
static const char* apzAix_Net_If_ArpPatch[] = {
    "format",
    "typedef struct _fc_softc {",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aix_Null fix
 */
tSCC zAix_NullName[] =
     "aix_null";

/*
 *  File name selection pattern
 */
tSCC zAix_NullList[] =
  "curses.h\0dbm.h\0locale.h\0stdio.h\0stdlib.h\0string.h\0time.h\0unistd.h\0wchar.h\0sys/dir.h\0sys/param.h\0sys/types.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAix_NullMachs[] = {
        "*-*-aix*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAix_NullSelect0[] =
       "#define[ \t]+NULL[ \t]+\\(*0L*\\)*";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zAix_NullBypass0[] =
       "__null";

#define    AIX_NULL_TEST_CT  2
static tTestDesc aAix_NullTests[] = {
  { TT_NEGREP,   zAix_NullBypass0, (regex_t*)NULL },
  { TT_EGREP,    zAix_NullSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aix_Null
 */
static const char* apzAix_NullPatch[] = {
    "format",
    "#ifndef NULL\n\
#ifdef __cplusplus\n\
#ifdef __GNUG__\n\
#define NULL __null\n\
#else /* ! __GNUG__  */\n\
#define NULL 0L\n\
#endif /* __GNUG__  */\n\
#else /* ! __cplusplus  */\n\
#define NULL ((void *)0)\n\
#endif /* __cplusplus  */\n\
#endif /* !NULL  */",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aix_Once_Init_1 fix
 */
tSCC zAix_Once_Init_1Name[] =
     "aix_once_init_1";

/*
 *  File name selection pattern
 */
tSCC zAix_Once_Init_1List[] =
  "pthread.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAix_Once_Init_1Machs[] = {
        "*-*-aix*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAix_Once_Init_1Select0[] =
       "#define[ \t]PTHREAD_ONCE_INIT \\\\\n\
\\{ \\\\\n";

#define    AIX_ONCE_INIT_1_TEST_CT  1
static tTestDesc aAix_Once_Init_1Tests[] = {
  { TT_EGREP,    zAix_Once_Init_1Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aix_Once_Init_1
 */
static const char* apzAix_Once_Init_1Patch[] = {
    "format",
    "#define PTHREAD_ONCE_INIT \\\n\
{{ \\\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aix_Once_Init_2 fix
 */
tSCC zAix_Once_Init_2Name[] =
     "aix_once_init_2";

/*
 *  File name selection pattern
 */
tSCC zAix_Once_Init_2List[] =
  "pthread.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAix_Once_Init_2Machs[] = {
        "*-*-aix*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAix_Once_Init_2Select0[] =
       "[ \t]0 \\\\\n\
\\}\n";

#define    AIX_ONCE_INIT_2_TEST_CT  1
static tTestDesc aAix_Once_Init_2Tests[] = {
  { TT_EGREP,    zAix_Once_Init_2Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aix_Once_Init_2
 */
static const char* apzAix_Once_Init_2Patch[] = {
    "format",
    "\t0 \\\n\
}}\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aix_Mutex_Initializer_1 fix
 */
tSCC zAix_Mutex_Initializer_1Name[] =
     "aix_mutex_initializer_1";

/*
 *  File name selection pattern
 */
tSCC zAix_Mutex_Initializer_1List[] =
  "pthread.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAix_Mutex_Initializer_1Machs[] = {
        "*-*-aix*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAix_Mutex_Initializer_1Select0[] =
       "#define[ \t]PTHREAD_MUTEX_INITIALIZER \\\\\n\
\\{ \\\\\n";

#define    AIX_MUTEX_INITIALIZER_1_TEST_CT  1
static tTestDesc aAix_Mutex_Initializer_1Tests[] = {
  { TT_EGREP,    zAix_Mutex_Initializer_1Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aix_Mutex_Initializer_1
 */
static const char* apzAix_Mutex_Initializer_1Patch[] = {
    "format",
    "#define PTHREAD_MUTEX_INITIALIZER \\\n\
{{ \\\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aix_Cond_Initializer_1 fix
 */
tSCC zAix_Cond_Initializer_1Name[] =
     "aix_cond_initializer_1";

/*
 *  File name selection pattern
 */
tSCC zAix_Cond_Initializer_1List[] =
  "pthread.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAix_Cond_Initializer_1Machs[] = {
        "*-*-aix*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAix_Cond_Initializer_1Select0[] =
       "#define[ \t]PTHREAD_COND_INITIALIZER \\\\\n\
\\{ \\\\\n";

#define    AIX_COND_INITIALIZER_1_TEST_CT  1
static tTestDesc aAix_Cond_Initializer_1Tests[] = {
  { TT_EGREP,    zAix_Cond_Initializer_1Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aix_Cond_Initializer_1
 */
static const char* apzAix_Cond_Initializer_1Patch[] = {
    "format",
    "#define PTHREAD_COND_INITIALIZER \\\n\
{{ \\\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aix_Rwlock_Initializer_1 fix
 */
tSCC zAix_Rwlock_Initializer_1Name[] =
     "aix_rwlock_initializer_1";

/*
 *  File name selection pattern
 */
tSCC zAix_Rwlock_Initializer_1List[] =
  "pthread.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAix_Rwlock_Initializer_1Machs[] = {
        "*-*-aix*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAix_Rwlock_Initializer_1Select0[] =
       "#define[ \t]PTHREAD_RWLOCK_INITIALIZER \\\\\n\
\\{ \\\\\n";

#define    AIX_RWLOCK_INITIALIZER_1_TEST_CT  1
static tTestDesc aAix_Rwlock_Initializer_1Tests[] = {
  { TT_EGREP,    zAix_Rwlock_Initializer_1Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aix_Rwlock_Initializer_1
 */
static const char* apzAix_Rwlock_Initializer_1Patch[] = {
    "format",
    "#define PTHREAD_RWLOCK_INITIALIZER \\\n\
{{ \\\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aix_Pthread fix
 */
tSCC zAix_PthreadName[] =
     "aix_pthread";

/*
 *  File name selection pattern
 */
tSCC zAix_PthreadList[] =
  "pthread.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzAix_PthreadMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAix_PthreadSelect0[] =
       "(#define[\t ][A-Za-z_0-9]+)(\\\\\n\
[^A-Za-z_0-9 \t\n\
(])";

#define    AIX_PTHREAD_TEST_CT  1
static tTestDesc aAix_PthreadTests[] = {
  { TT_EGREP,    zAix_PthreadSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aix_Pthread
 */
static const char* apzAix_PthreadPatch[] = {
    "format",
    "%1 %2",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aix_Stdint_1 fix
 */
tSCC zAix_Stdint_1Name[] =
     "aix_stdint_1";

/*
 *  File name selection pattern
 */
tSCC zAix_Stdint_1List[] =
  "stdint-aix.h\0stdint.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAix_Stdint_1Machs[] = {
        "*-*-aix*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAix_Stdint_1Select0[] =
       "#define[ \t]UINT8_MAX[ \t]\\(255U\\)\n\
#define[ \t]UINT16_MAX[ \t]\\(65535U\\)";

#define    AIX_STDINT_1_TEST_CT  1
static tTestDesc aAix_Stdint_1Tests[] = {
  { TT_EGREP,    zAix_Stdint_1Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aix_Stdint_1
 */
static const char* apzAix_Stdint_1Patch[] = {
    "format",
    "#define UINT8_MAX\t(255)\n\
#define UINT16_MAX\t(65535)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aix_Stdint_2 fix
 */
tSCC zAix_Stdint_2Name[] =
     "aix_stdint_2";

/*
 *  File name selection pattern
 */
tSCC zAix_Stdint_2List[] =
  "stdint-aix.h\0stdint.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAix_Stdint_2Machs[] = {
        "*-*-aix*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAix_Stdint_2Select0[] =
       "#define[ \t]INTPTR_MIN[ \t]INT64_MIN\n\
#define[ \t]INTPTR_MAX[ \t]INT64_MAX\n\
#define[ \t]UINTPTR_MAX[ \t]UINT64_MAX\n\
#else\n\
#define[ \t]INTPTR_MIN[ \t]INT32_MIN\n\
#define[ \t]INTPTR_MAX[ \t]INT32_MAX\n\
#define[ \t]UINTPTR_MAX[ \t]UINT32_MAX";

#define    AIX_STDINT_2_TEST_CT  1
static tTestDesc aAix_Stdint_2Tests[] = {
  { TT_EGREP,    zAix_Stdint_2Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aix_Stdint_2
 */
static const char* apzAix_Stdint_2Patch[] = {
    "format",
    "#define INTPTR_MIN\t(-INTPTR_MAX-1)\n\
#define INTPTR_MAX\t9223372036854775807L\n\
#define UINTPTR_MAX\t18446744073709551615UL\n\
#else\n\
#define INTPTR_MIN\t(-INTPTR_MAX-1)\n\
#define INTPTR_MAX\t2147483647L\n\
#define UINTPTR_MAX\t4294967295UL",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aix_Stdint_3 fix
 */
tSCC zAix_Stdint_3Name[] =
     "aix_stdint_3";

/*
 *  File name selection pattern
 */
tSCC zAix_Stdint_3List[] =
  "stdint-aix.h\0stdint.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAix_Stdint_3Machs[] = {
        "*-*-aix*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAix_Stdint_3Select0[] =
       "#define[ \t]PTRDIFF_MIN[ \t]INT64_MIN\n\
#define[ \t]PTRDIFF_MAX[ \t]INT64_MAX\n\
#else\n\
#define[ \t]PTRDIFF_MIN[ \t]*INT32_MIN\n\
#define[ \t]PTRDIFF_MAX[ \t]*INT32_MAX";

#define    AIX_STDINT_3_TEST_CT  1
static tTestDesc aAix_Stdint_3Tests[] = {
  { TT_EGREP,    zAix_Stdint_3Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aix_Stdint_3
 */
static const char* apzAix_Stdint_3Patch[] = {
    "format",
    "#define PTRDIFF_MIN\t(-9223372036854775807L - 1)\n\
#define PTRDIFF_MAX\t9223372036854775807L\n\
#else\n\
#define PTRDIFF_MIN\t(-2147483647L - 1)\n\
#define PTRDIFF_MAX\t2147483647L",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aix_Stdint_4 fix
 */
tSCC zAix_Stdint_4Name[] =
     "aix_stdint_4";

/*
 *  File name selection pattern
 */
tSCC zAix_Stdint_4List[] =
  "stdint-aix.h\0stdint.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAix_Stdint_4Machs[] = {
        "*-*-aix*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAix_Stdint_4Select0[] =
       "#define[ \t]SIZE_MAX[ \t]UINT64_MAX\n\
#else\n\
#define[ \t]SIZE_MAX[ \t]*UINT32_MAX";

#define    AIX_STDINT_4_TEST_CT  1
static tTestDesc aAix_Stdint_4Tests[] = {
  { TT_EGREP,    zAix_Stdint_4Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aix_Stdint_4
 */
static const char* apzAix_Stdint_4Patch[] = {
    "format",
    "#define SIZE_MAX\t18446744073709551615UL\n\
#else\n\
#define SIZE_MAX\t4294967295UL",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aix_Stdint_5 fix
 */
tSCC zAix_Stdint_5Name[] =
     "aix_stdint_5";

/*
 *  File name selection pattern
 */
tSCC zAix_Stdint_5List[] =
  "stdint-aix.h\0stdint.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAix_Stdint_5Machs[] = {
        "*-*-aix*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAix_Stdint_5Select0[] =
       "#define[ \t]UINT8_C\\(c\\)[ \t]__CONCAT__\\(c,U\\)\n\
#define[ \t]UINT16_C\\(c\\)[ \t]__CONCAT__\\(c,U\\)";

#define    AIX_STDINT_5_TEST_CT  1
static tTestDesc aAix_Stdint_5Tests[] = {
  { TT_EGREP,    zAix_Stdint_5Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aix_Stdint_5
 */
static const char* apzAix_Stdint_5Patch[] = {
    "format",
    "#define UINT8_C(c)\tc\n\
#define UINT16_C(c)\tc",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aix_Stdio_Inline fix
 */
tSCC zAix_Stdio_InlineName[] =
     "aix_stdio_inline";

/*
 *  File name selection pattern
 */
tSCC zAix_Stdio_InlineList[] =
  "stdio.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAix_Stdio_InlineMachs[] = {
        "*-*-aix*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAix_Stdio_InlineSelect0[] =
       "#ifdef __cplusplus\\\n\
}\\\n\
\\\n\
#ifdef ferror\\\n";

#define    AIX_STDIO_INLINE_TEST_CT  1
static tTestDesc aAix_Stdio_InlineTests[] = {
  { TT_EGREP,    zAix_Stdio_InlineSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aix_Stdio_Inline
 */
static const char* apzAix_Stdio_InlinePatch[] = {
    "format",
    "#ifdef __cplusplus\n\
}\n\
#endif\n\n\
#if (defined(__cplusplus) && defined(__IBMCPP__))\n\
#ifdef ferror\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aix_Strtof_Const fix
 */
tSCC zAix_Strtof_ConstName[] =
     "aix_strtof_const";

/*
 *  File name selection pattern
 */
tSCC zAix_Strtof_ConstList[] =
  "stdlib.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAix_Strtof_ConstMachs[] = {
        "*-*-aix*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAix_Strtof_ConstSelect0[] =
       "((extern[ \t]+)?float[ \t]+strtof)\\(char \\*, char \\*\\*\\);";

#define    AIX_STRTOF_CONST_TEST_CT  1
static tTestDesc aAix_Strtof_ConstTests[] = {
  { TT_EGREP,    zAix_Strtof_ConstSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aix_Strtof_Const
 */
static const char* apzAix_Strtof_ConstPatch[] = {
    "format",
    "%1(const char *, char **);",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aix_Sysmachine fix
 */
tSCC zAix_SysmachineName[] =
     "aix_sysmachine";

/*
 *  File name selection pattern
 */
tSCC zAix_SysmachineList[] =
  "sys/machine.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAix_SysmachineMachs[] = {
        "*-*-aix*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAix_SysmachineSelect0[] =
       "\\\\ +\n";

#define    AIX_SYSMACHINE_TEST_CT  1
static tTestDesc aAix_SysmachineTests[] = {
  { TT_EGREP,    zAix_SysmachineSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aix_Sysmachine
 */
static const char* apzAix_SysmachinePatch[] = {
    "format",
    "\\\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aix_Syswait_2 fix
 */
tSCC zAix_Syswait_2Name[] =
     "aix_syswait_2";

/*
 *  File name selection pattern
 */
tSCC zAix_Syswait_2List[] =
  "sys/wait.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAix_Syswait_2Machs[] = {
        "*-*-aix*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAix_Syswait_2Select0[] =
       "\\? (\\(\\(\\(\\(unsigned[^)]*\\)[^)]*\\) >> [^)]*\\) \\& 0xff\\) : -1)";

#define    AIX_SYSWAIT_2_TEST_CT  1
static tTestDesc aAix_Syswait_2Tests[] = {
  { TT_EGREP,    zAix_Syswait_2Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aix_Syswait_2
 */
static const char* apzAix_Syswait_2Patch[] = {
    "format",
    "? (int)%1",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aix_Volatile fix
 */
tSCC zAix_VolatileName[] =
     "aix_volatile";

/*
 *  File name selection pattern
 */
tSCC zAix_VolatileList[] =
  "sys/signal.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAix_VolatileMachs[] = {
        "*-*-aix*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAix_VolatileSelect0[] =
       "typedef volatile int sig_atomic_t";

#define    AIX_VOLATILE_TEST_CT  1
static tTestDesc aAix_VolatileTests[] = {
  { TT_EGREP,    zAix_VolatileSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aix_Volatile
 */
static const char* apzAix_VolatilePatch[] = {
    "format",
    "typedef int sig_atomic_t",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Alpha___Assert fix
 */
tSCC zAlpha___AssertName[] =
     "alpha___assert";

/*
 *  File name selection pattern
 */
tSCC zAlpha___AssertList[] =
  "assert.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzAlpha___AssertMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAlpha___AssertSelect0[] =
       "__assert\\(char \\*, char \\*, int\\)";

#define    ALPHA___ASSERT_TEST_CT  1
static tTestDesc aAlpha___AssertTests[] = {
  { TT_EGREP,    zAlpha___AssertSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Alpha___Assert
 */
static const char* apzAlpha___AssertPatch[] = {
    "format",
    "__assert(const char *, const char *, int)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Alpha_Assert fix
 */
tSCC zAlpha_AssertName[] =
     "alpha_assert";

/*
 *  File name selection pattern
 */
tSCC zAlpha_AssertList[] =
  "assert.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzAlpha_AssertMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAlpha_AssertSelect0[] =
       "(#[ \t]*define assert\\(EX\\).*)\\(\\(int\\) \\(EX\\)\\)";

#define    ALPHA_ASSERT_TEST_CT  1
static tTestDesc aAlpha_AssertTests[] = {
  { TT_EGREP,    zAlpha_AssertSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Alpha_Assert
 */
static const char* apzAlpha_AssertPatch[] = {
    "format",
    "%1(EX)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Alpha_Getopt fix
 */
tSCC zAlpha_GetoptName[] =
     "alpha_getopt";

/*
 *  File name selection pattern
 */
tSCC zAlpha_GetoptList[] =
  "stdio.h\0stdlib.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzAlpha_GetoptMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAlpha_GetoptSelect0[] =
       "getopt\\(int, char \\*\\[\\], *char \\*\\)";

#define    ALPHA_GETOPT_TEST_CT  1
static tTestDesc aAlpha_GetoptTests[] = {
  { TT_EGREP,    zAlpha_GetoptSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Alpha_Getopt
 */
static const char* apzAlpha_GetoptPatch[] = {
    "format",
    "getopt(int, char *const[], const char *)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Alpha_If_Semicolon fix
 */
tSCC zAlpha_If_SemicolonName[] =
     "alpha_if_semicolon";

/*
 *  File name selection pattern
 */
tSCC zAlpha_If_SemicolonList[] =
  "net/if.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzAlpha_If_SemicolonMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAlpha_If_SemicolonSelect0[] =
       "struct[ \t]+sockaddr[ \t]+vmif_paddr[ \t]+/\\*";

#define    ALPHA_IF_SEMICOLON_TEST_CT  1
static tTestDesc aAlpha_If_SemicolonTests[] = {
  { TT_EGREP,    zAlpha_If_SemicolonSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Alpha_If_Semicolon
 */
static const char* apzAlpha_If_SemicolonPatch[] = {
    "format",
    "struct sockaddr vmif_paddr;\t/*",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Alpha_Parens fix
 */
tSCC zAlpha_ParensName[] =
     "alpha_parens";

/*
 *  File name selection pattern
 */
tSCC zAlpha_ParensList[] =
  "sym.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzAlpha_ParensMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAlpha_ParensSelect0[] =
       "#ifndef\\(__mips64\\)";

#define    ALPHA_PARENS_TEST_CT  1
static tTestDesc aAlpha_ParensTests[] = {
  { TT_EGREP,    zAlpha_ParensSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Alpha_Parens
 */
static const char* apzAlpha_ParensPatch[] = {
    "format",
    "#ifndef __mips64",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Alpha_Sbrk fix
 */
tSCC zAlpha_SbrkName[] =
     "alpha_sbrk";

/*
 *  File name selection pattern
 */
tSCC zAlpha_SbrkList[] =
  "unistd.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzAlpha_SbrkMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAlpha_SbrkSelect0[] =
       "char[ \t]*\\*[\t ]*sbrk[ \t]*\\(";

#define    ALPHA_SBRK_TEST_CT  1
static tTestDesc aAlpha_SbrkTests[] = {
  { TT_EGREP,    zAlpha_SbrkSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Alpha_Sbrk
 */
static const char* apzAlpha_SbrkPatch[] = {
    "format",
    "void *sbrk(",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Avoid_Bool_Define fix
 */
tSCC zAvoid_Bool_DefineName[] =
     "avoid_bool_define";

/*
 *  File name selection pattern
 */
tSCC zAvoid_Bool_DefineList[] =
  "curses.h\0curses_colr/curses.h\0term.h\0tinfo.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzAvoid_Bool_DefineMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAvoid_Bool_DefineSelect0[] =
       "#[ \t]*define[ \t]+bool[ \t]";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zAvoid_Bool_DefineBypass0[] =
       "__cplusplus";

#define    AVOID_BOOL_DEFINE_TEST_CT  2
static tTestDesc aAvoid_Bool_DefineTests[] = {
  { TT_NEGREP,   zAvoid_Bool_DefineBypass0, (regex_t*)NULL },
  { TT_EGREP,    zAvoid_Bool_DefineSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Avoid_Bool_Define
 */
static const char* apzAvoid_Bool_DefinePatch[] = {
    "format",
    "#ifndef __cplusplus\n\
%0\n\
#endif",
    "^[ \t]*#[ \t]*define[ \t]+bool[ \t].*",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Avoid_Bool_Type fix
 */
tSCC zAvoid_Bool_TypeName[] =
     "avoid_bool_type";

/*
 *  File name selection pattern
 */
tSCC zAvoid_Bool_TypeList[] =
  "curses.h\0curses_colr/curses.h\0term.h\0tinfo.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzAvoid_Bool_TypeMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAvoid_Bool_TypeSelect0[] =
       "^[ \t]*typedef[ \t].*[ \t]bool[ \t]*;";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zAvoid_Bool_TypeBypass0[] =
       "__cplusplus";

#define    AVOID_BOOL_TYPE_TEST_CT  2
static tTestDesc aAvoid_Bool_TypeTests[] = {
  { TT_NEGREP,   zAvoid_Bool_TypeBypass0, (regex_t*)NULL },
  { TT_EGREP,    zAvoid_Bool_TypeSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Avoid_Bool_Type
 */
static const char* apzAvoid_Bool_TypePatch[] = {
    "format",
    "#ifndef __cplusplus\n\
%0\n\
#endif",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Avoid_Wchar_T_Type fix
 */
tSCC zAvoid_Wchar_T_TypeName[] =
     "avoid_wchar_t_type";

/*
 *  File name selection pattern
 */
#define zAvoid_Wchar_T_TypeList (char*)NULL
/*
 *  Machine/OS name selection pattern
 */
#define apzAvoid_Wchar_T_TypeMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAvoid_Wchar_T_TypeSelect0[] =
       "^[ \t]*typedef[ \t].*[ \t]wchar_t[ \t]*;";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zAvoid_Wchar_T_TypeBypass0[] =
       "__cplusplus";
tSCC zAvoid_Wchar_T_TypeBypass1[] =
       "_LINUX_NLS_H";
tSCC zAvoid_Wchar_T_TypeBypass2[] =
       "XFree86: xc/lib/X11/Xlib\\.h";

#define    AVOID_WCHAR_T_TYPE_TEST_CT  4
static tTestDesc aAvoid_Wchar_T_TypeTests[] = {
  { TT_NEGREP,   zAvoid_Wchar_T_TypeBypass0, (regex_t*)NULL },
  { TT_NEGREP,   zAvoid_Wchar_T_TypeBypass1, (regex_t*)NULL },
  { TT_NEGREP,   zAvoid_Wchar_T_TypeBypass2, (regex_t*)NULL },
  { TT_EGREP,    zAvoid_Wchar_T_TypeSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Avoid_Wchar_T_Type
 */
static const char* apzAvoid_Wchar_T_TypePatch[] = {
    "format",
    "#ifndef __cplusplus\n\
%0\n\
#endif",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Bad_Struct_Term fix
 */
tSCC zBad_Struct_TermName[] =
     "bad_struct_term";

/*
 *  File name selection pattern
 */
tSCC zBad_Struct_TermList[] =
  "curses.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzBad_Struct_TermMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zBad_Struct_TermSelect0[] =
       "^[ \t]*typedef[ \t]+struct[ \t]+term[ \t]*;";

#define    BAD_STRUCT_TERM_TEST_CT  1
static tTestDesc aBad_Struct_TermTests[] = {
  { TT_EGREP,    zBad_Struct_TermSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Bad_Struct_Term
 */
static const char* apzBad_Struct_TermPatch[] = {
    "format",
    "struct term;",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Badquote fix
 */
tSCC zBadquoteName[] =
     "badquote";

/*
 *  File name selection pattern
 */
tSCC zBadquoteList[] =
  "sundev/vuid_event.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzBadquoteMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zBadquoteSelect0[] =
       "doesn't";

#define    BADQUOTE_TEST_CT  1
static tTestDesc aBadquoteTests[] = {
  { TT_EGREP,    zBadquoteSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Badquote
 */
static const char* apzBadquotePatch[] = {
    "format",
    "does not",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Broken_Assert_Stdio fix
 */
tSCC zBroken_Assert_StdioName[] =
     "broken_assert_stdio";

/*
 *  File name selection pattern
 */
tSCC zBroken_Assert_StdioList[] =
  "assert.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzBroken_Assert_StdioMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zBroken_Assert_StdioSelect0[] =
       "stderr";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zBroken_Assert_StdioBypass0[] =
       "include.*stdio\\.h";

#define    BROKEN_ASSERT_STDIO_TEST_CT  2
static tTestDesc aBroken_Assert_StdioTests[] = {
  { TT_NEGREP,   zBroken_Assert_StdioBypass0, (regex_t*)NULL },
  { TT_EGREP,    zBroken_Assert_StdioSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Broken_Assert_Stdio
 */
static const char* apzBroken_Assert_StdioPatch[] = {
    "wrap",
    "#include <stdio.h>\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Broken_Assert_Stdlib fix
 */
tSCC zBroken_Assert_StdlibName[] =
     "broken_assert_stdlib";

/*
 *  File name selection pattern
 */
tSCC zBroken_Assert_StdlibList[] =
  "assert.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzBroken_Assert_StdlibMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zBroken_Assert_StdlibSelect0[] =
       "exit *\\(|abort *\\(";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zBroken_Assert_StdlibBypass0[] =
       "include.*stdlib\\.h";

#define    BROKEN_ASSERT_STDLIB_TEST_CT  2
static tTestDesc aBroken_Assert_StdlibTests[] = {
  { TT_NEGREP,   zBroken_Assert_StdlibBypass0, (regex_t*)NULL },
  { TT_EGREP,    zBroken_Assert_StdlibSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Broken_Assert_Stdlib
 */
static const char* apzBroken_Assert_StdlibPatch[] = {
    "wrap",
    "#ifdef __cplusplus\n\
#include <stdlib.h>\n\
#endif\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Broken_Cabs fix
 */
tSCC zBroken_CabsName[] =
     "broken_cabs";

/*
 *  File name selection pattern
 */
tSCC zBroken_CabsList[] =
  "math.h\0architecture/*/math.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzBroken_CabsMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zBroken_CabsSelect0[] =
       "^extern[ \t]+double[ \t]+cabs";

#define    BROKEN_CABS_TEST_CT  1
static tTestDesc aBroken_CabsTests[] = {
  { TT_EGREP,    zBroken_CabsSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Broken_Cabs
 */
static const char* apzBroken_CabsPatch[] = { sed_cmd_z,
    "-e", "s/^extern[ \t]*double[ \t]*cabs[ \t]*([^\\)]*);//",
    "-e", "s/^extern[ \t]*long[ \t]*double[ \t]*cabsl[ \t]*([^\\)]*);//",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Broken_Nan fix
 */
tSCC zBroken_NanName[] =
     "broken_nan";

/*
 *  File name selection pattern
 */
tSCC zBroken_NanList[] =
  "architecture/ppc/math.h\0architecture/*/math.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzBroken_NanMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zBroken_NanSelect0[] =
       "#if defined\\(__APPLE_CC__\\) && \\(__APPLE_CC__ >= 1345\\)";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zBroken_NanBypass0[] =
       "powl";

#define    BROKEN_NAN_TEST_CT  2
static tTestDesc aBroken_NanTests[] = {
  { TT_NEGREP,   zBroken_NanBypass0, (regex_t*)NULL },
  { TT_EGREP,    zBroken_NanSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Broken_Nan
 */
static const char* apzBroken_NanPatch[] = {
    "format",
    "#if 1",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Bsd_Stdio_Attrs_Conflict fix
 */
tSCC zBsd_Stdio_Attrs_ConflictName[] =
     "bsd_stdio_attrs_conflict";

/*
 *  File name selection pattern
 */
tSCC zBsd_Stdio_Attrs_ConflictList[] =
  "stdio.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzBsd_Stdio_Attrs_ConflictMachs[] = {
        "*-*-*bsd*",
        "*-*-*darwin*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zBsd_Stdio_Attrs_ConflictSelect0[] =
       "^#define[ \t]*vfscanf[ \t]*__svfscanf[ \t]*$";

#define    BSD_STDIO_ATTRS_CONFLICT_TEST_CT  1
static tTestDesc aBsd_Stdio_Attrs_ConflictTests[] = {
  { TT_EGREP,    zBsd_Stdio_Attrs_ConflictSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Bsd_Stdio_Attrs_Conflict
 */
static const char* apzBsd_Stdio_Attrs_ConflictPatch[] = {
    "format",
    "#define _BSD_STRING(_BSD_X) _BSD_STRINGX(_BSD_X)\n\
#define _BSD_STRINGX(_BSD_X) #_BSD_X\n\
int vfscanf(FILE *, const char *, __builtin_va_list) __asm__ (_BSD_STRING(__USER_LABEL_PREFIX__) \"__svfscanf\");",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Ctrl_Quotes_Def fix
 */
tSCC zCtrl_Quotes_DefName[] =
     "ctrl_quotes_def";

/*
 *  File name selection pattern
 */
#define zCtrl_Quotes_DefList (char*)NULL
/*
 *  Machine/OS name selection pattern
 */
#define apzCtrl_Quotes_DefMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zCtrl_Quotes_DefSelect0[] =
       "define[ \t]+[A-Z0-9_]+CTRL\\([a-zA-Z][,)]";

#define    CTRL_QUOTES_DEF_TEST_CT  1
static tTestDesc aCtrl_Quotes_DefTests[] = {
  { TT_EGREP,    zCtrl_Quotes_DefSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Ctrl_Quotes_Def
 */
static const char* apzCtrl_Quotes_DefPatch[] = {
    "char_macro_def",
    "CTRL",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Ctrl_Quotes_Use fix
 */
tSCC zCtrl_Quotes_UseName[] =
     "ctrl_quotes_use";

/*
 *  File name selection pattern
 */
#define zCtrl_Quotes_UseList (char*)NULL
/*
 *  Machine/OS name selection pattern
 */
#define apzCtrl_Quotes_UseMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zCtrl_Quotes_UseSelect0[] =
       "define[ \t]+[A-Z0-9_]+[ \t]+[A-Z0-9_]+CTRL[ \t]*\\( *[^,']";

#define    CTRL_QUOTES_USE_TEST_CT  1
static tTestDesc aCtrl_Quotes_UseTests[] = {
  { TT_EGREP,    zCtrl_Quotes_UseSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Ctrl_Quotes_Use
 */
static const char* apzCtrl_Quotes_UsePatch[] = {
    "char_macro_use",
    "CTRL",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Cxx_Unready fix
 */
tSCC zCxx_UnreadyName[] =
     "cxx_unready";

/*
 *  File name selection pattern
 */
tSCC zCxx_UnreadyList[] =
  "sys/mman.h\0rpc/types.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzCxx_UnreadyMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zCxx_UnreadySelect0[] =
       "[^#]+malloc.*;";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zCxx_UnreadyBypass0[] =
       "\"C\"|__BEGIN_DECLS";

#define    CXX_UNREADY_TEST_CT  2
static tTestDesc aCxx_UnreadyTests[] = {
  { TT_NEGREP,   zCxx_UnreadyBypass0, (regex_t*)NULL },
  { TT_EGREP,    zCxx_UnreadySelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Cxx_Unready
 */
static const char* apzCxx_UnreadyPatch[] = {
    "wrap",
    "#ifdef __cplusplus\n\
extern \"C\" {\n\
#endif\n",
    "#ifdef __cplusplus\n\
}\n\
#endif\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Darwin_9_Long_Double_Funcs_2 fix
 */
tSCC zDarwin_9_Long_Double_Funcs_2Name[] =
     "darwin_9_long_double_funcs_2";

/*
 *  File name selection pattern
 */
tSCC zDarwin_9_Long_Double_Funcs_2List[] =
  "math.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzDarwin_9_Long_Double_Funcs_2Machs[] = {
        "*-*-darwin7.9*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zDarwin_9_Long_Double_Funcs_2Select0[] =
       "#include[ \\t]+\\\"";

#define    DARWIN_9_LONG_DOUBLE_FUNCS_2_TEST_CT  1
static tTestDesc aDarwin_9_Long_Double_Funcs_2Tests[] = {
  { TT_EGREP,    zDarwin_9_Long_Double_Funcs_2Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Darwin_9_Long_Double_Funcs_2
 */
static const char* apzDarwin_9_Long_Double_Funcs_2Patch[] = {
    "format",
    "%1<%2.h>",
    "([ \\t]*#[ \\t]*include[ \\t]+)\"([a-z0-9/]+)\\.h\"",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Darwin_Externc fix
 */
tSCC zDarwin_ExterncName[] =
     "darwin_externc";

/*
 *  File name selection pattern
 */
tSCC zDarwin_ExterncList[] =
  "mach-o/swap.h\0mach/mach_time.h\0mach/mach_traps.h\0mach/message.h\0mach/mig.h\0mach/semaphore.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzDarwin_ExterncMachs[] = {
        "*-*-darwin*",
        (const char*)NULL };

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zDarwin_ExterncBypass0[] =
       "extern \"C\"";
tSCC zDarwin_ExterncBypass1[] =
       "__BEGIN_DECLS";

#define    DARWIN_EXTERNC_TEST_CT  2
static tTestDesc aDarwin_ExterncTests[] = {
  { TT_NEGREP,   zDarwin_ExterncBypass0, (regex_t*)NULL },
  { TT_NEGREP,   zDarwin_ExterncBypass1, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Darwin_Externc
 */
static const char* apzDarwin_ExterncPatch[] = {
    "wrap",
    "#ifdef __cplusplus\n\
extern \"C\" {\n\
#endif\n",
    "#ifdef __cplusplus\n\
}\n\
#endif\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Darwin_Gcc4_Breakage fix
 */
tSCC zDarwin_Gcc4_BreakageName[] =
     "darwin_gcc4_breakage";

/*
 *  File name selection pattern
 */
tSCC zDarwin_Gcc4_BreakageList[] =
  "AvailabilityMacros.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzDarwin_Gcc4_BreakageMachs[] = {
        "*-*-darwin*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zDarwin_Gcc4_BreakageSelect0[] =
       "\\(__GNUC__ >= 3\\) && \\(__GNUC_MINOR__ >= 1\\)";

#define    DARWIN_GCC4_BREAKAGE_TEST_CT  1
static tTestDesc aDarwin_Gcc4_BreakageTests[] = {
  { TT_EGREP,    zDarwin_Gcc4_BreakageSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Darwin_Gcc4_Breakage
 */
static const char* apzDarwin_Gcc4_BreakagePatch[] = {
    "format",
    "((__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Darwin_Private_Extern fix
 */
tSCC zDarwin_Private_ExternName[] =
     "darwin_private_extern";

/*
 *  File name selection pattern
 */
tSCC zDarwin_Private_ExternList[] =
  "mach-o/dyld.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzDarwin_Private_ExternMachs[] = {
        "*-*-darwin*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zDarwin_Private_ExternSelect0[] =
       "__private_extern__ [a-z_]+ _dyld_";

#define    DARWIN_PRIVATE_EXTERN_TEST_CT  1
static tTestDesc aDarwin_Private_ExternTests[] = {
  { TT_EGREP,    zDarwin_Private_ExternSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Darwin_Private_Extern
 */
static const char* apzDarwin_Private_ExternPatch[] = {
    "format",
    "extern",
    "__private_extern__",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Darwin_Stdint_1 fix
 */
tSCC zDarwin_Stdint_1Name[] =
     "darwin_stdint_1";

/*
 *  File name selection pattern
 */
tSCC zDarwin_Stdint_1List[] =
  "stdint-darwin.h\0stdint.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzDarwin_Stdint_1Machs[] = {
        "*-*-darwin*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zDarwin_Stdint_1Select0[] =
       "#define UINT8_C\\(v\\)[ \t]+\\(v ## U\\)\n\
#define UINT16_C\\(v\\)[ \t]+\\(v ## U\\)";

#define    DARWIN_STDINT_1_TEST_CT  1
static tTestDesc aDarwin_Stdint_1Tests[] = {
  { TT_EGREP,    zDarwin_Stdint_1Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Darwin_Stdint_1
 */
static const char* apzDarwin_Stdint_1Patch[] = {
    "format",
    "#define UINT8_C(v)\tv\n\
#define UINT16_C(v)\tv",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Darwin_Stdint_2 fix
 */
tSCC zDarwin_Stdint_2Name[] =
     "darwin_stdint_2";

/*
 *  File name selection pattern
 */
tSCC zDarwin_Stdint_2List[] =
  "stdint-darwin.h\0stdint.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzDarwin_Stdint_2Machs[] = {
        "*-*-darwin*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zDarwin_Stdint_2Select0[] =
       "#if __WORDSIZE == 64\n\
#define INTPTR_MIN[ \t]+INT64_MIN\n\
#define INTPTR_MAX[ \t]+INT64_MAX\n\
#else\n\
#define INTPTR_MIN[ \t]+INT32_MIN\n\
#define INTPTR_MAX[ \t]+INT32_MAX\n\
#endif";

#define    DARWIN_STDINT_2_TEST_CT  1
static tTestDesc aDarwin_Stdint_2Tests[] = {
  { TT_EGREP,    zDarwin_Stdint_2Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Darwin_Stdint_2
 */
static const char* apzDarwin_Stdint_2Patch[] = {
    "format",
    "#if __WORDSIZE == 64\n\
#define INTPTR_MAX 9223372036854775807L\n\
#define INTPTR_MIN (-INTPTR_MAX-1)\n\
#else\n\
#define INTPTR_MAX 2147483647L\n\
#define INTPTR_MIN (-INTPTR_MAX-1)\n\
#endif",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Darwin_Stdint_3 fix
 */
tSCC zDarwin_Stdint_3Name[] =
     "darwin_stdint_3";

/*
 *  File name selection pattern
 */
tSCC zDarwin_Stdint_3List[] =
  "stdint-darwin.h\0stdint.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzDarwin_Stdint_3Machs[] = {
        "*-*-darwin*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zDarwin_Stdint_3Select0[] =
       "#if __WORDSIZE == 64\n\
#define UINTPTR_MAX[ \t]+UINT64_MAX\n\
#else\n\
#define UINTPTR_MAX[ \t]+UINT32_MAX\n\
#endif";

#define    DARWIN_STDINT_3_TEST_CT  1
static tTestDesc aDarwin_Stdint_3Tests[] = {
  { TT_EGREP,    zDarwin_Stdint_3Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Darwin_Stdint_3
 */
static const char* apzDarwin_Stdint_3Patch[] = {
    "format",
    "#if __WORDSIZE == 64\n\
#define UINTPTR_MAX 18446744073709551615UL\n\
#else\n\
#define UINTPTR_MAX 4294967295UL\n\
#endif",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Darwin_Stdint_4 fix
 */
tSCC zDarwin_Stdint_4Name[] =
     "darwin_stdint_4";

/*
 *  File name selection pattern
 */
tSCC zDarwin_Stdint_4List[] =
  "stdint-darwin.h\0stdint.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzDarwin_Stdint_4Machs[] = {
        "*-*-darwin*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zDarwin_Stdint_4Select0[] =
       "#if __WORDSIZE == 64\n\
#define SIZE_MAX[ \t]+UINT64_MAX\n\
#else\n\
#define SIZE_MAX[ \t]+UINT32_MAX\n\
#endif";

#define    DARWIN_STDINT_4_TEST_CT  1
static tTestDesc aDarwin_Stdint_4Tests[] = {
  { TT_EGREP,    zDarwin_Stdint_4Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Darwin_Stdint_4
 */
static const char* apzDarwin_Stdint_4Patch[] = {
    "format",
    "#if __WORDSIZE == 64\n\
#define SIZE_MAX 18446744073709551615UL\n\
#else\n\
#define SIZE_MAX 4294967295UL\n\
#endif",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Darwin_Stdint_5 fix
 */
tSCC zDarwin_Stdint_5Name[] =
     "darwin_stdint_5";

/*
 *  File name selection pattern
 */
tSCC zDarwin_Stdint_5List[] =
  "stdint-darwin.h\0stdint.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzDarwin_Stdint_5Machs[] = {
        "*-*-darwin*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zDarwin_Stdint_5Select0[] =
       "#define INTMAX_MIN[ \t]+INT64_MIN\n\
#define INTMAX_MAX[ \t]+INT64_MAX\n\n\
#define UINTMAX_MAX[ \t]+UINT64_MAX";

#define    DARWIN_STDINT_5_TEST_CT  1
static tTestDesc aDarwin_Stdint_5Tests[] = {
  { TT_EGREP,    zDarwin_Stdint_5Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Darwin_Stdint_5
 */
static const char* apzDarwin_Stdint_5Patch[] = {
    "format",
    "#if __WORDSIZE == 64\n\
#define INTMAX_MIN   (-9223372036854775807L - 1)\n\
#define INTMAX_MAX   9223372036854775807L\n\
#define UINTMAX_MAX  18446744073709551615UL\n\
#else\n\
#define INTMAX_MIN   (-9223372036854775807LL - 1)\n\
#define INTMAX_MAX   9223372036854775807LL\n\
#define UINTMAX_MAX  18446744073709551615ULL\n\
#endif",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Darwin_Stdint_6 fix
 */
tSCC zDarwin_Stdint_6Name[] =
     "darwin_stdint_6";

/*
 *  File name selection pattern
 */
tSCC zDarwin_Stdint_6List[] =
  "stdint-darwin.h\0stdint.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzDarwin_Stdint_6Machs[] = {
        "*-*-darwin*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zDarwin_Stdint_6Select0[] =
       "#if __WORDSIZE == 64\n\
#define PTRDIFF_MIN[ \t]+INT64_MIN\n\
#define PTRDIFF_MAX[ \t]+INT64_MAX\n\
#else\n\
#define PTRDIFF_MIN[ \t]+INT32_MIN\n\
#define PTRDIFF_MAX[ \t]+INT32_MAX\n\
#endif";

#define    DARWIN_STDINT_6_TEST_CT  1
static tTestDesc aDarwin_Stdint_6Tests[] = {
  { TT_EGREP,    zDarwin_Stdint_6Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Darwin_Stdint_6
 */
static const char* apzDarwin_Stdint_6Patch[] = {
    "format",
    "#if __WORDSIZE == 64\n\
#define PTRDIFF_MIN (-9223372036854775807L - 1)\n\
#define PTRDIFF_MAX 9223372036854775807L\n\
#else\n\
#define PTRDIFF_MIN (-2147483647 - 1)\n\
#define PTRDIFF_MAX 2147483647\n\
#endif",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Darwin_Stdint_7 fix
 */
tSCC zDarwin_Stdint_7Name[] =
     "darwin_stdint_7";

/*
 *  File name selection pattern
 */
tSCC zDarwin_Stdint_7List[] =
  "stdint-darwin.h\0stdint.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzDarwin_Stdint_7Machs[] = {
        "*-*-darwin*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zDarwin_Stdint_7Select0[] =
       "#define INTMAX_C\\(v\\)[ \t]+\\(v ## LL\\)\n\
#define UINTMAX_C\\(v\\)[ \t]+\\(v ## ULL\\)";

#define    DARWIN_STDINT_7_TEST_CT  1
static tTestDesc aDarwin_Stdint_7Tests[] = {
  { TT_EGREP,    zDarwin_Stdint_7Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Darwin_Stdint_7
 */
static const char* apzDarwin_Stdint_7Patch[] = {
    "format",
    "#if __WORDSIZE == 64\n\
#define INTMAX_C(v)  (v ## L)\n\
#define UINTMAX_C(v) (v ## UL)\n\
#else\n\
#define INTMAX_C(v)  (v ## LL)\n\
#define UINTMAX_C(v) (v ## ULL)\n\
#endif",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Dec_Intern_Asm fix
 */
tSCC zDec_Intern_AsmName[] =
     "dec_intern_asm";

/*
 *  File name selection pattern
 */
tSCC zDec_Intern_AsmList[] =
  "c_asm.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzDec_Intern_AsmMachs (const char**)NULL
#define DEC_INTERN_ASM_TEST_CT  0
#define aDec_Intern_AsmTests   (tTestDesc*)NULL

/*
 *  Fix Command Arguments for Dec_Intern_Asm
 */
static const char* apzDec_Intern_AsmPatch[] = { sed_cmd_z,
    "-e", "/^[ \t]*float[ \t]*fasm/i\\\n\
#ifdef __DECC\n",
    "-e", "/^[ \t]*#[ \t]*pragma[ \t]*intrinsic([ \t]*dasm/a\\\n\
#endif\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Djgpp_Wchar_H fix
 */
tSCC zDjgpp_Wchar_HName[] =
     "djgpp_wchar_h";

/*
 *  File name selection pattern
 */
#define zDjgpp_Wchar_HList (char*)NULL
/*
 *  Machine/OS name selection pattern
 */
#define apzDjgpp_Wchar_HMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zDjgpp_Wchar_HSelect0[] =
       "__DJ_wint_t";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zDjgpp_Wchar_HBypass0[] =
       "sys/djtypes.h";

#define    DJGPP_WCHAR_H_TEST_CT  2
static tTestDesc aDjgpp_Wchar_HTests[] = {
  { TT_NEGREP,   zDjgpp_Wchar_HBypass0, (regex_t*)NULL },
  { TT_EGREP,    zDjgpp_Wchar_HSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Djgpp_Wchar_H
 */
static const char* apzDjgpp_Wchar_HPatch[] = {
    "format",
    "%0\n\
#include <sys/djtypes.h>",
    "#include <stddef.h>",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Ecd_Cursor fix
 */
tSCC zEcd_CursorName[] =
     "ecd_cursor";

/*
 *  File name selection pattern
 */
tSCC zEcd_CursorList[] =
  "sunwindow/win_lock.h\0sunwindow/win_cursor.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzEcd_CursorMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zEcd_CursorSelect0[] =
       "ecd\\.cursor";

#define    ECD_CURSOR_TEST_CT  1
static tTestDesc aEcd_CursorTests[] = {
  { TT_EGREP,    zEcd_CursorSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Ecd_Cursor
 */
static const char* apzEcd_CursorPatch[] = {
    "format",
    "ecd_cursor",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Feraiseexcept_Nosse_Divbyzero fix
 */
tSCC zFeraiseexcept_Nosse_DivbyzeroName[] =
     "feraiseexcept_nosse_divbyzero";

/*
 *  File name selection pattern
 */
tSCC zFeraiseexcept_Nosse_DivbyzeroList[] =
  "bits/fenv.h\0*/bits/fenv.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzFeraiseexcept_Nosse_DivbyzeroMachs[] = {
        "i[34567]86-*-linux*",
        "x86*-linux*",
        "amd64-*-linux*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zFeraiseexcept_Nosse_DivbyzeroSelect0[] =
       "^([\t ]*)__asm__ __volatile__ \\(\"divss %1, %0 *\" : : \"x\" \\(__f\\), \"x\" \\(__g\\)\\);$";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zFeraiseexcept_Nosse_DivbyzeroBypass0[] =
       "\"fdivp .*; fwait\"";

#define    FERAISEEXCEPT_NOSSE_DIVBYZERO_TEST_CT  2
static tTestDesc aFeraiseexcept_Nosse_DivbyzeroTests[] = {
  { TT_NEGREP,   zFeraiseexcept_Nosse_DivbyzeroBypass0, (regex_t*)NULL },
  { TT_EGREP,    zFeraiseexcept_Nosse_DivbyzeroSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Feraiseexcept_Nosse_Divbyzero
 */
static const char* apzFeraiseexcept_Nosse_DivbyzeroPatch[] = {
    "format",
    "# ifdef __SSE_MATH__\n\
%0\n\
# else\n\
%1__asm__ __volatile__ (\"fdivp %%%%st, %%%%st(1); fwait\"\n\
%1\t\t\t: \"=t\" (__f) : \"0\" (__f), \"u\" (__g) : \"st(1)\");\n\
# endif",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Feraiseexcept_Nosse_Invalid fix
 */
tSCC zFeraiseexcept_Nosse_InvalidName[] =
     "feraiseexcept_nosse_invalid";

/*
 *  File name selection pattern
 */
tSCC zFeraiseexcept_Nosse_InvalidList[] =
  "bits/fenv.h\0*/bits/fenv.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzFeraiseexcept_Nosse_InvalidMachs[] = {
        "i[34567]86-*-linux*",
        "x86*-linux*",
        "amd64-*-linux*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zFeraiseexcept_Nosse_InvalidSelect0[] =
       "^([\t ]*)__asm__ __volatile__ \\(\"divss %0, %0 *\" : : \"x\" \\(__f\\)\\);$";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zFeraiseexcept_Nosse_InvalidBypass0[] =
       "\"fdiv .*; fwait\"";

#define    FERAISEEXCEPT_NOSSE_INVALID_TEST_CT  2
static tTestDesc aFeraiseexcept_Nosse_InvalidTests[] = {
  { TT_NEGREP,   zFeraiseexcept_Nosse_InvalidBypass0, (regex_t*)NULL },
  { TT_EGREP,    zFeraiseexcept_Nosse_InvalidSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Feraiseexcept_Nosse_Invalid
 */
static const char* apzFeraiseexcept_Nosse_InvalidPatch[] = {
    "format",
    "# ifdef __SSE_MATH__\n\
%0\n\
# else\n\
%1__asm__ __volatile__ (\"fdiv %%%%st, %%%%st(0); fwait\"\n\
%1\t\t\t: \"=t\" (__f) : \"0\" (__f));\n\
# endif",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Freebsd_Gcc3_Breakage fix
 */
tSCC zFreebsd_Gcc3_BreakageName[] =
     "freebsd_gcc3_breakage";

/*
 *  File name selection pattern
 */
tSCC zFreebsd_Gcc3_BreakageList[] =
  "sys/cdefs.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzFreebsd_Gcc3_BreakageMachs[] = {
        "*-*-freebsd*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zFreebsd_Gcc3_BreakageSelect0[] =
       "^#if __GNUC__ == 2 && __GNUC_MINOR__ >= 7$";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zFreebsd_Gcc3_BreakageBypass0[] =
       "__GNUC__[ \\t]*([>=]=[ \\t]*[3-9]|>[ \\t]*2)";

#define    FREEBSD_GCC3_BREAKAGE_TEST_CT  2
static tTestDesc aFreebsd_Gcc3_BreakageTests[] = {
  { TT_NEGREP,   zFreebsd_Gcc3_BreakageBypass0, (regex_t*)NULL },
  { TT_EGREP,    zFreebsd_Gcc3_BreakageSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Freebsd_Gcc3_Breakage
 */
static const char* apzFreebsd_Gcc3_BreakagePatch[] = {
    "format",
    "%0 || __GNUC__ >= 3",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Freebsd_Gcc4_Breakage fix
 */
tSCC zFreebsd_Gcc4_BreakageName[] =
     "freebsd_gcc4_breakage";

/*
 *  File name selection pattern
 */
tSCC zFreebsd_Gcc4_BreakageList[] =
  "sys/cdefs.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzFreebsd_Gcc4_BreakageMachs[] = {
        "*-*-freebsd*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zFreebsd_Gcc4_BreakageSelect0[] =
       "^#if __GNUC__ == 2 && __GNUC_MINOR__ >= 7 \\|\\| __GNUC__ == 3$";

#define    FREEBSD_GCC4_BREAKAGE_TEST_CT  1
static tTestDesc aFreebsd_Gcc4_BreakageTests[] = {
  { TT_EGREP,    zFreebsd_Gcc4_BreakageSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Freebsd_Gcc4_Breakage
 */
static const char* apzFreebsd_Gcc4_BreakagePatch[] = {
    "format",
    "#if __GNUC__ == 2 && __GNUC_MINOR__ >= 7 || __GNUC__ >= 3",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Glibc_C99_Inline_1 fix
 */
tSCC zGlibc_C99_Inline_1Name[] =
     "glibc_c99_inline_1";

/*
 *  File name selection pattern
 */
tSCC zGlibc_C99_Inline_1List[] =
  "features.h\0*/features.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzGlibc_C99_Inline_1Machs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zGlibc_C99_Inline_1Select0[] =
       "^ *&& !defined __OPTIMIZE_SIZE__ && !defined __NO_INLINE__$";

#define    GLIBC_C99_INLINE_1_TEST_CT  1
static tTestDesc aGlibc_C99_Inline_1Tests[] = {
  { TT_EGREP,    zGlibc_C99_Inline_1Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Glibc_C99_Inline_1
 */
static const char* apzGlibc_C99_Inline_1Patch[] = {
    "format",
    "%0 && (defined __extern_inline || defined __GNUC_GNU_INLINE__)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Glibc_C99_Inline_1a fix
 */
tSCC zGlibc_C99_Inline_1aName[] =
     "glibc_c99_inline_1a";

/*
 *  File name selection pattern
 */
tSCC zGlibc_C99_Inline_1aList[] =
  "features.h\0*/features.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzGlibc_C99_Inline_1aMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zGlibc_C99_Inline_1aSelect0[] =
       "(\\) && defined __OPTIMIZE__ && !defined __OPTIMIZE_SIZE__)\n\
(#[ \t]*define[ \t]*__USE_EXTERN_INLINES[ \t]*1)";

#define    GLIBC_C99_INLINE_1A_TEST_CT  1
static tTestDesc aGlibc_C99_Inline_1aTests[] = {
  { TT_EGREP,    zGlibc_C99_Inline_1aSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Glibc_C99_Inline_1a
 */
static const char* apzGlibc_C99_Inline_1aPatch[] = {
    "format",
    "%1 && (defined __extern_inline || defined __GNUC_GNU_INLINE__)\n\
%2",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Glibc_C99_Inline_2 fix
 */
tSCC zGlibc_C99_Inline_2Name[] =
     "glibc_c99_inline_2";

/*
 *  File name selection pattern
 */
tSCC zGlibc_C99_Inline_2List[] =
  "sys/stat.h\0*/sys/stat.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzGlibc_C99_Inline_2Machs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zGlibc_C99_Inline_2Select0[] =
       "extern __inline__ int";

#define    GLIBC_C99_INLINE_2_TEST_CT  1
static tTestDesc aGlibc_C99_Inline_2Tests[] = {
  { TT_EGREP,    zGlibc_C99_Inline_2Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Glibc_C99_Inline_2
 */
static const char* apzGlibc_C99_Inline_2Patch[] = { sed_cmd_z,
    "-e", "s/extern int \\(stat\\)/#ifdef __GNUC_GNU_INLINE__\\\n\
extern\\\n\
#endif\\\n\
__inline__ int \\1/",
    "-e", "s/extern int \\([lf]stat\\)/#ifdef __GNUC_GNU_INLINE__\\\n\
extern\\\n\
#endif\\\n\
__inline__ int \\1/",
    "-e", "s/extern int \\(mknod\\)/#ifdef __GNUC_GNU_INLINE__\\\n\
extern\\\n\
#endif\\\n\
__inline__ int \\1/",
    "-e", "s/extern int __REDIRECT\\(_NTH\\)\\{0,1\\} (\\(stat\\)/#ifdef __GNUC_GNU_INLINE__\\\n\
extern\\\n\
#endif\\\n\
__inline__ int __REDIRECT\\1 (\\2/",
    "-e", "s/extern int __REDIRECT\\(_NTH\\)\\{0,1\\} (\\([lf]stat\\)/#ifdef __GNUC_GNU_INLINE__\\\n\
extern\\\n\
#endif\\\n\
__inline__ int __REDIRECT\\1 (\\2/",
    "-e", "s/^extern __inline__ int/#ifdef __GNUC_GNU_INLINE__\\\n\
extern\\\n\
#endif\\\n\
__inline__ int/",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Glibc_C99_Inline_3 fix
 */
tSCC zGlibc_C99_Inline_3Name[] =
     "glibc_c99_inline_3";

/*
 *  File name selection pattern
 */
tSCC zGlibc_C99_Inline_3List[] =
  "bits/string2.h\0*/bits/string2.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzGlibc_C99_Inline_3Machs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zGlibc_C99_Inline_3Select0[] =
       "extern __inline";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zGlibc_C99_Inline_3Bypass0[] =
       "__extern_inline|__GNU_STDC_INLINE__";

#define    GLIBC_C99_INLINE_3_TEST_CT  2
static tTestDesc aGlibc_C99_Inline_3Tests[] = {
  { TT_NEGREP,   zGlibc_C99_Inline_3Bypass0, (regex_t*)NULL },
  { TT_EGREP,    zGlibc_C99_Inline_3Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Glibc_C99_Inline_3
 */
static const char* apzGlibc_C99_Inline_3Patch[] = {
    "format",
    "# if defined(__cplusplus) || defined(__GNUC_STDC_INLINE__)",
    "^# ifdef __cplusplus$",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Glibc_C99_Inline_4 fix
 */
tSCC zGlibc_C99_Inline_4Name[] =
     "glibc_c99_inline_4";

/*
 *  File name selection pattern
 */
tSCC zGlibc_C99_Inline_4List[] =
  "sys/sysmacros.h\0*/sys/sysmacros.h\0wchar.h\0*/wchar.h\0pthread.h\0*/pthread.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzGlibc_C99_Inline_4Machs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zGlibc_C99_Inline_4Select0[] =
       "(^| )extern __inline";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zGlibc_C99_Inline_4Bypass0[] =
       "__extern_inline|__gnu_inline__";

#define    GLIBC_C99_INLINE_4_TEST_CT  2
static tTestDesc aGlibc_C99_Inline_4Tests[] = {
  { TT_NEGREP,   zGlibc_C99_Inline_4Bypass0, (regex_t*)NULL },
  { TT_EGREP,    zGlibc_C99_Inline_4Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Glibc_C99_Inline_4
 */
static const char* apzGlibc_C99_Inline_4Patch[] = {
    "format",
    "%0 __attribute__ ((__gnu_inline__))",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Glibc_Mutex_Init fix
 */
tSCC zGlibc_Mutex_InitName[] =
     "glibc_mutex_init";

/*
 *  File name selection pattern
 */
tSCC zGlibc_Mutex_InitList[] =
  "pthread.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzGlibc_Mutex_InitMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zGlibc_Mutex_InitSelect0[] =
       "\\{ *\\{ *0, *\\} *\\}";

#define    GLIBC_MUTEX_INIT_TEST_CT  1
static tTestDesc aGlibc_Mutex_InitTests[] = {
  { TT_EGREP,    zGlibc_Mutex_InitSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Glibc_Mutex_Init
 */
static const char* apzGlibc_Mutex_InitPatch[] = { sed_cmd_z,
    "-e", "/define[ \t]\\{1,\\}PTHREAD_MUTEX_INITIALIZER[ \t]*\\\\/{\n\
N\n\
s/{ { 0, } }/{ { 0, 0, 0, 0, 0, 0 } }/\n\
}",
    "-e", "s/{ \\(0, 0, 0, 0, PTHREAD_MUTEX_\\(RECURSIVE\\)_NP\\) }/{ \\1, 0 }/",
    "-e", "s/{ \\(0, 0, 0, 0, PTHREAD_MUTEX_\\(ERRORCHECK\\)_NP\\) }/{ \\1, 0 }/",
    "-e", "s/{ \\(0, 0, 0, 0, PTHREAD_MUTEX_\\(ADAPTIVE\\)_NP\\) }/{ \\1, 0 }/",
    "-e", "s/{ \\(0, 0, 0, PTHREAD_MUTEX_\\(RECURSIVE\\)_NP\\) }/{ \\1, 0, 0 }/",
    "-e", "s/{ \\(0, 0, 0, PTHREAD_MUTEX_\\(ERRORCHECK\\)_NP\\) }/{ \\1, 0, 0 }/",
    "-e", "s/{ \\(0, 0, 0, PTHREAD_MUTEX_\\(ADAPTIVE\\)_NP\\) }/{ \\1, 0, 0 }/",
    "-e", "/define[ \t]\\{1,\\}PTHREAD_RWLOCK_INITIALIZER[ \t]*\\\\/N;s/^[ \t]*#[ \t]*\\(define[ \t]\\{1,\\}PTHREAD_RWLOCK_INITIALIZER[ \t]*\\\\\\)\\n[ \t]*{ { 0, } }/# if __WORDSIZE == 64\\\n\
#  \\1\\\n\
  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }\\\n\
# else\\\n\
#  \\1\\\n\
  { { 0, 0, 0, 0, 0, 0, 0, 0 } }\\\n\
# endif/",
    "-e", "s/{ \\(0, 0, 0, 0, 0, 0, PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP\\) }/{ \\1, 0 }/",
    "-e", "/define[ \t]\\{1,\\}PTHREAD_COND_INITIALIZER/s/{ { 0, } }/{ { 0, 0, 0, 0, 0, (void *) 0, 0, 0 } }/",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Glibc_Stdint fix
 */
tSCC zGlibc_StdintName[] =
     "glibc_stdint";

/*
 *  File name selection pattern
 */
tSCC zGlibc_StdintList[] =
  "stdint.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzGlibc_StdintMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zGlibc_StdintSelect0[] =
       "GNU C Library";

#define    GLIBC_STDINT_TEST_CT  1
static tTestDesc aGlibc_StdintTests[] = {
  { TT_EGREP,    zGlibc_StdintSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Glibc_Stdint
 */
static const char* apzGlibc_StdintPatch[] = {
    "format",
    "# define UINT8_C(c)\tc\n\
# define UINT16_C(c)\tc",
    "# define UINT8_C\\(c\\)\tc ## U\n\
# define UINT16_C\\(c\\)\tc ## U",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Glibc_Strncpy fix
 */
tSCC zGlibc_StrncpyName[] =
     "glibc_strncpy";

/*
 *  File name selection pattern
 */
tSCC zGlibc_StrncpyList[] =
  "bits/string2.h\0*/bits/string2.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzGlibc_StrncpyMachs (const char**)NULL

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zGlibc_StrncpyBypass0[] =
       "__builtin_strncpy";

#define    GLIBC_STRNCPY_TEST_CT  1
static tTestDesc aGlibc_StrncpyTests[] = {
  { TT_NEGREP,   zGlibc_StrncpyBypass0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Glibc_Strncpy
 */
static const char* apzGlibc_StrncpyPatch[] = {
    "format",
    "#  define strncpy(dest, src, n) __builtin_strncpy (dest, src, n)",
    "#  define strncpy([^\n\
]*\\\\\n\
)*[^\n\
]*",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Glibc_Tgmath fix
 */
tSCC zGlibc_TgmathName[] =
     "glibc_tgmath";

/*
 *  File name selection pattern
 */
tSCC zGlibc_TgmathList[] =
  "tgmath.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzGlibc_TgmathMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zGlibc_TgmathSelect0[] =
       "\\(\\(\\(type\\) 0.25\\) && \\(\\(type\\) 0.25 - 1\\)\\)";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zGlibc_TgmathBypass0[] =
       "__floating_type\\(type\\) \\\\\n\
.*__builtin_classify_type";

#define    GLIBC_TGMATH_TEST_CT  2
static tTestDesc aGlibc_TgmathTests[] = {
  { TT_NEGREP,   zGlibc_TgmathBypass0, (regex_t*)NULL },
  { TT_EGREP,    zGlibc_TgmathSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Glibc_Tgmath
 */
static const char* apzGlibc_TgmathPatch[] = {
    "format",
    "(__builtin_classify_type ((type) 0) == 8 || (__builtin_classify_type ((type) 0) == 9 && __builtin_classify_type (__real__ ((type) 0)) == 8))",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Gnu_Types fix
 */
tSCC zGnu_TypesName[] =
     "gnu_types";

/*
 *  File name selection pattern
 */
tSCC zGnu_TypesList[] =
  "sys/types.h\0stdlib.h\0sys/stdtypes.h\0stddef.h\0memory.h\0unistd.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzGnu_TypesMachs[] = {
        "*-*-solaris2.1[0-9]*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zGnu_TypesSelect0[] =
       "^[ \t]*typedef[ \t]+.*[ \t](ptrdiff|size|wchar)_t;";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zGnu_TypesBypass0[] =
       "_GCC_(PTRDIFF|SIZE|WCHAR)_T";

#define    GNU_TYPES_TEST_CT  2
static tTestDesc aGnu_TypesTests[] = {
  { TT_NEGREP,   zGnu_TypesBypass0, (regex_t*)NULL },
  { TT_EGREP,    zGnu_TypesSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Gnu_Types
 */
static const char* apzGnu_TypesPatch[] = {
    "gnu_type",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hp_Inline fix
 */
tSCC zHp_InlineName[] =
     "hp_inline";

/*
 *  File name selection pattern
 */
tSCC zHp_InlineList[] =
  "sys/spinlock.h\0machine/machparam.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzHp_InlineMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHp_InlineSelect0[] =
       "[ \t]*#[ \t]*include[ \t]+\"\\.\\./machine/";

#define    HP_INLINE_TEST_CT  1
static tTestDesc aHp_InlineTests[] = {
  { TT_EGREP,    zHp_InlineSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hp_Inline
 */
static const char* apzHp_InlinePatch[] = {
    "format",
    "%1<machine/%2.h>",
    "([ \t]*#[ \t]*include[ \t]+)\"\\.\\./machine/([a-z]+)\\.h\"",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hp_Sysfile fix
 */
tSCC zHp_SysfileName[] =
     "hp_sysfile";

/*
 *  File name selection pattern
 */
tSCC zHp_SysfileList[] =
  "sys/file.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzHp_SysfileMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHp_SysfileSelect0[] =
       "HPUX_SOURCE";

#define    HP_SYSFILE_TEST_CT  1
static tTestDesc aHp_SysfileTests[] = {
  { TT_EGREP,    zHp_SysfileSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hp_Sysfile
 */
static const char* apzHp_SysfilePatch[] = {
    "format",
    "(struct file *, ...)",
    "\\(\\.\\.\\.\\)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hppa_Hpux_Fp_Macros fix
 */
tSCC zHppa_Hpux_Fp_MacrosName[] =
     "hppa_hpux_fp_macros";

/*
 *  File name selection pattern
 */
tSCC zHppa_Hpux_Fp_MacrosList[] =
  "math.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzHppa_Hpux_Fp_MacrosMachs[] = {
        "hppa*-hp-hpux11*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHppa_Hpux_Fp_MacrosSelect0[] =
       "#[ \t]*define[ \t]*FP_NORMAL.*\n\
#[ \t]*define[ \t]*FP_ZERO.*\n\
#[ \t]*define[ \t]*FP_INFINITE.*\n\
#[ \t]*define[ \t]*FP_SUBNORMAL.*\n\
#[ \t]*define[ \t]*FP_NAN.*\n";

#define    HPPA_HPUX_FP_MACROS_TEST_CT  1
static tTestDesc aHppa_Hpux_Fp_MacrosTests[] = {
  { TT_EGREP,    zHppa_Hpux_Fp_MacrosSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hppa_Hpux_Fp_Macros
 */
static const char* apzHppa_Hpux_Fp_MacrosPatch[] = {
    "format",
    "#endif /* _INCLUDE_HPUX_SOURCE */\n\n\
#if defined(_INCLUDE_HPUX_SOURCE) || \\\n\
   (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L))\n\
%0#endif\n\n\
#ifdef _INCLUDE_HPUX_SOURCE\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux10_Cpp_Pow_Inline fix
 */
tSCC zHpux10_Cpp_Pow_InlineName[] =
     "hpux10_cpp_pow_inline";

/*
 *  File name selection pattern
 */
tSCC zHpux10_Cpp_Pow_InlineList[] =
  "fixinc-test-limits.h\0math.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzHpux10_Cpp_Pow_InlineMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux10_Cpp_Pow_InlineSelect0[] =
       "^# +ifdef +__cplusplus\n\
 +\\}\n\
 +inline +double +pow\\(double +__d,int +__expon\\) +\\{\n\
[ \t]+return +pow\\(__d,\\(double\\)__expon\\);\n\
 +\\}\n\
 +extern +\"C\" +\\{\n\
#else\n\
# +endif";

#define    HPUX10_CPP_POW_INLINE_TEST_CT  1
static tTestDesc aHpux10_Cpp_Pow_InlineTests[] = {
  { TT_EGREP,    zHpux10_Cpp_Pow_InlineSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux10_Cpp_Pow_Inline
 */
static const char* apzHpux10_Cpp_Pow_InlinePatch[] = {
    "format",
    "",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux11_Cpp_Pow_Inline fix
 */
tSCC zHpux11_Cpp_Pow_InlineName[] =
     "hpux11_cpp_pow_inline";

/*
 *  File name selection pattern
 */
tSCC zHpux11_Cpp_Pow_InlineList[] =
  "math.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzHpux11_Cpp_Pow_InlineMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux11_Cpp_Pow_InlineSelect0[] =
       " +inline double pow\\(double d,int expon\\) \\{\n\
 +return pow\\(d, \\(double\\)expon\\);\n\
 +\\}\n";

#define    HPUX11_CPP_POW_INLINE_TEST_CT  1
static tTestDesc aHpux11_Cpp_Pow_InlineTests[] = {
  { TT_EGREP,    zHpux11_Cpp_Pow_InlineSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux11_Cpp_Pow_Inline
 */
static const char* apzHpux11_Cpp_Pow_InlinePatch[] = {
    "format",
    "",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux10_Ctype_Declarations1 fix
 */
tSCC zHpux10_Ctype_Declarations1Name[] =
     "hpux10_ctype_declarations1";

/*
 *  File name selection pattern
 */
tSCC zHpux10_Ctype_Declarations1List[] =
  "ctype.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzHpux10_Ctype_Declarations1Machs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux10_Ctype_Declarations1Select0[] =
       "^#[ \t]*define _toupper\\(__c\\)[ \t]*__toupper\\(__c\\)";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zHpux10_Ctype_Declarations1Bypass0[] =
       "^[ \t]*extern[ \t]*int[ \t]*__tolower[ \t]*\\(";

#define    HPUX10_CTYPE_DECLARATIONS1_TEST_CT  2
static tTestDesc aHpux10_Ctype_Declarations1Tests[] = {
  { TT_NEGREP,   zHpux10_Ctype_Declarations1Bypass0, (regex_t*)NULL },
  { TT_EGREP,    zHpux10_Ctype_Declarations1Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux10_Ctype_Declarations1
 */
static const char* apzHpux10_Ctype_Declarations1Patch[] = {
    "format",
    "#ifdef _PROTOTYPES\n\
extern int __tolower(int);\n\
extern int __toupper(int);\n\
#else /* NOT _PROTOTYPES */\n\
extern int __tolower();\n\
extern int __toupper();\n\
#endif /* _PROTOTYPES */\n\n\
%0\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux10_Ctype_Declarations2 fix
 */
tSCC zHpux10_Ctype_Declarations2Name[] =
     "hpux10_ctype_declarations2";

/*
 *  File name selection pattern
 */
tSCC zHpux10_Ctype_Declarations2List[] =
  "ctype.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzHpux10_Ctype_Declarations2Machs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux10_Ctype_Declarations2Select0[] =
       "^#  if defined\\(_SB_CTYPE_MACROS\\) && \\!defined\\(__lint\\)";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zHpux10_Ctype_Declarations2Bypass0[] =
       "^[ \t]*extern[ \t]*int[ \t]*_isalnum[ \t]*\\(";

#define    HPUX10_CTYPE_DECLARATIONS2_TEST_CT  2
static tTestDesc aHpux10_Ctype_Declarations2Tests[] = {
  { TT_NEGREP,   zHpux10_Ctype_Declarations2Bypass0, (regex_t*)NULL },
  { TT_EGREP,    zHpux10_Ctype_Declarations2Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux10_Ctype_Declarations2
 */
static const char* apzHpux10_Ctype_Declarations2Patch[] = {
    "format",
    "%0\n\n\
#ifdef _PROTOTYPES\n\
     extern int _isalnum(int);\n\
     extern int _isalpha(int);\n\
     extern int _iscntrl(int);\n\
     extern int _isdigit(int);\n\
     extern int _isgraph(int);\n\
     extern int _islower(int);\n\
     extern int _isprint(int);\n\
     extern int _ispunct(int);\n\
     extern int _isspace(int);\n\
     extern int _isupper(int);\n\
     extern int _isxdigit(int);\n\
#  else /* not _PROTOTYPES */\n\
     extern int _isalnum();\n\
     extern int _isalpha();\n\
     extern int _iscntrl();\n\
     extern int _isdigit();\n\
     extern int _isgraph();\n\
     extern int _islower();\n\
     extern int _isprint();\n\
     extern int _ispunct();\n\
     extern int _isspace();\n\
     extern int _isupper();\n\
     extern int _isxdigit();\n\
#endif /* _PROTOTYPES */\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux10_Stdio_Declarations fix
 */
tSCC zHpux10_Stdio_DeclarationsName[] =
     "hpux10_stdio_declarations";

/*
 *  File name selection pattern
 */
tSCC zHpux10_Stdio_DeclarationsList[] =
  "stdio.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzHpux10_Stdio_DeclarationsMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux10_Stdio_DeclarationsSelect0[] =
       "^#[ \t]*define _iob[ \t]*__iob";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zHpux10_Stdio_DeclarationsBypass0[] =
       "^[ \t]*extern[ \t]*int[ \t]*vsnprintf[ \t]*\\(";

#define    HPUX10_STDIO_DECLARATIONS_TEST_CT  2
static tTestDesc aHpux10_Stdio_DeclarationsTests[] = {
  { TT_NEGREP,   zHpux10_Stdio_DeclarationsBypass0, (regex_t*)NULL },
  { TT_EGREP,    zHpux10_Stdio_DeclarationsSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux10_Stdio_Declarations
 */
static const char* apzHpux10_Stdio_DeclarationsPatch[] = {
    "format",
    "%0\n\n\
#  if defined(__STDC__) || defined(__cplusplus)\n\
     extern int snprintf(char *, size_t, const char *, ...);\n\
     extern int vsnprintf(char *, size_t, const char *, __va_list);\n\
#  else /* not __STDC__) || __cplusplus */\n\
     extern int snprintf();\n\
     extern int vsnprintf();\n\
#  endif /* __STDC__) || __cplusplus */\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux11_Abs fix
 */
tSCC zHpux11_AbsName[] =
     "hpux11_abs";

/*
 *  File name selection pattern
 */
tSCC zHpux11_AbsList[] =
  "stdlib.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzHpux11_AbsMachs[] = {
        "*-hp-hpux11*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux11_AbsSelect0[] =
       "ifndef _MATH_INCLUDED";

#define    HPUX11_ABS_TEST_CT  1
static tTestDesc aHpux11_AbsTests[] = {
  { TT_EGREP,    zHpux11_AbsSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux11_Abs
 */
static const char* apzHpux11_AbsPatch[] = {
    "format",
    "if !defined(_MATH_INCLUDED) || defined(__GNUG__)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux11_Lwp_Rwlock_Valid fix
 */
tSCC zHpux11_Lwp_Rwlock_ValidName[] =
     "hpux11_lwp_rwlock_valid";

/*
 *  File name selection pattern
 */
tSCC zHpux11_Lwp_Rwlock_ValidList[] =
  "sys/pthread.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzHpux11_Lwp_Rwlock_ValidMachs[] = {
        "*-hp-hpux11*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux11_Lwp_Rwlock_ValidSelect0[] =
       "#define __LWP_RWLOCK_VALID[ \t]*0x8c91";

#define    HPUX11_LWP_RWLOCK_VALID_TEST_CT  1
static tTestDesc aHpux11_Lwp_Rwlock_ValidTests[] = {
  { TT_EGREP,    zHpux11_Lwp_Rwlock_ValidSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux11_Lwp_Rwlock_Valid
 */
static const char* apzHpux11_Lwp_Rwlock_ValidPatch[] = {
    "format",
    "#define __LWP_RWLOCK_VALID              -29551",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux11_Extern_Sendfile fix
 */
tSCC zHpux11_Extern_SendfileName[] =
     "hpux11_extern_sendfile";

/*
 *  File name selection pattern
 */
tSCC zHpux11_Extern_SendfileList[] =
  "sys/socket.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzHpux11_Extern_SendfileMachs[] = {
        "*-hp-hpux11.[12]*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux11_Extern_SendfileSelect0[] =
       "^[ \t]*extern sbsize_t sendfile.*\n\
.*, int\\)\\);\n";

#define    HPUX11_EXTERN_SENDFILE_TEST_CT  1
static tTestDesc aHpux11_Extern_SendfileTests[] = {
  { TT_EGREP,    zHpux11_Extern_SendfileSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux11_Extern_Sendfile
 */
static const char* apzHpux11_Extern_SendfilePatch[] = {
    "format",
    "#ifndef _APP32_64BIT_OFF_T\n\
%0#endif\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux11_Extern_Sendpath fix
 */
tSCC zHpux11_Extern_SendpathName[] =
     "hpux11_extern_sendpath";

/*
 *  File name selection pattern
 */
tSCC zHpux11_Extern_SendpathList[] =
  "sys/socket.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzHpux11_Extern_SendpathMachs[] = {
        "*-hp-hpux11.[12]*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux11_Extern_SendpathSelect0[] =
       "^[ \t]*extern sbsize_t sendpath.*\n\
.*, int\\)\\);\n";

#define    HPUX11_EXTERN_SENDPATH_TEST_CT  1
static tTestDesc aHpux11_Extern_SendpathTests[] = {
  { TT_EGREP,    zHpux11_Extern_SendpathSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux11_Extern_Sendpath
 */
static const char* apzHpux11_Extern_SendpathPatch[] = {
    "format",
    "#ifndef _APP32_64BIT_OFF_T\n\
%0#endif\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux11_Fabsf fix
 */
tSCC zHpux11_FabsfName[] =
     "hpux11_fabsf";

/*
 *  File name selection pattern
 */
tSCC zHpux11_FabsfList[] =
  "math.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzHpux11_FabsfMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux11_FabsfSelect0[] =
       "^[ \t]*#[ \t]*define[ \t]+fabsf\\(.*";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zHpux11_FabsfBypass0[] =
       "__cplusplus";

#define    HPUX11_FABSF_TEST_CT  2
static tTestDesc aHpux11_FabsfTests[] = {
  { TT_NEGREP,   zHpux11_FabsfBypass0, (regex_t*)NULL },
  { TT_EGREP,    zHpux11_FabsfSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux11_Fabsf
 */
static const char* apzHpux11_FabsfPatch[] = {
    "format",
    "#ifndef __cplusplus\n\
%0\n\
#endif",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux11_Pthread_Const fix
 */
tSCC zHpux11_Pthread_ConstName[] =
     "hpux11_pthread_const";

/*
 *  File name selection pattern
 */
tSCC zHpux11_Pthread_ConstList[] =
  "sys/pthread.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzHpux11_Pthread_ConstMachs[] = {
        "*-hp-hpux11.[0-3]*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux11_Pthread_ConstSelect0[] =
       "^#define[ \t]*__POINTER_SET[ \t]*\\(\\(void \\*\\) 1LL\\)";

#define    HPUX11_PTHREAD_CONST_TEST_CT  1
static tTestDesc aHpux11_Pthread_ConstTests[] = {
  { TT_EGREP,    zHpux11_Pthread_ConstSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux11_Pthread_Const
 */
static const char* apzHpux11_Pthread_ConstPatch[] = {
    "format",
    "#define __POINTER_SET\t\t((void *) 1L)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux11_Size_T fix
 */
tSCC zHpux11_Size_TName[] =
     "hpux11_size_t";

/*
 *  File name selection pattern
 */
#define zHpux11_Size_TList (char*)NULL
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzHpux11_Size_TMachs[] = {
        "*-hp-hpux11*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux11_Size_TSelect0[] =
       "__size_t";

#define    HPUX11_SIZE_T_TEST_CT  1
static tTestDesc aHpux11_Size_TTests[] = {
  { TT_EGREP,    zHpux11_Size_TSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux11_Size_T
 */
static const char* apzHpux11_Size_TPatch[] = {
    "format",
    "_hpux_size_t",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux11_Snprintf fix
 */
tSCC zHpux11_SnprintfName[] =
     "hpux11_snprintf";

/*
 *  File name selection pattern
 */
tSCC zHpux11_SnprintfList[] =
  "stdio.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzHpux11_SnprintfMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux11_SnprintfSelect0[] =
       "(extern int snprintf *\\(char *\\*, *(|__|_hpux_)size_t,) *(char *\\*, *\\.\\.\\.\\);)";

#define    HPUX11_SNPRINTF_TEST_CT  1
static tTestDesc aHpux11_SnprintfTests[] = {
  { TT_EGREP,    zHpux11_SnprintfSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux11_Snprintf
 */
static const char* apzHpux11_SnprintfPatch[] = {
    "format",
    "%1 const %3",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux11_Vsnprintf fix
 */
tSCC zHpux11_VsnprintfName[] =
     "hpux11_vsnprintf";

/*
 *  File name selection pattern
 */
tSCC zHpux11_VsnprintfList[] =
  "stdio.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzHpux11_VsnprintfMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux11_VsnprintfSelect0[] =
       "(extern int vsnprintf\\(char \\*, _[hpux]*_size_t, const char \\*,) __va__list\\);";

#define    HPUX11_VSNPRINTF_TEST_CT  1
static tTestDesc aHpux11_VsnprintfTests[] = {
  { TT_EGREP,    zHpux11_VsnprintfSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux11_Vsnprintf
 */
static const char* apzHpux11_VsnprintfPatch[] = {
    "format",
    "%1 __va_list);",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux8_Bogus_Inlines fix
 */
tSCC zHpux8_Bogus_InlinesName[] =
     "hpux8_bogus_inlines";

/*
 *  File name selection pattern
 */
tSCC zHpux8_Bogus_InlinesList[] =
  "math.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzHpux8_Bogus_InlinesMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux8_Bogus_InlinesSelect0[] =
       "inline";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zHpux8_Bogus_InlinesBypass0[] =
       "__GNUG__";

#define    HPUX8_BOGUS_INLINES_TEST_CT  2
static tTestDesc aHpux8_Bogus_InlinesTests[] = {
  { TT_NEGREP,   zHpux8_Bogus_InlinesBypass0, (regex_t*)NULL },
  { TT_EGREP,    zHpux8_Bogus_InlinesSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux8_Bogus_Inlines
 */
static const char* apzHpux8_Bogus_InlinesPatch[] = { sed_cmd_z,
    "-e", "s@inline int abs(int [a-z][a-z]*) {.*}@extern \"C\" int abs(int);@",
    "-e", "s@inline double abs(double [a-z][a-z]*) {.*}@@",
    "-e", "s@inline int sqr(int [a-z][a-z]*) {.*}@@",
    "-e", "s@inline double sqr(double [a-z][a-z]*) {.*}@@",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux_C99_Intptr fix
 */
tSCC zHpux_C99_IntptrName[] =
     "hpux_c99_intptr";

/*
 *  File name selection pattern
 */
tSCC zHpux_C99_IntptrList[] =
  "stdint-hpux11.h\0stdint.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzHpux_C99_IntptrMachs[] = {
        "*-hp-hpux11.3*",
        (const char*)NULL };
#define HPUX_C99_INTPTR_TEST_CT  0
#define aHpux_C99_IntptrTests   (tTestDesc*)NULL

/*
 *  Fix Command Arguments for Hpux_C99_Intptr
 */
static const char* apzHpux_C99_IntptrPatch[] = { sed_cmd_z,
    "-e", "s@^[ \t]*#[ \t]*define[ \t]*PTRDIFF_MAX[ \t]*INT32_MAX[ \t]*$@#define PTRDIFF_MAX (2147483647l)@",
    "-e", "s@^[ \t]*#[ \t]*define[ \t]*PTRDIFF_MIN[ \t]*INT32_MIN[ \t]*$@#define PTRDIFF_MIN (-PTRDIFF_MAX - 1)@",
    "-e", "s@^[ \t]*#[ \t]*define[ \t]*INTPTR_MAX[ \t]*INT32_MAX[ \t]*$@#define INTPTR_MAX (2147483647l)@",
    "-e", "s@^[ \t]*#[ \t]*define[ \t]*INTPTR_MIN[ \t]*INT32_MIN[ \t]*$@#define INTPTR_MIN (-INTPTR_MAX - 1)@",
    "-e", "s@^[ \t]*#[ \t]*define[ \t]*UINTPTR_MAX[ \t]*UINT32_MAX[ \t]*$@#define UINTPTR_MAX (4294967295ul)@",
    "-e", "s@^[ \t]*#[ \t]*define[ \t]*SIZE_MAX[ \t]*UINT32_MAX[ \t]*$@#define SIZE_MAX (4294967295ul)@",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux_C99_Inttypes fix
 */
tSCC zHpux_C99_InttypesName[] =
     "hpux_c99_inttypes";

/*
 *  File name selection pattern
 */
tSCC zHpux_C99_InttypesList[] =
  "inttypes.h\0stdint-hpux11.h\0stdint.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzHpux_C99_InttypesMachs[] = {
        "*-hp-hpux11.[23]*",
        (const char*)NULL };
#define HPUX_C99_INTTYPES_TEST_CT  0
#define aHpux_C99_InttypesTests   (tTestDesc*)NULL

/*
 *  Fix Command Arguments for Hpux_C99_Inttypes
 */
static const char* apzHpux_C99_InttypesPatch[] = { sed_cmd_z,
    "-e", "s@^[ \t]*#[ \t]*define[ \t]*UINT8_C(__c)[ \t]*__CONCAT_U__(__c)[ \t]*$@#define UINT8_C(__c) (__c)@",
    "-e", "s@^[ \t]*#[ \t]*define[ \t]*UINT16_C(__c)[ \t]*__CONCAT_U__(__c)[ \t]*$@#define UINT16_C(__c) (__c)@",
    "-e", "s@^[ \t]*#[ \t]*define[ \t]*INT32_C(__c)[ \t]*__CONCAT__(__c,l)[ \t]*$@#define INT32_C(__c) (__c)@",
    "-e", "s@^[ \t]*#[ \t]*define[ \t]*UINT32_C(__c)[ \t].*$@#define UINT32_C(__c) __CONCAT__(__c,u)@",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux_C99_Inttypes2 fix
 */
tSCC zHpux_C99_Inttypes2Name[] =
     "hpux_c99_inttypes2";

/*
 *  File name selection pattern
 */
tSCC zHpux_C99_Inttypes2List[] =
  "stdint-hpux11.h\0stdint.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzHpux_C99_Inttypes2Machs[] = {
        "*-hp-hpux11.2*",
        (const char*)NULL };
#define HPUX_C99_INTTYPES2_TEST_CT  0
#define aHpux_C99_Inttypes2Tests   (tTestDesc*)NULL

/*
 *  Fix Command Arguments for Hpux_C99_Inttypes2
 */
static const char* apzHpux_C99_Inttypes2Patch[] = { sed_cmd_z,
    "-e", "s@^[ \t]*#[ \t]*define[ \t]*INT8_C(__c)[ \t]*((signed char)(__c))[ \t]*$@#define INT8_C(__c) (__c)@",
    "-e", "s@^[ \t]*#[ \t]*define[ \t]*UINT8_C(__c)[ \t]*((unsigned char)(__c))[ \t]*$@#define UINT8_C(__c) (__c)@",
    "-e", "s@^[ \t]*#[ \t]*define[ \t]*INT16_C(__c)[ \t]*((short)(__c))[ \t]*$@#define INT16_C(__c) (__c)@",
    "-e", "s@^[ \t]*#[ \t]*define[ \t]*UINT16_C(__c)[ \t]*((unsigned short)(__c))[ \t]*$@#define UINT16_C(__c) (__c)@",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux_Ctype_Macros fix
 */
tSCC zHpux_Ctype_MacrosName[] =
     "hpux_ctype_macros";

/*
 *  File name selection pattern
 */
tSCC zHpux_Ctype_MacrosList[] =
  "ctype.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzHpux_Ctype_MacrosMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux_Ctype_MacrosSelect0[] =
       "((: |\\()__SB_masks \\? )(__SB_masks\\[__(alnum|c)\\] & _IS)";

#define    HPUX_CTYPE_MACROS_TEST_CT  1
static tTestDesc aHpux_Ctype_MacrosTests[] = {
  { TT_EGREP,    zHpux_Ctype_MacrosSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux_Ctype_Macros
 */
static const char* apzHpux_Ctype_MacrosPatch[] = {
    "format",
    "%1(int)%3",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux_Extern_Errno fix
 */
tSCC zHpux_Extern_ErrnoName[] =
     "hpux_extern_errno";

/*
 *  File name selection pattern
 */
tSCC zHpux_Extern_ErrnoList[] =
  "errno.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzHpux_Extern_ErrnoMachs[] = {
        "*-hp-hpux10.*",
        "*-hp-hpux11.[0-2]*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux_Extern_ErrnoSelect0[] =
       "^[ \t]*extern int errno;$";

#define    HPUX_EXTERN_ERRNO_TEST_CT  1
static tTestDesc aHpux_Extern_ErrnoTests[] = {
  { TT_EGREP,    zHpux_Extern_ErrnoSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux_Extern_Errno
 */
static const char* apzHpux_Extern_ErrnoPatch[] = {
    "format",
    "#ifdef __cplusplus\n\
extern \"C\" {\n\
#endif\n\
%0\n\
#ifdef __cplusplus\n\
}\n\
#endif",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux_Htonl fix
 */
tSCC zHpux_HtonlName[] =
     "hpux_htonl";

/*
 *  File name selection pattern
 */
tSCC zHpux_HtonlList[] =
  "netinet/in.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzHpux_HtonlMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux_HtonlSelect0[] =
       "#ifndef _XOPEN_SOURCE_EXTENDED[ \t]*\n\
(/\\*\n\
 \\* Macros for number representation conversion\\.\n\
 \\*/\n\
#ifndef ntohl)";

#define    HPUX_HTONL_TEST_CT  1
static tTestDesc aHpux_HtonlTests[] = {
  { TT_EGREP,    zHpux_HtonlSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux_Htonl
 */
static const char* apzHpux_HtonlPatch[] = {
    "format",
    "#if 1\n\
%1",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux_Imaginary_I fix
 */
tSCC zHpux_Imaginary_IName[] =
     "hpux_imaginary_i";

/*
 *  File name selection pattern
 */
tSCC zHpux_Imaginary_IList[] =
  "complex.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzHpux_Imaginary_IMachs[] = {
        "ia64-hp-hpux11.*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux_Imaginary_ISelect0[] =
       "^[ \t]*#[ \t]*define[ \t]*_Complex_I.*";

#define    HPUX_IMAGINARY_I_TEST_CT  1
static tTestDesc aHpux_Imaginary_ITests[] = {
  { TT_EGREP,    zHpux_Imaginary_ISelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux_Imaginary_I
 */
static const char* apzHpux_Imaginary_IPatch[] = {
    "format",
    "#define _Complex_I (__extension__ 1.0iF)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux_Inttype_Int8_T fix
 */
tSCC zHpux_Inttype_Int8_TName[] =
     "hpux_inttype_int8_t";

/*
 *  File name selection pattern
 */
tSCC zHpux_Inttype_Int8_TList[] =
  "sys/_inttypes.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzHpux_Inttype_Int8_TMachs[] = {
        "*-hp-hpux1[01].*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux_Inttype_Int8_TSelect0[] =
       "^[ \t]*typedef[ \t]*char[ \t]*int(_least){0,1}8_t.*";

#define    HPUX_INTTYPE_INT8_T_TEST_CT  1
static tTestDesc aHpux_Inttype_Int8_TTests[] = {
  { TT_EGREP,    zHpux_Inttype_Int8_TSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux_Inttype_Int8_T
 */
static const char* apzHpux_Inttype_Int8_TPatch[] = {
    "format",
    "typedef signed char int%18_t;",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux_Long_Double fix
 */
tSCC zHpux_Long_DoubleName[] =
     "hpux_long_double";

/*
 *  File name selection pattern
 */
tSCC zHpux_Long_DoubleList[] =
  "stdlib.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzHpux_Long_DoubleMachs[] = {
        "*-*-hpux10*",
        "*-*-hpux11.[012]*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux_Long_DoubleSelect0[] =
       "extern[ \t]long_double[ \t]strtold";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zHpux_Long_DoubleBypass0[] =
       "long_double_t";

#define    HPUX_LONG_DOUBLE_TEST_CT  2
static tTestDesc aHpux_Long_DoubleTests[] = {
  { TT_NEGREP,   zHpux_Long_DoubleBypass0, (regex_t*)NULL },
  { TT_EGREP,    zHpux_Long_DoubleSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux_Long_Double
 */
static const char* apzHpux_Long_DoublePatch[] = { sed_cmd_z,
    "-e", "/^#[ \t]*ifndef _LONG_DOUBLE/,/\\/\\* _LONG_DOUBLE \\*\\//D",
    "-e", "s/long_double/long double/g",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux_Long_Double_2 fix
 */
tSCC zHpux_Long_Double_2Name[] =
     "hpux_long_double_2";

/*
 *  File name selection pattern
 */
tSCC zHpux_Long_Double_2List[] =
  "stdlib.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzHpux_Long_Double_2Machs[] = {
        "hppa*-*-hpux11.3*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux_Long_Double_2Select0[] =
       "#[ \t]*if[ \t]*!defined\\(__ia64\\) \\|\\| defined\\(_PROTOTYPES\\) \\|\\| defined\\(_LONG_DOUBLE_STRUCT\\)";

#define    HPUX_LONG_DOUBLE_2_TEST_CT  1
static tTestDesc aHpux_Long_Double_2Tests[] = {
  { TT_EGREP,    zHpux_Long_Double_2Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux_Long_Double_2
 */
static const char* apzHpux_Long_Double_2Patch[] = {
    "format",
    "#  if !defined(_PROTOTYPES) || defined(_LONG_DOUBLE_STRUCT)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux_Pthread_Initializers fix
 */
tSCC zHpux_Pthread_InitializersName[] =
     "hpux_pthread_initializers";

/*
 *  File name selection pattern
 */
tSCC zHpux_Pthread_InitializersList[] =
  "sys/pthread.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzHpux_Pthread_InitializersMachs[] = {
        "*-hp-hpux11.[0-3]*",
        (const char*)NULL };
#define HPUX_PTHREAD_INITIALIZERS_TEST_CT  0
#define aHpux_Pthread_InitializersTests   (tTestDesc*)NULL

/*
 *  Fix Command Arguments for Hpux_Pthread_Initializers
 */
static const char* apzHpux_Pthread_InitializersPatch[] = { sed_cmd_z,
    "-e", "s@^[ \t]*1, 1, 1, 1,[ \t]*\\\\@\t{ 1, 1, 1, 1 },\t\t\t\t\t\t\t\\\\@",
    "-e", "s@^[ \t]*1,[ \t]*\\\\@\t{ 1, 0 }@",
    "-e", "/^[ \t]*0$/d",
    "-e", "s@__PTHREAD_MUTEX_VALID, 0@{ __PTHREAD_MUTEX_VALID, 0 }@",
    "-e", "s@^[ \t]*0, 0, -1, 0,[ \t]*\\\\@\t{ 0, 0, -1, 0 },\t\t\t\t\t\t\\\\@",
    "-e", "s@0, __LWP_MTX_VALID, 0, 1, 1, 1, 1,[ \t]*\\\\@{ 0, __LWP_MTX_VALID }, { 0, 1, 1, 1, 1 },\t\t\t\\\\@",
    "-e", "s@^[ \t]*__LWP_MTX_VALID, 0, 1, 1, 1, 1,[ \t]*\\\\@\t{ 0, __LWP_MTX_VALID }, { 0, 1, 1, 1, 1 },\t\t\t\\\\@",
    "-e", "s@^[ \t]*0, 0[ \t]*\\\\@\t{ 0, 0 }\t\t\t\t\t\t\t\\\\@",
    "-e", "s@__PTHREAD_COND_VALID, 0@{ __PTHREAD_COND_VALID, 0 }@",
    "-e", "s@__LWP_COND_VALID, 0,[ \t]*\\\\@{ __LWP_COND_VALID, 0 },\t\t\t\t\t\\\\@",
    "-e", "s@__PTHREAD_RWLOCK_VALID, 0@{ __PTHREAD_RWLOCK_VALID, 0 }@",
    "-e", "s@__LWP_RWLOCK_VALID, 0,[ \t]*\\\\@{ __LWP_RWLOCK_VALID, 0 },\t\t\t\t\t\\\\@",
    "-e", "s@^[ \t]*0, 0, 0, 0, 0, 0, 0[ \t]*\\\\@\t{ 0, 0, 0, 0, 0 }, { 0, 0}\t\t\t\t\t\\\\@",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux_Spu_Info fix
 */
tSCC zHpux_Spu_InfoName[] =
     "hpux_spu_info";

/*
 *  File name selection pattern
 */
tSCC zHpux_Spu_InfoList[] =
  "ia64/sys/getppdp.h\0*/sys/getppdp.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzHpux_Spu_InfoMachs[] = {
        "*-hp-hpux*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux_Spu_InfoSelect0[] =
       "^.*extern.*spu_info.*";

#define    HPUX_SPU_INFO_TEST_CT  1
static tTestDesc aHpux_Spu_InfoTests[] = {
  { TT_EGREP,    zHpux_Spu_InfoSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux_Spu_Info
 */
static const char* apzHpux_Spu_InfoPatch[] = {
    "format",
    "#ifdef _KERNEL\n\
%0\n\
#endif",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux_Stdint_Least_Fast fix
 */
tSCC zHpux_Stdint_Least_FastName[] =
     "hpux_stdint_least_fast";

/*
 *  File name selection pattern
 */
tSCC zHpux_Stdint_Least_FastList[] =
  "stdint-hpux11.h\0stdint.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzHpux_Stdint_Least_FastMachs[] = {
        "*-hp-hpux11.2*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux_Stdint_Least_FastSelect0[] =
       "^[ \t]*#[ \t]*define[ \t]+UINT_(LEAST|FAST)64_MAX[ \t]+ULLONG_MAX";

#define    HPUX_STDINT_LEAST_FAST_TEST_CT  1
static tTestDesc aHpux_Stdint_Least_FastTests[] = {
  { TT_EGREP,    zHpux_Stdint_Least_FastSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux_Stdint_Least_Fast
 */
static const char* apzHpux_Stdint_Least_FastPatch[] = {
    "format",
    "#  define\tUINT_%164_MAX\t__UINT64_MAX__",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux_Systime fix
 */
tSCC zHpux_SystimeName[] =
     "hpux_systime";

/*
 *  File name selection pattern
 */
tSCC zHpux_SystimeList[] =
  "sys/time.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzHpux_SystimeMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux_SystimeSelect0[] =
       "^extern struct sigevent;";

#define    HPUX_SYSTIME_TEST_CT  1
static tTestDesc aHpux_SystimeTests[] = {
  { TT_EGREP,    zHpux_SystimeSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux_Systime
 */
static const char* apzHpux_SystimePatch[] = {
    "format",
    "struct sigevent;",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Huge_Val_Hex fix
 */
tSCC zHuge_Val_HexName[] =
     "huge_val_hex";

/*
 *  File name selection pattern
 */
tSCC zHuge_Val_HexList[] =
  "bits/huge_val.h\0*/bits/huge_val.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzHuge_Val_HexMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHuge_Val_HexSelect0[] =
       "^#[ \t]*define[ \t]*HUGE_VAL[ \t].*0x1\\.0p.*";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zHuge_Val_HexBypass0[] =
       "__builtin_huge_val";

#define    HUGE_VAL_HEX_TEST_CT  2
static tTestDesc aHuge_Val_HexTests[] = {
  { TT_NEGREP,   zHuge_Val_HexBypass0, (regex_t*)NULL },
  { TT_EGREP,    zHuge_Val_HexSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Huge_Val_Hex
 */
static const char* apzHuge_Val_HexPatch[] = {
    "format",
    "#define HUGE_VAL (__builtin_huge_val())\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Huge_Valf_Hex fix
 */
tSCC zHuge_Valf_HexName[] =
     "huge_valf_hex";

/*
 *  File name selection pattern
 */
tSCC zHuge_Valf_HexList[] =
  "bits/huge_val.h\0*/bits/huge_val.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzHuge_Valf_HexMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHuge_Valf_HexSelect0[] =
       "^#[ \t]*define[ \t]*HUGE_VALF[ \t].*0x1\\.0p.*";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zHuge_Valf_HexBypass0[] =
       "__builtin_huge_valf";

#define    HUGE_VALF_HEX_TEST_CT  2
static tTestDesc aHuge_Valf_HexTests[] = {
  { TT_NEGREP,   zHuge_Valf_HexBypass0, (regex_t*)NULL },
  { TT_EGREP,    zHuge_Valf_HexSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Huge_Valf_Hex
 */
static const char* apzHuge_Valf_HexPatch[] = {
    "format",
    "#define HUGE_VALF (__builtin_huge_valf())\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Huge_Vall_Hex fix
 */
tSCC zHuge_Vall_HexName[] =
     "huge_vall_hex";

/*
 *  File name selection pattern
 */
tSCC zHuge_Vall_HexList[] =
  "bits/huge_val.h\0*/bits/huge_val.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzHuge_Vall_HexMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHuge_Vall_HexSelect0[] =
       "^#[ \t]*define[ \t]*HUGE_VALL[ \t].*0x1\\.0p.*";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zHuge_Vall_HexBypass0[] =
       "__builtin_huge_vall";

#define    HUGE_VALL_HEX_TEST_CT  2
static tTestDesc aHuge_Vall_HexTests[] = {
  { TT_NEGREP,   zHuge_Vall_HexBypass0, (regex_t*)NULL },
  { TT_EGREP,    zHuge_Vall_HexSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Huge_Vall_Hex
 */
static const char* apzHuge_Vall_HexPatch[] = {
    "format",
    "#define HUGE_VALL (__builtin_huge_vall())\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Int_Abort_Free_And_Exit fix
 */
tSCC zInt_Abort_Free_And_ExitName[] =
     "int_abort_free_and_exit";

/*
 *  File name selection pattern
 */
tSCC zInt_Abort_Free_And_ExitList[] =
  "stdlib.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzInt_Abort_Free_And_ExitMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zInt_Abort_Free_And_ExitSelect0[] =
       "int[ \t]+(abort|free|exit)[ \t]*\\(";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zInt_Abort_Free_And_ExitBypass0[] =
       "_CLASSIC_ANSI_TYPES";

#define    INT_ABORT_FREE_AND_EXIT_TEST_CT  2
static tTestDesc aInt_Abort_Free_And_ExitTests[] = {
  { TT_NEGREP,   zInt_Abort_Free_And_ExitBypass0, (regex_t*)NULL },
  { TT_EGREP,    zInt_Abort_Free_And_ExitSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Int_Abort_Free_And_Exit
 */
static const char* apzInt_Abort_Free_And_ExitPatch[] = {
    "format",
    "void\t%1(",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Io_Quotes_Def fix
 */
tSCC zIo_Quotes_DefName[] =
     "io_quotes_def";

/*
 *  File name selection pattern
 */
#define zIo_Quotes_DefList (char*)NULL
/*
 *  Machine/OS name selection pattern
 */
#define apzIo_Quotes_DefMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zIo_Quotes_DefSelect0[] =
       "define[ \t]+[A-Z0-9_]+IO[A-Z]*\\([a-zA-Z][,)]";

#define    IO_QUOTES_DEF_TEST_CT  1
static tTestDesc aIo_Quotes_DefTests[] = {
  { TT_EGREP,    zIo_Quotes_DefSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Io_Quotes_Def
 */
static const char* apzIo_Quotes_DefPatch[] = {
    "char_macro_def",
    "IO",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Io_Quotes_Use fix
 */
tSCC zIo_Quotes_UseName[] =
     "io_quotes_use";

/*
 *  File name selection pattern
 */
#define zIo_Quotes_UseList (char*)NULL
/*
 *  Machine/OS name selection pattern
 */
#define apzIo_Quotes_UseMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zIo_Quotes_UseSelect0[] =
       "define[ \t]+[A-Z0-9_]+[ \t]+[A-Z0-9_]+IO[A-Z]*[ \t]*\\( *[^,']";

#define    IO_QUOTES_USE_TEST_CT  1
static tTestDesc aIo_Quotes_UseTests[] = {
  { TT_EGREP,    zIo_Quotes_UseSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Io_Quotes_Use
 */
static const char* apzIo_Quotes_UsePatch[] = {
    "char_macro_use",
    "IO",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Ip_Missing_Semi fix
 */
tSCC zIp_Missing_SemiName[] =
     "ip_missing_semi";

/*
 *  File name selection pattern
 */
tSCC zIp_Missing_SemiList[] =
  "netinet/ip.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzIp_Missing_SemiMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zIp_Missing_SemiSelect0[] =
       "}$";

#define    IP_MISSING_SEMI_TEST_CT  1
static tTestDesc aIp_Missing_SemiTests[] = {
  { TT_EGREP,    zIp_Missing_SemiSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Ip_Missing_Semi
 */
static const char* apzIp_Missing_SemiPatch[] = { sed_cmd_z,
    "-e", "/^struct/,/^};/s/}$/};/",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Irix_Limits_Const fix
 */
tSCC zIrix_Limits_ConstName[] =
     "irix_limits_const";

/*
 *  File name selection pattern
 */
tSCC zIrix_Limits_ConstList[] =
  "fixinc-test-limits.h\0limits.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzIrix_Limits_ConstMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zIrix_Limits_ConstSelect0[] =
       "^extern const ";

#define    IRIX_LIMITS_CONST_TEST_CT  1
static tTestDesc aIrix_Limits_ConstTests[] = {
  { TT_EGREP,    zIrix_Limits_ConstSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Irix_Limits_Const
 */
static const char* apzIrix_Limits_ConstPatch[] = {
    "format",
    "extern __const ",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Irix_Stdio_Va_List fix
 */
tSCC zIrix_Stdio_Va_ListName[] =
     "irix_stdio_va_list";

/*
 *  File name selection pattern
 */
tSCC zIrix_Stdio_Va_ListList[] =
  "stdio.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzIrix_Stdio_Va_ListMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zIrix_Stdio_Va_ListSelect0[] =
       "/\\* va_list \\*/ char \\*";

#define    IRIX_STDIO_VA_LIST_TEST_CT  1
static tTestDesc aIrix_Stdio_Va_ListTests[] = {
  { TT_EGREP,    zIrix_Stdio_Va_ListSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Irix_Stdio_Va_List
 */
static const char* apzIrix_Stdio_Va_ListPatch[] = {
    "format",
    "__gnuc_va_list",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Kandr_Concat fix
 */
tSCC zKandr_ConcatName[] =
     "kandr_concat";

/*
 *  File name selection pattern
 */
tSCC zKandr_ConcatList[] =
  "sparc/asm_linkage.h\0sun*/asm_linkage.h\0arm/as_support.h\0arm/mc_type.h\0arm/xcb.h\0dev/chardefmac.h\0dev/ps_irq.h\0dev/screen.h\0dev/scsi.h\0sys/tty.h\0Xm.acorn/XmP.h\0bsd43/bsd43_.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzKandr_ConcatMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zKandr_ConcatSelect0[] =
       "/\\*\\*/";

#define    KANDR_CONCAT_TEST_CT  1
static tTestDesc aKandr_ConcatTests[] = {
  { TT_EGREP,    zKandr_ConcatSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Kandr_Concat
 */
static const char* apzKandr_ConcatPatch[] = {
    "format",
    "##",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Linux_Ia64_Ucontext fix
 */
tSCC zLinux_Ia64_UcontextName[] =
     "linux_ia64_ucontext";

/*
 *  File name selection pattern
 */
tSCC zLinux_Ia64_UcontextList[] =
  "sys/ucontext.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzLinux_Ia64_UcontextMachs[] = {
        "ia64-*-linux*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zLinux_Ia64_UcontextSelect0[] =
       "\\(\\(\\(char \\*\\) &\\(\\(struct sigcontext \\*\\) 0\\)->sc_gr\\[0\\]\\) - \\(char \\*\\) 0\\)";

#define    LINUX_IA64_UCONTEXT_TEST_CT  1
static tTestDesc aLinux_Ia64_UcontextTests[] = {
  { TT_EGREP,    zLinux_Ia64_UcontextSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Linux_Ia64_Ucontext
 */
static const char* apzLinux_Ia64_UcontextPatch[] = {
    "format",
    "__builtin_offsetof (struct sigcontext, sc_gr[0])",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Lynxos_No_Warning_In_Sys_Time_H fix
 */
tSCC zLynxos_No_Warning_In_Sys_Time_HName[] =
     "lynxos_no_warning_in_sys_time_h";

/*
 *  File name selection pattern
 */
tSCC zLynxos_No_Warning_In_Sys_Time_HList[] =
  "sys/time.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzLynxos_No_Warning_In_Sys_Time_HMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zLynxos_No_Warning_In_Sys_Time_HSelect0[] =
       "#warning[ \t]+Using <time.h> instead of <sys/time.h>";

#define    LYNXOS_NO_WARNING_IN_SYS_TIME_H_TEST_CT  1
static tTestDesc aLynxos_No_Warning_In_Sys_Time_HTests[] = {
  { TT_EGREP,    zLynxos_No_Warning_In_Sys_Time_HSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Lynxos_No_Warning_In_Sys_Time_H
 */
static const char* apzLynxos_No_Warning_In_Sys_Time_HPatch[] = {
    "format",
    "",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Lynxos_Missing_Putenv fix
 */
tSCC zLynxos_Missing_PutenvName[] =
     "lynxos_missing_putenv";

/*
 *  File name selection pattern
 */
tSCC zLynxos_Missing_PutenvList[] =
  "stdlib.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzLynxos_Missing_PutenvMachs[] = {
        "*-*-lynxos*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zLynxos_Missing_PutenvSelect0[] =
       "extern char \\*getenv[ \t]*_AP\\(\\(const char \\*\\)\\);";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zLynxos_Missing_PutenvBypass0[] =
       "putenv[ \\t]*\\(";

#define    LYNXOS_MISSING_PUTENV_TEST_CT  2
static tTestDesc aLynxos_Missing_PutenvTests[] = {
  { TT_NEGREP,   zLynxos_Missing_PutenvBypass0, (regex_t*)NULL },
  { TT_EGREP,    zLynxos_Missing_PutenvSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Lynxos_Missing_Putenv
 */
static const char* apzLynxos_Missing_PutenvPatch[] = {
    "format",
    "%0\n\
extern int putenv\t\t\t\t_AP((char *));",
    "extern char \\*getenv[ \t]*_AP\\(\\(const char \\*\\)\\);",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Machine_Ansi_H_Va_List fix
 */
tSCC zMachine_Ansi_H_Va_ListName[] =
     "machine_ansi_h_va_list";

/*
 *  File name selection pattern
 */
#define zMachine_Ansi_H_Va_ListList (char*)NULL
/*
 *  Machine/OS name selection pattern
 */
#define apzMachine_Ansi_H_Va_ListMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zMachine_Ansi_H_Va_ListSelect0[] =
       "define[ \t]+_BSD_VA_LIST_[ \t]";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zMachine_Ansi_H_Va_ListBypass0[] =
       "__builtin_va_list";

#define    MACHINE_ANSI_H_VA_LIST_TEST_CT  2
static tTestDesc aMachine_Ansi_H_Va_ListTests[] = {
  { TT_NEGREP,   zMachine_Ansi_H_Va_ListBypass0, (regex_t*)NULL },
  { TT_EGREP,    zMachine_Ansi_H_Va_ListSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Machine_Ansi_H_Va_List
 */
static const char* apzMachine_Ansi_H_Va_ListPatch[] = {
    "format",
    "%1__builtin_va_list",
    "(define[ \t]+_BSD_VA_LIST_[ \t]+).*",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Machine_Name fix
 */
tSCC zMachine_NameName[] =
     "machine_name";

/*
 *  File name selection pattern
 */
#define zMachine_NameList (char*)NULL
/*
 *  Machine/OS name selection pattern
 */
#define apzMachine_NameMachs (const char**)NULL

/*
 *  perform the C function call test
 */
tSCC zMachine_NameFTst0[] = "machine_name";

#define    MACHINE_NAME_TEST_CT  1
static tTestDesc aMachine_NameTests[] = {
  { TT_FUNCTION, zMachine_NameFTst0,   0 /* unused */ }, };

/*
 *  Fix Command Arguments for Machine_Name
 */
static const char* apzMachine_NamePatch[] = {
    "machine_name",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Math_Exception fix
 */
tSCC zMath_ExceptionName[] =
     "math_exception";

/*
 *  File name selection pattern
 */
tSCC zMath_ExceptionList[] =
  "math.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzMath_ExceptionMachs[] = {
        "*-*-solaris2.1[0-9]*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zMath_ExceptionSelect0[] =
       "struct exception";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zMath_ExceptionBypass0[] =
       "We have a problem when using C\\+\\+|for C\\+\\+, _[a-z0-9A-Z_]+_exception; for C, exception";

#define    MATH_EXCEPTION_TEST_CT  2
static tTestDesc aMath_ExceptionTests[] = {
  { TT_NEGREP,   zMath_ExceptionBypass0, (regex_t*)NULL },
  { TT_EGREP,    zMath_ExceptionSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Math_Exception
 */
static const char* apzMath_ExceptionPatch[] = {
    "wrap",
    "#ifdef __cplusplus\n\
#define exception __math_exception\n\
#endif\n",
    "#ifdef __cplusplus\n\
#undef exception\n\
#endif\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Math_Huge_Val_From_Dbl_Max fix
 */
tSCC zMath_Huge_Val_From_Dbl_MaxName[] =
     "math_huge_val_from_dbl_max";

/*
 *  File name selection pattern
 */
tSCC zMath_Huge_Val_From_Dbl_MaxList[] =
  "math.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzMath_Huge_Val_From_Dbl_MaxMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zMath_Huge_Val_From_Dbl_MaxSelect0[] =
       "define[ \t]+HUGE_VAL[ \t]+DBL_MAX";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zMath_Huge_Val_From_Dbl_MaxBypass0[] =
       "define[ \t]+DBL_MAX";

#define    MATH_HUGE_VAL_FROM_DBL_MAX_TEST_CT  2
static tTestDesc aMath_Huge_Val_From_Dbl_MaxTests[] = {
  { TT_NEGREP,   zMath_Huge_Val_From_Dbl_MaxBypass0, (regex_t*)NULL },
  { TT_EGREP,    zMath_Huge_Val_From_Dbl_MaxSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Math_Huge_Val_From_Dbl_Max
 */
static const char* apzMath_Huge_Val_From_Dbl_MaxPatch[] = { "sh", "-c",
    "\tdbl_max_def=`egrep 'define[ \t]+DBL_MAX[ \t]+.*' float.h | sed 's/.*DBL_MAX[ \t]*//' 2>/dev/null`\n\n\
\tif ( test -n \"${dbl_max_def}\" ) > /dev/null 2>&1\n\
\tthen sed -e '/define[ \t]*HUGE_VAL[ \t]*DBL_MAX/s@DBL_MAX@'\"$dbl_max_def@\"\n\
\telse cat\n\
\tfi",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Nested_Auth_Des fix
 */
tSCC zNested_Auth_DesName[] =
     "nested_auth_des";

/*
 *  File name selection pattern
 */
tSCC zNested_Auth_DesList[] =
  "rpc/rpc.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzNested_Auth_DesMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zNested_Auth_DesSelect0[] =
       "(/\\*.*rpc/auth_des\\.h>.*)/\\*";

#define    NESTED_AUTH_DES_TEST_CT  1
static tTestDesc aNested_Auth_DesTests[] = {
  { TT_EGREP,    zNested_Auth_DesSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Nested_Auth_Des
 */
static const char* apzNested_Auth_DesPatch[] = {
    "format",
    "%1*/ /*",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Netbsd_C99_Inline_1 fix
 */
tSCC zNetbsd_C99_Inline_1Name[] =
     "netbsd_c99_inline_1";

/*
 *  File name selection pattern
 */
tSCC zNetbsd_C99_Inline_1List[] =
  "signal.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzNetbsd_C99_Inline_1Machs[] = {
        "*-*-netbsd*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zNetbsd_C99_Inline_1Select0[] =
       "extern __inline int";

#define    NETBSD_C99_INLINE_1_TEST_CT  1
static tTestDesc aNetbsd_C99_Inline_1Tests[] = {
  { TT_EGREP,    zNetbsd_C99_Inline_1Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Netbsd_C99_Inline_1
 */
static const char* apzNetbsd_C99_Inline_1Patch[] = {
    "format",
    "extern\n\
#ifdef __GNUC_STDC_INLINE__\n\
__attribute__((__gnu_inline__))\n\
#endif\n\
__inline int",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Netbsd_C99_Inline_2 fix
 */
tSCC zNetbsd_C99_Inline_2Name[] =
     "netbsd_c99_inline_2";

/*
 *  File name selection pattern
 */
tSCC zNetbsd_C99_Inline_2List[] =
  "signal.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzNetbsd_C99_Inline_2Machs[] = {
        "*-*-netbsd*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zNetbsd_C99_Inline_2Select0[] =
       "#define _SIGINLINE extern __inline";

#define    NETBSD_C99_INLINE_2_TEST_CT  1
static tTestDesc aNetbsd_C99_Inline_2Tests[] = {
  { TT_EGREP,    zNetbsd_C99_Inline_2Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Netbsd_C99_Inline_2
 */
static const char* apzNetbsd_C99_Inline_2Patch[] = {
    "format",
    "#ifdef __GNUC_STDC_INLINE__\n\
#define _SIGINLINE extern __attribute__((__gnu_inline__)) __inline\n\
#else\n\
%0\n\
#endif",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Netbsd_Extra_Semicolon fix
 */
tSCC zNetbsd_Extra_SemicolonName[] =
     "netbsd_extra_semicolon";

/*
 *  File name selection pattern
 */
tSCC zNetbsd_Extra_SemicolonList[] =
  "sys/cdefs.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzNetbsd_Extra_SemicolonMachs[] = {
        "*-*-netbsd*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zNetbsd_Extra_SemicolonSelect0[] =
       "#define[ \t]*__END_DECLS[ \t]*};";

#define    NETBSD_EXTRA_SEMICOLON_TEST_CT  1
static tTestDesc aNetbsd_Extra_SemicolonTests[] = {
  { TT_EGREP,    zNetbsd_Extra_SemicolonSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Netbsd_Extra_Semicolon
 */
static const char* apzNetbsd_Extra_SemicolonPatch[] = {
    "format",
    "#define __END_DECLS }",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Newlib_Stdint_1 fix
 */
tSCC zNewlib_Stdint_1Name[] =
     "newlib_stdint_1";

/*
 *  File name selection pattern
 */
tSCC zNewlib_Stdint_1List[] =
  "stdint-newlib.h\0stdint.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzNewlib_Stdint_1Machs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zNewlib_Stdint_1Select0[] =
       "@todo - Add support for wint_t types";

#define    NEWLIB_STDINT_1_TEST_CT  1
static tTestDesc aNewlib_Stdint_1Tests[] = {
  { TT_EGREP,    zNewlib_Stdint_1Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Newlib_Stdint_1
 */
static const char* apzNewlib_Stdint_1Patch[] = { sed_cmd_z,
    "-e", "s@#define INT32_MIN.*@#define INT32_MIN (-INT32_MAX - 1)@",
    "-e", "s@#define INT32_MAX.*@#define INT32_MAX __INT32_MAX__@",
    "-e", "s@#define UINT32_MAX.*@#define UINT32_MAX __UINT32_MAX__@",
    "-e", "s@#define INT_LEAST32_MIN.*@#define INT_LEAST32_MIN (-INT_LEAST32_MAX - 1)@",
    "-e", "s@#define INT_LEAST32_MAX.*@#define INT_LEAST32_MAX __INT_LEAST32_MAX__@",
    "-e", "s@#define UINT_LEAST32_MAX.*@#define UINT_LEAST32_MAX __UINT_LEAST32_MAX__@",
    "-e", "s@#define INT_FAST\\([0-9]*\\)_MIN.*@#define INT_FAST\\1_MIN (-INT_FAST\\1_MAX - 1)@",
    "-e", "s@#define INT_FAST\\([0-9]*\\)_MAX.*@#define INT_FAST\\1_MAX __INT_FAST\\1_MAX__@",
    "-e", "s@#define UINT_FAST\\([0-9]*\\)_MAX.*@#define UINT_FAST\\1_MAX __UINT_FAST\\1_MAX__@",
    "-e", "s@#define SIZE_MAX.*@#define SIZE_MAX __SIZE_MAX__@",
    "-e", "s@#define PTRDIFF_MIN.*@#define PTRDIFF_MIN (-PTRDIFF_MAX - 1)@",
    "-e", "s@#define PTRDIFF_MAX.*@#define PTRDIFF_MAX __PTRDIFF_MAX__@",
    "-e", "s@#define UINT8_C.*@#define UINT8_C(c) __UINT8_C(c)@",
    "-e", "s@#define UINT16_C.*@#define UINT16_C(c) __UINT16_C(c)@",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Newlib_Stdint_2 fix
 */
tSCC zNewlib_Stdint_2Name[] =
     "newlib_stdint_2";

/*
 *  File name selection pattern
 */
tSCC zNewlib_Stdint_2List[] =
  "stdint-newlib.h\0stdint.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzNewlib_Stdint_2Machs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zNewlib_Stdint_2Select0[] =
       "@todo - Add support for wint_t types";

#define    NEWLIB_STDINT_2_TEST_CT  1
static tTestDesc aNewlib_Stdint_2Tests[] = {
  { TT_EGREP,    zNewlib_Stdint_2Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Newlib_Stdint_2
 */
static const char* apzNewlib_Stdint_2Patch[] = {
    "format",
    "#define INTMAX_MAX __INTMAX_MAX__\n\
#define INTMAX_MIN (-INTMAX_MAX - 1)\n\
#define UINTMAX_MAX __UINTMAX_MAX__\n\
#define WCHAR_MAX __WCHAR_MAX__\n\
#define WCHAR_MIN __WCHAR_MIN__\n\
#define WINT_MAX __WINT_MAX__\n\
#define WINT_MIN __WINT_MIN__\n\n\
%0",
    "/\\*\\* Macros for minimum-width integer constant expressions \\*/",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Next_Math_Prefix fix
 */
tSCC zNext_Math_PrefixName[] =
     "next_math_prefix";

/*
 *  File name selection pattern
 */
tSCC zNext_Math_PrefixList[] =
  "ansi/math.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzNext_Math_PrefixMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zNext_Math_PrefixSelect0[] =
       "^extern[ \t]+double[ \t]+__const__[ \t]";

#define    NEXT_MATH_PREFIX_TEST_CT  1
static tTestDesc aNext_Math_PrefixTests[] = {
  { TT_EGREP,    zNext_Math_PrefixSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Next_Math_Prefix
 */
static const char* apzNext_Math_PrefixPatch[] = {
    "format",
    "extern double %1(",
    "^extern[ \t]+double[ \t]+__const__[ \t]+([a-z]+)\\(",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Next_Template fix
 */
tSCC zNext_TemplateName[] =
     "next_template";

/*
 *  File name selection pattern
 */
tSCC zNext_TemplateList[] =
  "bsd/libc.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzNext_TemplateMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zNext_TemplateSelect0[] =
       "[ \t]template\\)";

#define    NEXT_TEMPLATE_TEST_CT  1
static tTestDesc aNext_TemplateTests[] = {
  { TT_EGREP,    zNext_TemplateSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Next_Template
 */
static const char* apzNext_TemplatePatch[] = {
    "format",
    "(%1)",
    "\\(([^)]*)[ \t]template\\)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Next_Volitile fix
 */
tSCC zNext_VolitileName[] =
     "next_volitile";

/*
 *  File name selection pattern
 */
tSCC zNext_VolitileList[] =
  "ansi/stdlib.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzNext_VolitileMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zNext_VolitileSelect0[] =
       "^extern[ \t]+volatile[ \t]+void[ \t]";

#define    NEXT_VOLITILE_TEST_CT  1
static tTestDesc aNext_VolitileTests[] = {
  { TT_EGREP,    zNext_VolitileSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Next_Volitile
 */
static const char* apzNext_VolitilePatch[] = {
    "format",
    "extern void %1(",
    "^extern[ \t]+volatile[ \t]+void[ \t]+(exit|abort)\\(",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Next_Wait_Union fix
 */
tSCC zNext_Wait_UnionName[] =
     "next_wait_union";

/*
 *  File name selection pattern
 */
tSCC zNext_Wait_UnionList[] =
  "sys/wait.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzNext_Wait_UnionMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zNext_Wait_UnionSelect0[] =
       "wait\\(union wait";

#define    NEXT_WAIT_UNION_TEST_CT  1
static tTestDesc aNext_Wait_UnionTests[] = {
  { TT_EGREP,    zNext_Wait_UnionSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Next_Wait_Union
 */
static const char* apzNext_Wait_UnionPatch[] = {
    "format",
    "wait(void",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Nodeent_Syntax fix
 */
tSCC zNodeent_SyntaxName[] =
     "nodeent_syntax";

/*
 *  File name selection pattern
 */
tSCC zNodeent_SyntaxList[] =
  "netdnet/dnetdb.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzNodeent_SyntaxMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zNodeent_SyntaxSelect0[] =
       "char[ \t]*\\*na_addr[ \t]*$";

#define    NODEENT_SYNTAX_TEST_CT  1
static tTestDesc aNodeent_SyntaxTests[] = {
  { TT_EGREP,    zNodeent_SyntaxSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Nodeent_Syntax
 */
static const char* apzNodeent_SyntaxPatch[] = {
    "format",
    "%0;",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Openbsd_Null_Definition fix
 */
tSCC zOpenbsd_Null_DefinitionName[] =
     "openbsd_null_definition";

/*
 *  File name selection pattern
 */
tSCC zOpenbsd_Null_DefinitionList[] =
  "locale.h\0stddef.h\0stdio.h\0string.h\0time.h\0unistd.h\0wchar.h\0sys/param.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzOpenbsd_Null_DefinitionMachs[] = {
        "*-*-openbsd*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zOpenbsd_Null_DefinitionSelect0[] =
       "__GNUG__";

#define    OPENBSD_NULL_DEFINITION_TEST_CT  1
static tTestDesc aOpenbsd_Null_DefinitionTests[] = {
  { TT_EGREP,    zOpenbsd_Null_DefinitionSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Openbsd_Null_Definition
 */
static const char* apzOpenbsd_Null_DefinitionPatch[] = {
    "format",
    "#ifndef NULL\n\
#ifdef __cplusplus\n\
#ifdef __GNUG__\n\
#define NULL\t__null\n\
#else\t /* ! __GNUG__  */\n\
#define NULL\t0L\n\
#endif\t /* __GNUG__  */\n\
#else\t /* ! __cplusplus  */\n\
#define NULL\t((void *)0)\n\
#endif\t /* __cplusplus  */\n\
#endif\t /* !NULL  */",
    "^#ifndef[ \t]*NULL\n\
^#ifdef[ \t]*__GNUG__\n\
^#define[ \t]*NULL[ \t]*__null\n\
^#else\n\
^#define[ \t]*NULL[ \t]*0L\n\
^#endif\n\
^#endif",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Obstack_Lvalue_Cast fix
 */
tSCC zObstack_Lvalue_CastName[] =
     "obstack_lvalue_cast";

/*
 *  File name selection pattern
 */
tSCC zObstack_Lvalue_CastList[] =
  "obstack.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzObstack_Lvalue_CastMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zObstack_Lvalue_CastSelect0[] =
       "\\*\\(\\(([^()]*)\\*\\)(.*)\\)\\+\\+ = \\(([^()]*)\\)";

#define    OBSTACK_LVALUE_CAST_TEST_CT  1
static tTestDesc aObstack_Lvalue_CastTests[] = {
  { TT_EGREP,    zObstack_Lvalue_CastSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Obstack_Lvalue_Cast
 */
static const char* apzObstack_Lvalue_CastPatch[] = {
    "format",
    "((*((%1*)%2) = (%3)), (%2 += sizeof (%1)))",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Openbsd_Va_Start fix
 */
tSCC zOpenbsd_Va_StartName[] =
     "openbsd_va_start";

/*
 *  File name selection pattern
 */
tSCC zOpenbsd_Va_StartList[] =
  "stdarg.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzOpenbsd_Va_StartMachs[] = {
        "*-*-openbsd*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zOpenbsd_Va_StartSelect0[] =
       "__builtin_stdarg_start";

#define    OPENBSD_VA_START_TEST_CT  1
static tTestDesc aOpenbsd_Va_StartTests[] = {
  { TT_EGREP,    zOpenbsd_Va_StartSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Openbsd_Va_Start
 */
static const char* apzOpenbsd_Va_StartPatch[] = {
    "format",
    "__builtin_va_start",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Osf_Namespace_A fix
 */
tSCC zOsf_Namespace_AName[] =
     "osf_namespace_a";

/*
 *  File name selection pattern
 */
tSCC zOsf_Namespace_AList[] =
  "reg_types.h\0sys/lc_core.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzOsf_Namespace_AMachs (const char**)NULL

/*
 *  perform the 'test' shell command - do fix on success
 */
tSCC zOsf_Namespace_ATest0[] =
       " -r reg_types.h";
tSCC zOsf_Namespace_ATest1[] =
       " -r sys/lc_core.h";
tSCC zOsf_Namespace_ATest2[] =
       " -n \"`grep '} regex_t;' reg_types.h`\"";
tSCC zOsf_Namespace_ATest3[] =
       " -z \"`grep __regex_t regex.h`\"";

#define    OSF_NAMESPACE_A_TEST_CT  4
static tTestDesc aOsf_Namespace_ATests[] = {
  { TT_TEST,     zOsf_Namespace_ATest0,   0 /* unused */ },
  { TT_TEST,     zOsf_Namespace_ATest1,   0 /* unused */ },
  { TT_TEST,     zOsf_Namespace_ATest2,   0 /* unused */ },
  { TT_TEST,     zOsf_Namespace_ATest3,   0 /* unused */ }, };

/*
 *  Fix Command Arguments for Osf_Namespace_A
 */
static const char* apzOsf_Namespace_APatch[] = {
    "format",
    "__%0",
    "reg(ex|off|match)_t",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Osf_Namespace_C fix
 */
tSCC zOsf_Namespace_CName[] =
     "osf_namespace_c";

/*
 *  File name selection pattern
 */
tSCC zOsf_Namespace_CList[] =
  "regex.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzOsf_Namespace_CMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zOsf_Namespace_CSelect0[] =
       "#include <reg_types.h>.*";

/*
 *  perform the 'test' shell command - do fix on success
 */
tSCC zOsf_Namespace_CTest0[] =
       " -r reg_types.h";
tSCC zOsf_Namespace_CTest1[] =
       " -r sys/lc_core.h";
tSCC zOsf_Namespace_CTest2[] =
       " -n \"`grep '} regex_t;' reg_types.h`\"";
tSCC zOsf_Namespace_CTest3[] =
       " -z \"`grep __regex_t regex.h`\"";

#define    OSF_NAMESPACE_C_TEST_CT  5
static tTestDesc aOsf_Namespace_CTests[] = {
  { TT_TEST,     zOsf_Namespace_CTest0,   0 /* unused */ },
  { TT_TEST,     zOsf_Namespace_CTest1,   0 /* unused */ },
  { TT_TEST,     zOsf_Namespace_CTest2,   0 /* unused */ },
  { TT_TEST,     zOsf_Namespace_CTest3,   0 /* unused */ },
  { TT_EGREP,    zOsf_Namespace_CSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Osf_Namespace_C
 */
static const char* apzOsf_Namespace_CPatch[] = {
    "format",
    "%0\n\
typedef __regex_t\tregex_t;\n\
typedef __regoff_t\tregoff_t;\n\
typedef __regmatch_t\tregmatch_t;",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Pthread_Incomplete_Struct_Argument fix
 */
tSCC zPthread_Incomplete_Struct_ArgumentName[] =
     "pthread_incomplete_struct_argument";

/*
 *  File name selection pattern
 */
tSCC zPthread_Incomplete_Struct_ArgumentList[] =
  "pthread.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzPthread_Incomplete_Struct_ArgumentMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zPthread_Incomplete_Struct_ArgumentSelect0[] =
       "struct __jmp_buf_tag";

#define    PTHREAD_INCOMPLETE_STRUCT_ARGUMENT_TEST_CT  1
static tTestDesc aPthread_Incomplete_Struct_ArgumentTests[] = {
  { TT_EGREP,    zPthread_Incomplete_Struct_ArgumentSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Pthread_Incomplete_Struct_Argument
 */
static const char* apzPthread_Incomplete_Struct_ArgumentPatch[] = {
    "format",
    "%1 *%2%3",
    "^(extern int __sigsetjmp \\(struct __jmp_buf_tag) (__env)\\[1\\](.*)$",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Read_Ret_Type fix
 */
tSCC zRead_Ret_TypeName[] =
     "read_ret_type";

/*
 *  File name selection pattern
 */
tSCC zRead_Ret_TypeList[] =
  "stdio.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzRead_Ret_TypeMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zRead_Ret_TypeSelect0[] =
       "extern int\t.*, fread\\(\\), fwrite\\(\\)";

#define    READ_RET_TYPE_TEST_CT  1
static tTestDesc aRead_Ret_TypeTests[] = {
  { TT_EGREP,    zRead_Ret_TypeSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Read_Ret_Type
 */
static const char* apzRead_Ret_TypePatch[] = {
    "format",
    "extern unsigned int fread(), fwrite();\n\
%1%2",
    "(extern int\t.*), fread\\(\\), fwrite\\(\\)(.*)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Rpc_Xdr_Lvalue_Cast_A fix
 */
tSCC zRpc_Xdr_Lvalue_Cast_AName[] =
     "rpc_xdr_lvalue_cast_a";

/*
 *  File name selection pattern
 */
tSCC zRpc_Xdr_Lvalue_Cast_AList[] =
  "rpc/xdr.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzRpc_Xdr_Lvalue_Cast_AMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zRpc_Xdr_Lvalue_Cast_ASelect0[] =
       "#define[ \t]*IXDR_GET_LONG.*\\\\\n\
.*__extension__.*";

#define    RPC_XDR_LVALUE_CAST_A_TEST_CT  1
static tTestDesc aRpc_Xdr_Lvalue_Cast_ATests[] = {
  { TT_EGREP,    zRpc_Xdr_Lvalue_Cast_ASelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Rpc_Xdr_Lvalue_Cast_A
 */
static const char* apzRpc_Xdr_Lvalue_Cast_APatch[] = {
    "format",
    "#define IXDR_GET_LONG(buf) ((long)IXDR_GET_U_INT32(buf))",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Rpc_Xdr_Lvalue_Cast_B fix
 */
tSCC zRpc_Xdr_Lvalue_Cast_BName[] =
     "rpc_xdr_lvalue_cast_b";

/*
 *  File name selection pattern
 */
tSCC zRpc_Xdr_Lvalue_Cast_BList[] =
  "rpc/xdr.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzRpc_Xdr_Lvalue_Cast_BMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zRpc_Xdr_Lvalue_Cast_BSelect0[] =
       "#define[ \t]*IXDR_PUT_LONG.*\\\\\n\
.*__extension__.*";

#define    RPC_XDR_LVALUE_CAST_B_TEST_CT  1
static tTestDesc aRpc_Xdr_Lvalue_Cast_BTests[] = {
  { TT_EGREP,    zRpc_Xdr_Lvalue_Cast_BSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Rpc_Xdr_Lvalue_Cast_B
 */
static const char* apzRpc_Xdr_Lvalue_Cast_BPatch[] = {
    "format",
    "#define IXDR_PUT_LONG(buf, v) ((long)IXDR_PUT_INT32(buf, (long)(v)))",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Rs6000_Double fix
 */
tSCC zRs6000_DoubleName[] =
     "rs6000_double";

/*
 *  File name selection pattern
 */
tSCC zRs6000_DoubleList[] =
  "math.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzRs6000_DoubleMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zRs6000_DoubleSelect0[] =
       "[^a-zA-Z_]class\\(";

#define    RS6000_DOUBLE_TEST_CT  1
static tTestDesc aRs6000_DoubleTests[] = {
  { TT_EGREP,    zRs6000_DoubleSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Rs6000_Double
 */
static const char* apzRs6000_DoublePatch[] = {
    "format",
    "#ifndef __cplusplus\n\
%0\n\
#endif",
    "^.*[^a-zA-Z_]class\\(.*",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Rs6000_Fchmod fix
 */
tSCC zRs6000_FchmodName[] =
     "rs6000_fchmod";

/*
 *  File name selection pattern
 */
tSCC zRs6000_FchmodList[] =
  "sys/stat.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzRs6000_FchmodMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zRs6000_FchmodSelect0[] =
       "fchmod\\(char \\*";

#define    RS6000_FCHMOD_TEST_CT  1
static tTestDesc aRs6000_FchmodTests[] = {
  { TT_EGREP,    zRs6000_FchmodSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Rs6000_Fchmod
 */
static const char* apzRs6000_FchmodPatch[] = {
    "format",
    "fchmod(int",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Rs6000_Param fix
 */
tSCC zRs6000_ParamName[] =
     "rs6000_param";

/*
 *  File name selection pattern
 */
tSCC zRs6000_ParamList[] =
  "stdio.h\0unistd.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzRs6000_ParamMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zRs6000_ParamSelect0[] =
       "rename\\(const char \\*old, const char \\*new\\)";

#define    RS6000_PARAM_TEST_CT  1
static tTestDesc aRs6000_ParamTests[] = {
  { TT_EGREP,    zRs6000_ParamSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Rs6000_Param
 */
static const char* apzRs6000_ParamPatch[] = {
    "format",
    "rename(const char *_old, const char *_new)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Solaris___Restrict fix
 */
tSCC zSolaris___RestrictName[] =
     "solaris___restrict";

/*
 *  File name selection pattern
 */
tSCC zSolaris___RestrictList[] =
  "sys/feature_tests.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzSolaris___RestrictMachs[] = {
        "*-*-solaris2*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSolaris___RestrictSelect0[] =
       "#define[ \t]*_RESTRICT_KYWD[ \t]*restrict";

#define    SOLARIS___RESTRICT_TEST_CT  1
static tTestDesc aSolaris___RestrictTests[] = {
  { TT_EGREP,    zSolaris___RestrictSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris___Restrict
 */
static const char* apzSolaris___RestrictPatch[] = {
    "format",
    "#ifdef __cplusplus\n\
#define\t_RESTRICT_KYWD\t__restrict\n\
#else\n\
%0\n\
#endif",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Solaris_Complex fix
 */
tSCC zSolaris_ComplexName[] =
     "solaris_complex";

/*
 *  File name selection pattern
 */
tSCC zSolaris_ComplexList[] =
  "complex.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzSolaris_ComplexMachs[] = {
        "*-*-solaris2.*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSolaris_ComplexSelect0[] =
       "#define[ \t]_Complex_I[ \t]_Complex_I";

#define    SOLARIS_COMPLEX_TEST_CT  1
static tTestDesc aSolaris_ComplexTests[] = {
  { TT_EGREP,    zSolaris_ComplexSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris_Complex
 */
static const char* apzSolaris_ComplexPatch[] = { sed_cmd_z,
    "-e", "s/#define[ \t]_Complex_I[ \t]_Complex_I/#define\t_Complex_I\t(__extension__ 1.0iF)/",
    "-e", "/#define[ \t]_Imaginary_I[ \t]_Imaginary_I/d",
    "-e", "/#define[ \t]imaginary[ \t]_Imaginary/d",
    "-e", "s/#define[ \t]I[ \t]\\{1,\\}_Imaginary_I/#define\tI\t\t_Complex_I/",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Solaris_Complex_Cxx fix
 */
tSCC zSolaris_Complex_CxxName[] =
     "solaris_complex_cxx";

/*
 *  File name selection pattern
 */
tSCC zSolaris_Complex_CxxList[] =
  "complex.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzSolaris_Complex_CxxMachs[] = {
        "*-*-solaris2.*",
        (const char*)NULL };
#define SOLARIS_COMPLEX_CXX_TEST_CT  0
#define aSolaris_Complex_CxxTests   (tTestDesc*)NULL

/*
 *  Fix Command Arguments for Solaris_Complex_Cxx
 */
static const char* apzSolaris_Complex_CxxPatch[] = { sed_cmd_z,
    "-e", "/#if[ \t]*!defined(__cplusplus)/c\\\n\
#ifdef\t__cplusplus\\\n\
extern \"C\" {\\\n\
#endif",
    "-e", "/#endif[ \t]*\\/\\* !defined(__cplusplus) \\*\\//c\\\n\
#ifdef\t__cplusplus\\\n\
}\\\n\
#endif",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Solaris_Cxx_Linkage fix
 */
tSCC zSolaris_Cxx_LinkageName[] =
     "solaris_cxx_linkage";

/*
 *  File name selection pattern
 */
tSCC zSolaris_Cxx_LinkageList[] =
  "iso/stdlib_iso.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzSolaris_Cxx_LinkageMachs[] = {
        "*-*-solaris2*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSolaris_Cxx_LinkageSelect0[] =
       "(#if __cplusplus >= 199711L)\n\
(extern \"C\\+\\+\" \\{\n\
)(.*(bsearch|qsort).*)";

#define    SOLARIS_CXX_LINKAGE_TEST_CT  1
static tTestDesc aSolaris_Cxx_LinkageTests[] = {
  { TT_EGREP,    zSolaris_Cxx_LinkageSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris_Cxx_Linkage
 */
static const char* apzSolaris_Cxx_LinkagePatch[] = {
    "format",
    "%1 && !__GNUG__\n\
%2%3",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Solaris_Getc_Strict_Stdc fix
 */
tSCC zSolaris_Getc_Strict_StdcName[] =
     "solaris_getc_strict_stdc";

/*
 *  File name selection pattern
 */
tSCC zSolaris_Getc_Strict_StdcList[] =
  "iso/stdio_iso.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzSolaris_Getc_Strict_StdcMachs[] = {
        "*-*-solaris2*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSolaris_Getc_Strict_StdcSelect0[] =
       "(.*&& )!defined\\(_STRICT_STDC\\)(.*)";

#define    SOLARIS_GETC_STRICT_STDC_TEST_CT  1
static tTestDesc aSolaris_Getc_Strict_StdcTests[] = {
  { TT_EGREP,    zSolaris_Getc_Strict_StdcSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris_Getc_Strict_Stdc
 */
static const char* apzSolaris_Getc_Strict_StdcPatch[] = {
    "format",
    "%1(!defined(_STRICT_STDC) || (__cplusplus >= 199711L))%2",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Solaris_Int_Const fix
 */
tSCC zSolaris_Int_ConstName[] =
     "solaris_int_const";

/*
 *  File name selection pattern
 */
tSCC zSolaris_Int_ConstList[] =
  "sys/int_const.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzSolaris_Int_ConstMachs[] = {
        "*-*-solaris2*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSolaris_Int_ConstSelect0[] =
       "^#define[ \t]+UINT8_C\\(c\\)[ \t]+__CONCAT__.*\n\
(/*.**/)\n\
#define[ \t]+UINT16_C\\(c\\)[ \t]+__CONCAT__.*";

#define    SOLARIS_INT_CONST_TEST_CT  1
static tTestDesc aSolaris_Int_ConstTests[] = {
  { TT_EGREP,    zSolaris_Int_ConstSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris_Int_Const
 */
static const char* apzSolaris_Int_ConstPatch[] = {
    "format",
    "#define\tUINT8_C(c)\t(c)\n\
%1\n\
#define\tUINT16_C(c)\t(c)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Solaris_Int_Limits_1 fix
 */
tSCC zSolaris_Int_Limits_1Name[] =
     "solaris_int_limits_1";

/*
 *  File name selection pattern
 */
tSCC zSolaris_Int_Limits_1List[] =
  "sys/int_limits.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzSolaris_Int_Limits_1Machs[] = {
        "*-*-solaris2*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSolaris_Int_Limits_1Select0[] =
       "^#define[ \t]+UINT8_MAX[ \t]+\\(255U\\)\n\
#define[ \t]+UINT16_MAX[ \t]+\\(65535U\\)";

#define    SOLARIS_INT_LIMITS_1_TEST_CT  1
static tTestDesc aSolaris_Int_Limits_1Tests[] = {
  { TT_EGREP,    zSolaris_Int_Limits_1Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris_Int_Limits_1
 */
static const char* apzSolaris_Int_Limits_1Patch[] = {
    "format",
    "#define\tUINT8_MAX\t(255)\n\
#define\tUINT16_MAX\t(65535)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Solaris_Int_Limits_2 fix
 */
tSCC zSolaris_Int_Limits_2Name[] =
     "solaris_int_limits_2";

/*
 *  File name selection pattern
 */
tSCC zSolaris_Int_Limits_2List[] =
  "sys/int_limits.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzSolaris_Int_Limits_2Machs[] = {
        "*-*-solaris2*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSolaris_Int_Limits_2Select0[] =
       "^#define[ \t]+(INT|UINT)_FAST16_(MAX|MIN)[ \t](INT|UINT)16.*";

#define    SOLARIS_INT_LIMITS_2_TEST_CT  1
static tTestDesc aSolaris_Int_Limits_2Tests[] = {
  { TT_EGREP,    zSolaris_Int_Limits_2Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris_Int_Limits_2
 */
static const char* apzSolaris_Int_Limits_2Patch[] = {
    "format",
    "#define\t%1_FAST16_%2 %132_%2",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Solaris_Int_Limits_3 fix
 */
tSCC zSolaris_Int_Limits_3Name[] =
     "solaris_int_limits_3";

/*
 *  File name selection pattern
 */
tSCC zSolaris_Int_Limits_3List[] =
  "sys/int_limits.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzSolaris_Int_Limits_3Machs[] = {
        "*-*-solaris2*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSolaris_Int_Limits_3Select0[] =
       "^#define[ \t]+SIZE_MAX[ \t]+4294967295UL";

#define    SOLARIS_INT_LIMITS_3_TEST_CT  1
static tTestDesc aSolaris_Int_Limits_3Tests[] = {
  { TT_EGREP,    zSolaris_Int_Limits_3Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris_Int_Limits_3
 */
static const char* apzSolaris_Int_Limits_3Patch[] = {
    "format",
    "#define\tSIZE_MAX\t4294967295U",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Solaris_Math_1 fix
 */
tSCC zSolaris_Math_1Name[] =
     "solaris_math_1";

/*
 *  File name selection pattern
 */
tSCC zSolaris_Math_1List[] =
  "iso/math_c99.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzSolaris_Math_1Machs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSolaris_Math_1Select0[] =
       "@\\(#\\)math_c99.h[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zSolaris_Math_1Bypass0[] =
       "__GNUC__";

#define    SOLARIS_MATH_1_TEST_CT  2
static tTestDesc aSolaris_Math_1Tests[] = {
  { TT_NEGREP,   zSolaris_Math_1Bypass0, (regex_t*)NULL },
  { TT_EGREP,    zSolaris_Math_1Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris_Math_1
 */
static const char* apzSolaris_Math_1Patch[] = {
    "format",
    "#define\tHUGE_VA%1\t(__builtin_huge_va%2())",
    "^#define[ \t]+HUGE_VA([LF]+)[ \t]+__builtin_huge_va([lf]+)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Solaris_Math_10 fix
 */
tSCC zSolaris_Math_10Name[] =
     "solaris_math_10";

/*
 *  File name selection pattern
 */
tSCC zSolaris_Math_10List[] =
  "iso/math_c99.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzSolaris_Math_10Machs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSolaris_Math_10Select0[] =
       "@\\(#\\)math_c99.h[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";

#define    SOLARIS_MATH_10_TEST_CT  1
static tTestDesc aSolaris_Math_10Tests[] = {
  { TT_EGREP,    zSolaris_Math_10Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris_Math_10
 */
static const char* apzSolaris_Math_10Patch[] = {
    "format",
    "#define\tisinf(x) __builtin_isinf(x)",
    "^#define[ \t]+isinf\\(x\\)[ \t]+__extension__\\([ \t]*\\\\\n\
[ \t]*\\{[ \t]*__typeof\\(x\\)[ \t]*__x_i[ \t]*=[ \t]*\\(x\\);[ \t]*\\\\\n\
[ \t]*__x_i[ \t]*==[ \t]*\\(__typeof\\(__x_i\\)\\)[ \t]*INFINITY[ \t]*\\|\\|[ \t]*\\\\\n\
[ \t]*__x_i[ \t]*==[ \t]*\\(__typeof\\(__x_i\\)\\)[ \t]*\\(-INFINITY\\);[ \t]*\\}\\)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Solaris_Math_2 fix
 */
tSCC zSolaris_Math_2Name[] =
     "solaris_math_2";

/*
 *  File name selection pattern
 */
tSCC zSolaris_Math_2List[] =
  "iso/math_c99.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzSolaris_Math_2Machs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSolaris_Math_2Select0[] =
       "@\\(#\\)math_c99.h[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zSolaris_Math_2Bypass0[] =
       "__GNUC__";

#define    SOLARIS_MATH_2_TEST_CT  2
static tTestDesc aSolaris_Math_2Tests[] = {
  { TT_NEGREP,   zSolaris_Math_2Bypass0, (regex_t*)NULL },
  { TT_EGREP,    zSolaris_Math_2Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris_Math_2
 */
static const char* apzSolaris_Math_2Patch[] = {
    "format",
    "#define\tINFINITY\t(__builtin_inff())",
    "^#define[ \t]+INFINITY[ \t]+__builtin_infinity",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Solaris_Math_3 fix
 */
tSCC zSolaris_Math_3Name[] =
     "solaris_math_3";

/*
 *  File name selection pattern
 */
tSCC zSolaris_Math_3List[] =
  "iso/math_c99.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzSolaris_Math_3Machs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSolaris_Math_3Select0[] =
       "@\\(#\\)math_c99.h[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zSolaris_Math_3Bypass0[] =
       "__GNUC__";

#define    SOLARIS_MATH_3_TEST_CT  2
static tTestDesc aSolaris_Math_3Tests[] = {
  { TT_NEGREP,   zSolaris_Math_3Bypass0, (regex_t*)NULL },
  { TT_EGREP,    zSolaris_Math_3Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris_Math_3
 */
static const char* apzSolaris_Math_3Patch[] = {
    "format",
    "#define\tNAN\t\t(__builtin_nanf(\"\"))",
    "^#define[ \t]+NAN[ \t]+__builtin_nan",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Solaris_Math_4 fix
 */
tSCC zSolaris_Math_4Name[] =
     "solaris_math_4";

/*
 *  File name selection pattern
 */
tSCC zSolaris_Math_4List[] =
  "iso/math_c99.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzSolaris_Math_4Machs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSolaris_Math_4Select0[] =
       "@\\(#\\)math_c99.h[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zSolaris_Math_4Bypass0[] =
       "__GNUC__";

#define    SOLARIS_MATH_4_TEST_CT  2
static tTestDesc aSolaris_Math_4Tests[] = {
  { TT_NEGREP,   zSolaris_Math_4Bypass0, (regex_t*)NULL },
  { TT_EGREP,    zSolaris_Math_4Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris_Math_4
 */
static const char* apzSolaris_Math_4Patch[] = {
    "format",
    "#define\tfpclassify(x) \\\n\
  __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, (x))",
    "^#define[ \t]+fpclassify\\(x\\)[ \t]+__builtin_fpclassify\\(x\\)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Solaris_Math_8 fix
 */
tSCC zSolaris_Math_8Name[] =
     "solaris_math_8";

/*
 *  File name selection pattern
 */
tSCC zSolaris_Math_8List[] =
  "iso/math_c99.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzSolaris_Math_8Machs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSolaris_Math_8Select0[] =
       "@\\(#\\)math_c99\\.h[ \t]+1\\.[0-9]+[ \t]+[0-9/]+ SMI";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zSolaris_Math_8Bypass0[] =
       "__GNUC__";

#define    SOLARIS_MATH_8_TEST_CT  2
static tTestDesc aSolaris_Math_8Tests[] = {
  { TT_NEGREP,   zSolaris_Math_8Bypass0, (regex_t*)NULL },
  { TT_EGREP,    zSolaris_Math_8Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris_Math_8
 */
static const char* apzSolaris_Math_8Patch[] = {
    "format",
    "#define\tsignbit(x)\t(sizeof(x) == sizeof(float) \\\n\
\t\t\t   ? __builtin_signbitf(x) \\\n\
\t\t\t   : sizeof(x) == sizeof(long double) \\\n\
\t\t\t     ? __builtin_signbitl(x) \\\n\
\t\t\t     : __builtin_signbit(x))",
    "^#define[ \t]+signbit\\(x\\)[ \t]+__builtin_signbit\\(x\\)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Solaris_Math_9 fix
 */
tSCC zSolaris_Math_9Name[] =
     "solaris_math_9";

/*
 *  File name selection pattern
 */
tSCC zSolaris_Math_9List[] =
  "iso/math_c99.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzSolaris_Math_9Machs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSolaris_Math_9Select0[] =
       "@\\(#\\)math_c99.h[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zSolaris_Math_9Bypass0[] =
       "__GNUC__";

#define    SOLARIS_MATH_9_TEST_CT  2
static tTestDesc aSolaris_Math_9Tests[] = {
  { TT_NEGREP,   zSolaris_Math_9Bypass0, (regex_t*)NULL },
  { TT_EGREP,    zSolaris_Math_9Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris_Math_9
 */
static const char* apzSolaris_Math_9Patch[] = {
    "format",
    "#define\t%1(x, y)%2__builtin_%1(x, y)",
    "^#define[ \t]+([a-z]+)\\(x, y\\)([ \t]+)\\(\\(x\\) __builtin_[a-z]+\\(y\\)\\)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Solaris_Math_11 fix
 */
tSCC zSolaris_Math_11Name[] =
     "solaris_math_11";

/*
 *  File name selection pattern
 */
tSCC zSolaris_Math_11List[] =
  "iso/math_c99.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzSolaris_Math_11Machs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSolaris_Math_11Select0[] =
       "@\\(#\\)math_c99\\.h[ \t]+1\\.[0-9]+[ \t]+[0-9/]+ ";

#define    SOLARIS_MATH_11_TEST_CT  1
static tTestDesc aSolaris_Math_11Tests[] = {
  { TT_EGREP,    zSolaris_Math_11Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris_Math_11
 */
static const char* apzSolaris_Math_11Patch[] = {
    "format",
    "#undef\tsignbit\n\
#define\tsignbit(x)\t(sizeof(x) == sizeof(float) \\\n\
\t\t\t   ? __builtin_signbitf(x) \\\n\
\t\t\t   : sizeof(x) == sizeof(long double) \\\n\
\t\t\t     ? __builtin_signbitl(x) \\\n\
\t\t\t     : __builtin_signbit(x))",
    "^#undef[ \t]+signbit\n\
#if defined\\(__sparc\\)\n\
#define[ \t]+signbit\\(x\\)[ \t]+__extension__\\( \\\\\n\
[ \t]+\\{[ \t]*__typeof\\(x\\)[ \t]*__x_s[ \t]*=[ \t]*\\(x\\);[ \t]*\\\\\n\
[ \t]+\\(int\\)[ \t]*\\(\\*\\(unsigned[ \t]*\\*\\)[ \t]*\\&__x_s[ \t]*>>[ \t]*31\\);[ \t]*\\}\\)\n\
#elif defined\\(__i386\\) \\|\\| defined\\(__amd64\\)\n\
#define[ \t]+signbit\\(x\\)[ \t]+__extension__\\( \\\\\n\
[ \t]+\\{ __typeof\\(x\\) __x_s = \\(x\\); \\\\\n\
[ \t]+\\(sizeof \\(__x_s\\) == sizeof \\(float\\) \\? \\\\\n\
[ \t]+\\(int\\) \\(\\*\\(unsigned \\*\\) \\&__x_s >> 31\\) : \\\\\n\
[ \t]+sizeof \\(__x_s\\) == sizeof \\(double\\) \\? \\\\\n\
[ \t]+\\(int\\) \\(\\(\\(unsigned \\*\\) \\&__x_s\\)\\[1\\] >> 31\\) : \\\\\n\
[ \t]+\\(int\\) \\(\\(\\(unsigned short \\*\\) \\&__x_s\\)\\[4\\] >> 15\\)\\); \\}\\)\n\
#endif",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Solaris_Once_Init_1 fix
 */
tSCC zSolaris_Once_Init_1Name[] =
     "solaris_once_init_1";

/*
 *  File name selection pattern
 */
tSCC zSolaris_Once_Init_1List[] =
  "pthread.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzSolaris_Once_Init_1Machs[] = {
        "*-*-solaris*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSolaris_Once_Init_1Select0[] =
       "@\\(#\\)pthread.h[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";

#define    SOLARIS_ONCE_INIT_1_TEST_CT  1
static tTestDesc aSolaris_Once_Init_1Tests[] = {
  { TT_EGREP,    zSolaris_Once_Init_1Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris_Once_Init_1
 */
static const char* apzSolaris_Once_Init_1Patch[] = {
    "format",
    "%1{%2}%3",
    "(^#define[ \t]+PTHREAD_ONCE_INIT[ \t]+\\{)([^}]+)(\\})[ \t]*$",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Solaris_Posix_Spawn_Restrict fix
 */
tSCC zSolaris_Posix_Spawn_RestrictName[] =
     "solaris_posix_spawn_restrict";

/*
 *  File name selection pattern
 */
tSCC zSolaris_Posix_Spawn_RestrictList[] =
  "spawn.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzSolaris_Posix_Spawn_RestrictMachs[] = {
        "*-*-solaris2*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSolaris_Posix_Spawn_RestrictSelect0[] =
       "(.*[ \t]+)([a-z]+)\\[_RESTRICT_KYWD\\](.*)";

#define    SOLARIS_POSIX_SPAWN_RESTRICT_TEST_CT  1
static tTestDesc aSolaris_Posix_Spawn_RestrictTests[] = {
  { TT_EGREP,    zSolaris_Posix_Spawn_RestrictSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris_Posix_Spawn_Restrict
 */
static const char* apzSolaris_Posix_Spawn_RestrictPatch[] = {
    "format",
    "%1*_RESTRICT_KYWD %2%3",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Solaris_Pow_Int_Overload fix
 */
tSCC zSolaris_Pow_Int_OverloadName[] =
     "solaris_pow_int_overload";

/*
 *  File name selection pattern
 */
tSCC zSolaris_Pow_Int_OverloadList[] =
  "iso/math_iso.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzSolaris_Pow_Int_OverloadMachs[] = {
        "*-*-solaris2*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSolaris_Pow_Int_OverloadSelect0[] =
       "^[ \t]*inline [a-z ]* pow\\([^()]*, int [^()]*\\) *\\{[^{}]*\n\
[^{}]*\\}";

#define    SOLARIS_POW_INT_OVERLOAD_TEST_CT  1
static tTestDesc aSolaris_Pow_Int_OverloadTests[] = {
  { TT_EGREP,    zSolaris_Pow_Int_OverloadSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris_Pow_Int_Overload
 */
static const char* apzSolaris_Pow_Int_OverloadPatch[] = {
    "format",
    "#if __cplusplus < 201103L\n\
%0\n\
#endif",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Solaris_Rwlock_Init_1 fix
 */
tSCC zSolaris_Rwlock_Init_1Name[] =
     "solaris_rwlock_init_1";

/*
 *  File name selection pattern
 */
tSCC zSolaris_Rwlock_Init_1List[] =
  "pthread.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzSolaris_Rwlock_Init_1Machs[] = {
        "*-*-solaris*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSolaris_Rwlock_Init_1Select0[] =
       "@\\(#\\)pthread.h[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";

#define    SOLARIS_RWLOCK_INIT_1_TEST_CT  1
static tTestDesc aSolaris_Rwlock_Init_1Tests[] = {
  { TT_EGREP,    zSolaris_Rwlock_Init_1Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris_Rwlock_Init_1
 */
static const char* apzSolaris_Rwlock_Init_1Patch[] = {
    "format",
    "#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)\n\
%0\n\
#else\n\
%1{0, 0, 0, {{0}, {0}, {0}}, {{0}, {0}}, {{0}, {0}}}\n\
#endif",
    "(^#define[ \t]+PTHREAD_RWLOCK_INITIALIZER[ \t]+)\\{0, 0, 0, \\{0, 0, 0\\}, \\{0, 0\\}, \\{0, 0\\}\\}[ \t]*$",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Solaris_Std___Filbuf fix
 */
tSCC zSolaris_Std___FilbufName[] =
     "solaris_std___filbuf";

/*
 *  File name selection pattern
 */
tSCC zSolaris_Std___FilbufList[] =
  "stdio.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzSolaris_Std___FilbufMachs[] = {
        "*-*-solaris2*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSolaris_Std___FilbufSelect0[] =
       "(using std::perror;\n\
)(#endif)";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zSolaris_Std___FilbufBypass0[] =
       "using std::__filbuf";

#define    SOLARIS_STD___FILBUF_TEST_CT  2
static tTestDesc aSolaris_Std___FilbufTests[] = {
  { TT_NEGREP,   zSolaris_Std___FilbufBypass0, (regex_t*)NULL },
  { TT_EGREP,    zSolaris_Std___FilbufSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris_Std___Filbuf
 */
static const char* apzSolaris_Std___FilbufPatch[] = {
    "format",
    "%1#ifndef _LP64\n\
using std::__filbuf;\n\
using std::__flsbuf;\n\
#endif\n\
%2",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Solaris_Stdio_Tag fix
 */
tSCC zSolaris_Stdio_TagName[] =
     "solaris_stdio_tag";

/*
 *  File name selection pattern
 */
tSCC zSolaris_Stdio_TagList[] =
  "stdio_tag.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzSolaris_Stdio_TagMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSolaris_Stdio_TagSelect0[] =
       "__cplusplus < 54321L";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zSolaris_Stdio_TagBypass0[] =
       "__GNUC__";

#define    SOLARIS_STDIO_TAG_TEST_CT  2
static tTestDesc aSolaris_Stdio_TagTests[] = {
  { TT_NEGREP,   zSolaris_Stdio_TagBypass0, (regex_t*)NULL },
  { TT_EGREP,    zSolaris_Stdio_TagSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris_Stdio_Tag
 */
static const char* apzSolaris_Stdio_TagPatch[] = { sed_cmd_z,
    "-e", "s/defined(__cplusplus) && (__cplusplus < 54321L)/0/",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Statsswtch fix
 */
tSCC zStatsswtchName[] =
     "statsswtch";

/*
 *  File name selection pattern
 */
tSCC zStatsswtchList[] =
  "rpcsvc/rstat.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzStatsswtchMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zStatsswtchSelect0[] =
       "boottime$";

#define    STATSSWTCH_TEST_CT  1
static tTestDesc aStatsswtchTests[] = {
  { TT_EGREP,    zStatsswtchSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Statsswtch
 */
static const char* apzStatsswtchPatch[] = {
    "format",
    "boottime;",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Stdio_Stdarg_H fix
 */
tSCC zStdio_Stdarg_HName[] =
     "stdio_stdarg_h";

/*
 *  File name selection pattern
 */
tSCC zStdio_Stdarg_HList[] =
  "stdio.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzStdio_Stdarg_HMachs[] = {
        "*-*-solaris2.1[0-9]*",
        (const char*)NULL };

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zStdio_Stdarg_HBypass0[] =
       "include.*(stdarg.h|machine/ansi.h)";

#define    STDIO_STDARG_H_TEST_CT  1
static tTestDesc aStdio_Stdarg_HTests[] = {
  { TT_NEGREP,   zStdio_Stdarg_HBypass0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Stdio_Stdarg_H
 */
static const char* apzStdio_Stdarg_HPatch[] = {
    "wrap",
    "#define __need___va_list\n\
#include <stdarg.h>\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Stdio_Va_List fix
 */
tSCC zStdio_Va_ListName[] =
     "stdio_va_list";

/*
 *  File name selection pattern
 */
tSCC zStdio_Va_ListList[] =
  "stdio.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzStdio_Va_ListMachs[] = {
        "*-*-solaris2.1[0-9]*",
        (const char*)NULL };

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zStdio_Va_ListBypass0[] =
       "__gnuc_va_list|_BSD_VA_LIST_|__DJ_va_list|_G_va_list";

#define    STDIO_VA_LIST_TEST_CT  1
static tTestDesc aStdio_Va_ListTests[] = {
  { TT_NEGREP,   zStdio_Va_ListBypass0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Stdio_Va_List
 */
static const char* apzStdio_Va_ListPatch[] = { sed_cmd_z,
    "-e", "s@[ \t]va_list\\([ \t)]\\)@ __gnuc_va_list\\1@\n\
s@(va_list)&@(__gnuc_va_list)\\&@\n\
s@ _VA_LIST_));@ __gnuc_va_list));@\n\
s@ __VA_LIST__));@ __gnuc_va_list));@\n\
s@ va_list@ __not_va_list__@\n\
s@\\*va_list@*__not_va_list__@\n\
s@ __va_list)@ __gnuc_va_list)@\n\
s@typedef[ \t]\\(.*\\)[ \t]va_list[ \t]*;@typedef \\1 __not_va_list__;@\n\
s@typedef[ \t]*__va_list__@typedef __gnuc_va_list@\n\
s@GNUC_VA_LIST@GNUC_Va_LIST@\n\
s@_VA_LIST_DEFINED@_Va_LIST_DEFINED@\n\
s@_NEED___VA_LIST@_NEED___Va_LIST@\n\
s@VA_LIST@DUMMY_VA_LIST@\n\
s@_Va_LIST@_VA_LIST@",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Stdio_Va_List_Clients fix
 */
tSCC zStdio_Va_List_ClientsName[] =
     "stdio_va_list_clients";

/*
 *  File name selection pattern
 */
tSCC zStdio_Va_List_ClientsList[] =
  "com_err.h\0cps.h\0curses.h\0krb5.h\0lc_core.h\0pfmt.h\0wchar.h\0curses_colr/curses.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzStdio_Va_List_ClientsMachs (const char**)NULL

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zStdio_Va_List_ClientsBypass0[] =
       "__gnuc_va_list|_BSD_VA_LIST_|__DJ_va_list|_G_va_list";
tSCC zStdio_Va_List_ClientsBypass1[] =
       "include <stdarg\\.h>|#ifdef va_start";

#define    STDIO_VA_LIST_CLIENTS_TEST_CT  2
static tTestDesc aStdio_Va_List_ClientsTests[] = {
  { TT_NEGREP,   zStdio_Va_List_ClientsBypass0, (regex_t*)NULL },
  { TT_NEGREP,   zStdio_Va_List_ClientsBypass1, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Stdio_Va_List_Clients
 */
static const char* apzStdio_Va_List_ClientsPatch[] = { sed_cmd_z,
    "-e", "s@[ \t]va_list\\([ \t)]\\)@ __gnuc_va_list\\1@\n\
s@(va_list)&@(__gnuc_va_list)\\&@\n\
s@ _VA_LIST_));@ __gnuc_va_list));@\n\
s@ __VA_LIST__));@ __gnuc_va_list));@\n\
s@ va_list@ __not_va_list__@\n\
s@\\*va_list@*__not_va_list__@\n\
s@ __va_list)@ __gnuc_va_list)@\n\
s@typedef[ \t]\\(.*\\)[ \t]va_list[ \t]*;@typedef \\1 __not_va_list__;@\n\
s@typedef[ \t]*__va_list__@typedef __gnuc_va_list@\n\
s@GNUC_VA_LIST@GNUC_Va_LIST@\n\
s@_VA_LIST_DEFINED@_Va_LIST_DEFINED@\n\
s@_NEED___VA_LIST@_NEED___Va_LIST@\n\
s@VA_LIST@DUMMY_VA_LIST@\n\
s@_Va_LIST@_VA_LIST@",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Strict_Ansi_Not fix
 */
tSCC zStrict_Ansi_NotName[] =
     "strict_ansi_not";

/*
 *  File name selection pattern
 */
#define zStrict_Ansi_NotList (char*)NULL
/*
 *  Machine/OS name selection pattern
 */
#define apzStrict_Ansi_NotMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zStrict_Ansi_NotSelect0[] =
       "^([ \t]*#[ \t]*if.*)(!__STDC__|__STDC__[ \t]*==[ \t]*0|__STDC__[ \t]*!=[ \t]*1|__STDC__[ \t]*-[ \t]*0[ \t]*==[ \t]*0)";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zStrict_Ansi_NotBypass0[] =
       "GNU and MIPS C compilers define __STDC__ differently";
tSCC zStrict_Ansi_NotBypass1[] =
       "__SCO_VERSION__.*__STDC__ != 1";

/*
 *  perform the C function call test
 */
tSCC zStrict_Ansi_NotFTst0[] = "stdc_0_in_system_headers";

#define    STRICT_ANSI_NOT_TEST_CT  4
static tTestDesc aStrict_Ansi_NotTests[] = {
  { TT_FUNCTION, zStrict_Ansi_NotFTst0,   0 /* unused */ },
  { TT_NEGREP,   zStrict_Ansi_NotBypass0, (regex_t*)NULL },
  { TT_NEGREP,   zStrict_Ansi_NotBypass1, (regex_t*)NULL },
  { TT_EGREP,    zStrict_Ansi_NotSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Strict_Ansi_Not
 */
static const char* apzStrict_Ansi_NotPatch[] = {
    "format",
    "%1 !defined(__STRICT_ANSI__)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Strict_Ansi_Not_Ctd fix
 */
tSCC zStrict_Ansi_Not_CtdName[] =
     "strict_ansi_not_ctd";

/*
 *  File name selection pattern
 */
tSCC zStrict_Ansi_Not_CtdList[] =
  "math.h\0limits.h\0stdio.h\0signal.h\0stdlib.h\0sys/signal.h\0time.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzStrict_Ansi_Not_CtdMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zStrict_Ansi_Not_CtdSelect0[] =
       "^([ \t]*(\\(|&&|\\|\\|)([ \t(]*!*[ \t]*defined\\([a-zA-Z_0-9]+\\)[ \t]*[|&][|&])*[ \t(]*)(__STDC__[ \t]*(|-[ \t]*0[ \t]*)==[ \t]*0)";

/*
 *  perform the C function call test
 */
tSCC zStrict_Ansi_Not_CtdFTst0[] = "stdc_0_in_system_headers";

#define    STRICT_ANSI_NOT_CTD_TEST_CT  2
static tTestDesc aStrict_Ansi_Not_CtdTests[] = {
  { TT_FUNCTION, zStrict_Ansi_Not_CtdFTst0,   0 /* unused */ },
  { TT_EGREP,    zStrict_Ansi_Not_CtdSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Strict_Ansi_Not_Ctd
 */
static const char* apzStrict_Ansi_Not_CtdPatch[] = {
    "format",
    "%1 !defined(__STRICT_ANSI__)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Strict_Ansi_Only fix
 */
tSCC zStrict_Ansi_OnlyName[] =
     "strict_ansi_only";

/*
 *  File name selection pattern
 */
#define zStrict_Ansi_OnlyList (char*)NULL
/*
 *  Machine/OS name selection pattern
 */
#define apzStrict_Ansi_OnlyMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zStrict_Ansi_OnlySelect0[] =
       "^([ \t]*#[ \t]*if.*)(__STDC__[ \t]*!=[ \t]*0|__STDC__[ \t]*==[ \t]*1|__STDC__[ \t]*-[ \t]*0[ \t]*==[ \t]*1|__STDC__[ \t]*-[ \t]*0[ \t]*!=[ \t]*0)";

/*
 *  perform the C function call test
 */
tSCC zStrict_Ansi_OnlyFTst0[] = "stdc_0_in_system_headers";

#define    STRICT_ANSI_ONLY_TEST_CT  2
static tTestDesc aStrict_Ansi_OnlyTests[] = {
  { TT_FUNCTION, zStrict_Ansi_OnlyFTst0,   0 /* unused */ },
  { TT_EGREP,    zStrict_Ansi_OnlySelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Strict_Ansi_Only
 */
static const char* apzStrict_Ansi_OnlyPatch[] = {
    "format",
    "%1 defined(__STRICT_ANSI__)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Struct_File fix
 */
tSCC zStruct_FileName[] =
     "struct_file";

/*
 *  File name selection pattern
 */
tSCC zStruct_FileList[] =
  "rpc/xdr.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzStruct_FileMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zStruct_FileSelect0[] =
       "^.*xdrstdio_create.*struct __file_s";

#define    STRUCT_FILE_TEST_CT  1
static tTestDesc aStruct_FileTests[] = {
  { TT_EGREP,    zStruct_FileSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Struct_File
 */
static const char* apzStruct_FilePatch[] = {
    "format",
    "struct __file_s;\n\
%0",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Struct_Sockaddr fix
 */
tSCC zStruct_SockaddrName[] =
     "struct_sockaddr";

/*
 *  File name selection pattern
 */
tSCC zStruct_SockaddrList[] =
  "rpc/auth.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzStruct_SockaddrMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zStruct_SockaddrSelect0[] =
       "^.*authdes_create.*struct sockaddr[^_]";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zStruct_SockaddrBypass0[] =
       "<sys/socket.h>";
tSCC zStruct_SockaddrBypass1[] =
       "struct sockaddr;\n";

#define    STRUCT_SOCKADDR_TEST_CT  3
static tTestDesc aStruct_SockaddrTests[] = {
  { TT_NEGREP,   zStruct_SockaddrBypass0, (regex_t*)NULL },
  { TT_NEGREP,   zStruct_SockaddrBypass1, (regex_t*)NULL },
  { TT_EGREP,    zStruct_SockaddrSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Struct_Sockaddr
 */
static const char* apzStruct_SockaddrPatch[] = {
    "format",
    "struct sockaddr;\n\
%0",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Sun_Auth_Proto fix
 */
tSCC zSun_Auth_ProtoName[] =
     "sun_auth_proto";

/*
 *  File name selection pattern
 */
tSCC zSun_Auth_ProtoList[] =
  "rpc/auth.h\0rpc/clnt.h\0rpc/svc.h\0rpc/xdr.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzSun_Auth_ProtoMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSun_Auth_ProtoSelect0[] =
       "\\(\\*[a-z][a-z_]*\\)\\(\\)";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zSun_Auth_ProtoBypass0[] =
       "__cplusplus";

#define    SUN_AUTH_PROTO_TEST_CT  2
static tTestDesc aSun_Auth_ProtoTests[] = {
  { TT_NEGREP,   zSun_Auth_ProtoBypass0, (regex_t*)NULL },
  { TT_EGREP,    zSun_Auth_ProtoSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Sun_Auth_Proto
 */
static const char* apzSun_Auth_ProtoPatch[] = {
    "format",
    "#ifdef __cplusplus\n\
%1(...);%2\n\
#else\n\
%1();%2\n\
#endif",
    "(.*\\(\\*[a-z][a-z_]*\\))\\(\\);(.*)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Sun_Bogus_Ifdef fix
 */
tSCC zSun_Bogus_IfdefName[] =
     "sun_bogus_ifdef";

/*
 *  File name selection pattern
 */
tSCC zSun_Bogus_IfdefList[] =
  "hsfs/hsfs_spec.h\0hsfs/iso_spec.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzSun_Bogus_IfdefMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSun_Bogus_IfdefSelect0[] =
       "#ifdef(.*\\|\\|.*)";

#define    SUN_BOGUS_IFDEF_TEST_CT  1
static tTestDesc aSun_Bogus_IfdefTests[] = {
  { TT_EGREP,    zSun_Bogus_IfdefSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Sun_Bogus_Ifdef
 */
static const char* apzSun_Bogus_IfdefPatch[] = {
    "format",
    "#if%1",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Sun_Catmacro fix
 */
tSCC zSun_CatmacroName[] =
     "sun_catmacro";

/*
 *  File name selection pattern
 */
tSCC zSun_CatmacroList[] =
  "pixrect/memvar.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzSun_CatmacroMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSun_CatmacroSelect0[] =
       "^#define[ \t]+CAT\\(a,b\\).*";

#define    SUN_CATMACRO_TEST_CT  1
static tTestDesc aSun_CatmacroTests[] = {
  { TT_EGREP,    zSun_CatmacroSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Sun_Catmacro
 */
static const char* apzSun_CatmacroPatch[] = {
    "format",
    "#ifdef __STDC__\n\
#  define CAT(a,b) a##b\n\
#else\n\
%0\n\
#endif",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Sun_Malloc fix
 */
tSCC zSun_MallocName[] =
     "sun_malloc";

/*
 *  File name selection pattern
 */
tSCC zSun_MallocList[] =
  "malloc.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzSun_MallocMachs (const char**)NULL

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zSun_MallocBypass0[] =
       "_CLASSIC_ANSI_TYPES";

#define    SUN_MALLOC_TEST_CT  1
static tTestDesc aSun_MallocTests[] = {
  { TT_NEGREP,   zSun_MallocBypass0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Sun_Malloc
 */
static const char* apzSun_MallocPatch[] = { sed_cmd_z,
    "-e", "s/typedef[ \t]char \\*\tmalloc_t/typedef void \\*\tmalloc_t/g",
    "-e", "s/int[ \t][ \t]*free/void\tfree/g",
    "-e", "s/char\\([ \t]*\\*[ \t]*malloc\\)/void\\1/g",
    "-e", "s/char\\([ \t]*\\*[ \t]*realloc\\)/void\\1/g",
    "-e", "s/char\\([ \t]*\\*[ \t]*calloc\\)/void\\1/g",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Sun_Rusers_Semi fix
 */
tSCC zSun_Rusers_SemiName[] =
     "sun_rusers_semi";

/*
 *  File name selection pattern
 */
tSCC zSun_Rusers_SemiList[] =
  "rpcsvc/rusers.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzSun_Rusers_SemiMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSun_Rusers_SemiSelect0[] =
       "_cnt$";

#define    SUN_RUSERS_SEMI_TEST_CT  1
static tTestDesc aSun_Rusers_SemiTests[] = {
  { TT_EGREP,    zSun_Rusers_SemiSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Sun_Rusers_Semi
 */
static const char* apzSun_Rusers_SemiPatch[] = { sed_cmd_z,
    "-e", "/^struct/,/^};/s/_cnt$/_cnt;/",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Sun_Signal fix
 */
tSCC zSun_SignalName[] =
     "sun_signal";

/*
 *  File name selection pattern
 */
tSCC zSun_SignalList[] =
  "sys/signal.h\0signal.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzSun_SignalMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSun_SignalSelect0[] =
       "^void\t\\(\\*signal\\(\\)\\)\\(\\);.*";

#define    SUN_SIGNAL_TEST_CT  1
static tTestDesc aSun_SignalTests[] = {
  { TT_EGREP,    zSun_SignalSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Sun_Signal
 */
static const char* apzSun_SignalPatch[] = {
    "format",
    "#ifdef __cplusplus\n\
void\t(*signal(...))(...);\n\
#else\n\
%0\n\
#endif",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Sunos_Strlen fix
 */
tSCC zSunos_StrlenName[] =
     "sunos_strlen";

/*
 *  File name selection pattern
 */
tSCC zSunos_StrlenList[] =
  "strings.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzSunos_StrlenMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSunos_StrlenSelect0[] =
       "int[ \t]*strlen\\(\\);(.*)";

#define    SUNOS_STRLEN_TEST_CT  1
static tTestDesc aSunos_StrlenTests[] = {
  { TT_EGREP,    zSunos_StrlenSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Sunos_Strlen
 */
static const char* apzSunos_StrlenPatch[] = {
    "format",
    "__SIZE_TYPE__ strlen();%1",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Suse_Linux_Vt_Cxx fix
 */
tSCC zSuse_Linux_Vt_CxxName[] =
     "suse_linux_vt_cxx";

/*
 *  File name selection pattern
 */
tSCC zSuse_Linux_Vt_CxxList[] =
  "linux/vt.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzSuse_Linux_Vt_CxxMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSuse_Linux_Vt_CxxSelect0[] =
       "^[ \t]*unsigned int new;";

#define    SUSE_LINUX_VT_CXX_TEST_CT  1
static tTestDesc aSuse_Linux_Vt_CxxTests[] = {
  { TT_EGREP,    zSuse_Linux_Vt_CxxSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Suse_Linux_Vt_Cxx
 */
static const char* apzSuse_Linux_Vt_CxxPatch[] = {
    "format",
    "unsigned int newev;",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Svr4_Disable_Opt fix
 */
tSCC zSvr4_Disable_OptName[] =
     "svr4_disable_opt";

/*
 *  File name selection pattern
 */
tSCC zSvr4_Disable_OptList[] =
  "string.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzSvr4_Disable_OptMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSvr4_Disable_OptSelect0[] =
       "#define.*__std_hdr_";

#define    SVR4_DISABLE_OPT_TEST_CT  1
static tTestDesc aSvr4_Disable_OptTests[] = {
  { TT_EGREP,    zSvr4_Disable_OptSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Svr4_Disable_Opt
 */
static const char* apzSvr4_Disable_OptPatch[] = { sed_cmd_z,
    "-e", "/#define.*__std_hdr_/d",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Svr4_Getcwd fix
 */
tSCC zSvr4_GetcwdName[] =
     "svr4_getcwd";

/*
 *  File name selection pattern
 */
tSCC zSvr4_GetcwdList[] =
  "stdlib.h\0unistd.h\0prototypes.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzSvr4_GetcwdMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSvr4_GetcwdSelect0[] =
       "getcwd\\(char \\*, int\\)";

#define    SVR4_GETCWD_TEST_CT  1
static tTestDesc aSvr4_GetcwdTests[] = {
  { TT_EGREP,    zSvr4_GetcwdSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Svr4_Getcwd
 */
static const char* apzSvr4_GetcwdPatch[] = {
    "format",
    "getcwd(char *, size_t)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Svr4_Profil fix
 */
tSCC zSvr4_ProfilName[] =
     "svr4_profil";

/*
 *  File name selection pattern
 */
tSCC zSvr4_ProfilList[] =
  "stdlib.h\0unistd.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzSvr4_ProfilMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSvr4_ProfilSelect0[] =
       "profil\\(unsigned short \\*, unsigned int, unsigned int, unsigned int\\)";

#define    SVR4_PROFIL_TEST_CT  1
static tTestDesc aSvr4_ProfilTests[] = {
  { TT_EGREP,    zSvr4_ProfilSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Svr4_Profil
 */
static const char* apzSvr4_ProfilPatch[] = {
    "format",
    "profil(unsigned short *, size_t, int, unsigned int)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Svr4_Sighandler_Type fix
 */
tSCC zSvr4_Sighandler_TypeName[] =
     "svr4_sighandler_type";

/*
 *  File name selection pattern
 */
tSCC zSvr4_Sighandler_TypeList[] =
  "sys/signal.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzSvr4_Sighandler_TypeMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSvr4_Sighandler_TypeSelect0[] =
       "void *\\(\\*\\)\\(\\)";

#define    SVR4_SIGHANDLER_TYPE_TEST_CT  1
static tTestDesc aSvr4_Sighandler_TypeTests[] = {
  { TT_EGREP,    zSvr4_Sighandler_TypeSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Svr4_Sighandler_Type
 */
static const char* apzSvr4_Sighandler_TypePatch[] = {
    "format",
    "void (*)(int)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Svr4_Undeclared_Getrnge fix
 */
tSCC zSvr4_Undeclared_GetrngeName[] =
     "svr4_undeclared_getrnge";

/*
 *  File name selection pattern
 */
tSCC zSvr4_Undeclared_GetrngeList[] =
  "regexp.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzSvr4_Undeclared_GetrngeMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSvr4_Undeclared_GetrngeSelect0[] =
       "getrnge";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zSvr4_Undeclared_GetrngeBypass0[] =
       "static void getrnge";

#define    SVR4_UNDECLARED_GETRNGE_TEST_CT  2
static tTestDesc aSvr4_Undeclared_GetrngeTests[] = {
  { TT_NEGREP,   zSvr4_Undeclared_GetrngeBypass0, (regex_t*)NULL },
  { TT_EGREP,    zSvr4_Undeclared_GetrngeSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Svr4_Undeclared_Getrnge
 */
static const char* apzSvr4_Undeclared_GetrngePatch[] = {
    "format",
    "%0\n\
static int getrnge ();",
    "^static int[ \t]+size;",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Sysv68_String fix
 */
tSCC zSysv68_StringName[] =
     "sysv68_string";

/*
 *  File name selection pattern
 */
tSCC zSysv68_StringList[] =
  "testing.h\0string.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzSysv68_StringMachs (const char**)NULL

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zSysv68_StringBypass0[] =
       "_CLASSIC_ANSI_TYPES";

#define    SYSV68_STRING_TEST_CT  1
static tTestDesc aSysv68_StringTests[] = {
  { TT_NEGREP,   zSysv68_StringBypass0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Sysv68_String
 */
static const char* apzSysv68_StringPatch[] = { sed_cmd_z,
    "-e", "s/extern[ \t]*int[ \t]*strlen();/extern unsigned int strlen();/",
    "-e", "s/extern[ \t]*int[ \t]*ffs[ \t]*(long);/extern int ffs(int);/",
    "-e", "s/strdup(char \\*s1);/strdup(const char *s1);/",
    "-e", "/^extern char$/N",
    "-e", "s/^extern char\\(\\n\t\\*memccpy(),\\)$/extern void\\1/",
    "-e", "/^extern int$/N",
    "-e", "s/^extern int\\(\\n\tstrlen(),\\)/extern size_t\\1/",
    "-e", "/^\tstrncmp(),$/N",
    "-e", "s/^\\(\tstrncmp()\\),\\n\\(\tstrlen(),\\)$/\\1;\\\n\
extern unsigned int\\\n\
\\2/",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Sysz_Stdlib_For_Sun fix
 */
tSCC zSysz_Stdlib_For_SunName[] =
     "sysz_stdlib_for_sun";

/*
 *  File name selection pattern
 */
tSCC zSysz_Stdlib_For_SunList[] =
  "stdlib.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzSysz_Stdlib_For_SunMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSysz_Stdlib_For_SunSelect0[] =
       "char[ \t]*\\*[ \t]*(calloc|malloc|realloc|bsearch)[ \t]*\\(";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zSysz_Stdlib_For_SunBypass0[] =
       "_CLASSIC_ANSI_TYPES";

#define    SYSZ_STDLIB_FOR_SUN_TEST_CT  2
static tTestDesc aSysz_Stdlib_For_SunTests[] = {
  { TT_NEGREP,   zSysz_Stdlib_For_SunBypass0, (regex_t*)NULL },
  { TT_EGREP,    zSysz_Stdlib_For_SunSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Sysz_Stdlib_For_Sun
 */
static const char* apzSysz_Stdlib_For_SunPatch[] = {
    "format",
    "void *\t%1(",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Thread_Keyword fix
 */
tSCC zThread_KeywordName[] =
     "thread_keyword";

/*
 *  File name selection pattern
 */
tSCC zThread_KeywordList[] =
  "pthread.h\0bits/sigthread.h\0*/bits/sigthread.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzThread_KeywordMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zThread_KeywordSelect0[] =
       "([* ])__thread([,)])";

#define    THREAD_KEYWORD_TEST_CT  1
static tTestDesc aThread_KeywordTests[] = {
  { TT_EGREP,    zThread_KeywordSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Thread_Keyword
 */
static const char* apzThread_KeywordPatch[] = {
    "format",
    "%1__thr%2",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Tinfo_Cplusplus fix
 */
tSCC zTinfo_CplusplusName[] =
     "tinfo_cplusplus";

/*
 *  File name selection pattern
 */
tSCC zTinfo_CplusplusList[] =
  "tinfo.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzTinfo_CplusplusMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zTinfo_CplusplusSelect0[] =
       "[ \t]_cplusplus";

#define    TINFO_CPLUSPLUS_TEST_CT  1
static tTestDesc aTinfo_CplusplusTests[] = {
  { TT_EGREP,    zTinfo_CplusplusSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Tinfo_Cplusplus
 */
static const char* apzTinfo_CplusplusPatch[] = {
    "format",
    " __cplusplus",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Ultrix_Const fix
 */
tSCC zUltrix_ConstName[] =
     "ultrix_const";

/*
 *  File name selection pattern
 */
tSCC zUltrix_ConstList[] =
  "stdio.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzUltrix_ConstMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zUltrix_ConstSelect0[] =
       "perror\\( char \\*";

#define    ULTRIX_CONST_TEST_CT  1
static tTestDesc aUltrix_ConstTests[] = {
  { TT_EGREP,    zUltrix_ConstSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Ultrix_Const
 */
static const char* apzUltrix_ConstPatch[] = {
    "format",
    "%1 const %3 *__",
    "([ \t*](perror|fputs|fwrite|scanf|fscanf)\\(.*)[ \t]+(char|void) \\*__",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Ultrix_Const2 fix
 */
tSCC zUltrix_Const2Name[] =
     "ultrix_const2";

/*
 *  File name selection pattern
 */
tSCC zUltrix_Const2List[] =
  "stdio.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzUltrix_Const2Machs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zUltrix_Const2Select0[] =
       "\\*fopen\\( char \\*";

#define    ULTRIX_CONST2_TEST_CT  1
static tTestDesc aUltrix_Const2Tests[] = {
  { TT_EGREP,    zUltrix_Const2Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Ultrix_Const2
 */
static const char* apzUltrix_Const2Patch[] = {
    "format",
    "%1( const char *%3, const char *",
    "([ \t*](fopen|sscanf|popen|tempnam))\\([ \t]*char[ \t]*\\*([^,]*),[ \t]*char[ \t]*\\*[ \t]*",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Va_I960_Macro fix
 */
tSCC zVa_I960_MacroName[] =
     "va_i960_macro";

/*
 *  File name selection pattern
 */
tSCC zVa_I960_MacroList[] =
  "arch/i960/archI960.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzVa_I960_MacroMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zVa_I960_MacroSelect0[] =
       "__(vsiz|vali|vpad|alignof__)";

#define    VA_I960_MACRO_TEST_CT  1
static tTestDesc aVa_I960_MacroTests[] = {
  { TT_EGREP,    zVa_I960_MacroSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Va_I960_Macro
 */
static const char* apzVa_I960_MacroPatch[] = {
    "format",
    "__vx%1",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Vms_Add_Missing_Braces fix
 */
tSCC zVms_Add_Missing_BracesName[] =
     "vms_add_missing_braces";

/*
 *  File name selection pattern
 */
tSCC zVms_Add_Missing_BracesList[] =
  "rtldef/signal.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzVms_Add_Missing_BracesMachs[] = {
        "*-*-*vms*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zVms_Add_Missing_BracesSelect0[] =
       "(_SIG_[A-Z]+_SET[ \t]+= \\{)(0x[0F]+, 0x[0F]+)";

#define    VMS_ADD_MISSING_BRACES_TEST_CT  1
static tTestDesc aVms_Add_Missing_BracesTests[] = {
  { TT_EGREP,    zVms_Add_Missing_BracesSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Vms_Add_Missing_Braces
 */
static const char* apzVms_Add_Missing_BracesPatch[] = {
    "format",
    "%1 {%2} ",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Vms_Decc_Builtin fix
 */
tSCC zVms_Decc_BuiltinName[] =
     "vms_decc_builtin";

/*
 *  File name selection pattern
 */
tSCC zVms_Decc_BuiltinList[] =
  "rtldef/string.h\0rtldef/time.h\0rtldef/strings.h\0rtldef/socket.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzVms_Decc_BuiltinMachs[] = {
        "*-*-*vms*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zVms_Decc_BuiltinSelect0[] =
       "(__MEMSET|__MEMMOVE|__MEMCPY|__STRLEN|__STRCPY)";

#define    VMS_DECC_BUILTIN_TEST_CT  1
static tTestDesc aVms_Decc_BuiltinTests[] = {
  { TT_EGREP,    zVms_Decc_BuiltinSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Vms_Decc_Builtin
 */
static const char* apzVms_Decc_BuiltinPatch[] = { sed_cmd_z,
    "-e", "s@__MEMSET@memset@",
    "-e", "s@__MEMMOVE@memmove@",
    "-e", "s@__MEMCPY@memcpy@",
    "-e", "s@__STRLEN@strlen@",
    "-e", "s@__STRCPY@strcpy@",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Vms_Define_Can_Use_Extern_Prefix fix
 */
tSCC zVms_Define_Can_Use_Extern_PrefixName[] =
     "vms_define_can_use_extern_prefix";

/*
 *  File name selection pattern
 */
tSCC zVms_Define_Can_Use_Extern_PrefixList[] =
  "rtldef/decc$types.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzVms_Define_Can_Use_Extern_PrefixMachs[] = {
        "*-*-*vms*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zVms_Define_Can_Use_Extern_PrefixSelect0[] =
       "#[ \t]*else\n\
#[ \t]*if defined\\(__DECCXX\\)\n\
#[ \t]*define __CAN_USE_EXTERN_PREFIX 1\n";

#define    VMS_DEFINE_CAN_USE_EXTERN_PREFIX_TEST_CT  1
static tTestDesc aVms_Define_Can_Use_Extern_PrefixTests[] = {
  { TT_EGREP,    zVms_Define_Can_Use_Extern_PrefixSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Vms_Define_Can_Use_Extern_Prefix
 */
static const char* apzVms_Define_Can_Use_Extern_PrefixPatch[] = {
    "format",
    "%0#    elif defined (__GNUC__)\n\
#\tdefine __CAN_USE_EXTERN_PREFIX 1\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Vms_Disable_Decc_String_Builtins fix
 */
tSCC zVms_Disable_Decc_String_BuiltinsName[] =
     "vms_disable_decc_string_builtins";

/*
 *  File name selection pattern
 */
tSCC zVms_Disable_Decc_String_BuiltinsList[] =
  "rtldef/string.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzVms_Disable_Decc_String_BuiltinsMachs[] = {
        "*-*-*vms*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zVms_Disable_Decc_String_BuiltinsSelect0[] =
       "#if !defined\\(__VAX\\)\n";

#define    VMS_DISABLE_DECC_STRING_BUILTINS_TEST_CT  1
static tTestDesc aVms_Disable_Decc_String_BuiltinsTests[] = {
  { TT_EGREP,    zVms_Disable_Decc_String_BuiltinsSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Vms_Disable_Decc_String_Builtins
 */
static const char* apzVms_Disable_Decc_String_BuiltinsPatch[] = {
    "format",
    "#if !defined(__VAX) && !defined(__GNUC__)\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Vms_Do_Not_Redeclare_Hostalias fix
 */
tSCC zVms_Do_Not_Redeclare_HostaliasName[] =
     "vms_do_not_redeclare_hostalias";

/*
 *  File name selection pattern
 */
tSCC zVms_Do_Not_Redeclare_HostaliasList[] =
  "rtldef/resolv.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzVms_Do_Not_Redeclare_HostaliasMachs[] = {
        "*-*-*vms*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zVms_Do_Not_Redeclare_HostaliasSelect0[] =
       "(void[ \t]+fp_nquery \\(const u_char \\*, int, FILE \\*\\);)\n\
(__char_ptr32[ \t]+hostalias \\(const char \\*\\);)";

#define    VMS_DO_NOT_REDECLARE_HOSTALIAS_TEST_CT  1
static tTestDesc aVms_Do_Not_Redeclare_HostaliasTests[] = {
  { TT_EGREP,    zVms_Do_Not_Redeclare_HostaliasSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Vms_Do_Not_Redeclare_Hostalias
 */
static const char* apzVms_Do_Not_Redeclare_HostaliasPatch[] = {
    "format",
    "%1\n\
/* %2 */",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Vms_Forward_Declare_Struct fix
 */
tSCC zVms_Forward_Declare_StructName[] =
     "vms_forward_declare_struct";

/*
 *  File name selection pattern
 */
tSCC zVms_Forward_Declare_StructList[] =
  "rtldef/if.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzVms_Forward_Declare_StructMachs[] = {
        "*-*-*vms*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zVms_Forward_Declare_StructSelect0[] =
       "(/\\* forward decls for C\\+\\+ \\*/\n\
)#ifdef __cplusplus\n";

#define    VMS_FORWARD_DECLARE_STRUCT_TEST_CT  1
static tTestDesc aVms_Forward_Declare_StructTests[] = {
  { TT_EGREP,    zVms_Forward_Declare_StructSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Vms_Forward_Declare_Struct
 */
static const char* apzVms_Forward_Declare_StructPatch[] = {
    "format",
    "%1#if defined (__cplusplus) || defined (__GNUC__)\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Vms_No_64bit_Getopt fix
 */
tSCC zVms_No_64bit_GetoptName[] =
     "vms_no_64bit_getopt";

/*
 *  File name selection pattern
 */
tSCC zVms_No_64bit_GetoptList[] =
  "rtldef/stdio.h\0rtldef/unistd.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzVms_No_64bit_GetoptMachs[] = {
        "*-*-*vms*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zVms_No_64bit_GetoptSelect0[] =
       "^[ \t]*(extern[ \t]*)?(int[ \t]*(getopt|optind|opterr|optopt)|(char \\*optarg))([ \t]*\\(.*\\))?;\n";

#define    VMS_NO_64BIT_GETOPT_TEST_CT  1
static tTestDesc aVms_No_64bit_GetoptTests[] = {
  { TT_EGREP,    zVms_No_64bit_GetoptSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Vms_No_64bit_Getopt
 */
static const char* apzVms_No_64bit_GetoptPatch[] = {
    "format",
    "#if __INITIAL_POINTER_SIZE != 64 /* getopt is short ptr only.  */\n\
%0#endif\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Vms_Use_Fast_Setjmp fix
 */
tSCC zVms_Use_Fast_SetjmpName[] =
     "vms_use_fast_setjmp";

/*
 *  File name selection pattern
 */
tSCC zVms_Use_Fast_SetjmpList[] =
  "rtldef/setjmp.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzVms_Use_Fast_SetjmpMachs[] = {
        "*-*-*vms*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zVms_Use_Fast_SetjmpSelect0[] =
       "(#[ \t]*if[ \t]*defined\\(__FAST_SETJMP\\)[ \t]*\\|\\|)";

#define    VMS_USE_FAST_SETJMP_TEST_CT  1
static tTestDesc aVms_Use_Fast_SetjmpTests[] = {
  { TT_EGREP,    zVms_Use_Fast_SetjmpSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Vms_Use_Fast_Setjmp
 */
static const char* apzVms_Use_Fast_SetjmpPatch[] = {
    "format",
    "%0 defined (__GNUC__) ||",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Vms_Use_Pragma_Extern_Model fix
 */
tSCC zVms_Use_Pragma_Extern_ModelName[] =
     "vms_use_pragma_extern_model";

/*
 *  File name selection pattern
 */
#define zVms_Use_Pragma_Extern_ModelList (char*)NULL
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzVms_Use_Pragma_Extern_ModelMachs[] = {
        "*-*-*vms*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zVms_Use_Pragma_Extern_ModelSelect0[] =
       "#if defined\\(__DECC\\) \\|\\| defined\\(__DECCXX\\)\n\
# pragma extern_model __save\n";

#define    VMS_USE_PRAGMA_EXTERN_MODEL_TEST_CT  1
static tTestDesc aVms_Use_Pragma_Extern_ModelTests[] = {
  { TT_EGREP,    zVms_Use_Pragma_Extern_ModelSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Vms_Use_Pragma_Extern_Model
 */
static const char* apzVms_Use_Pragma_Extern_ModelPatch[] = {
    "format",
    "#if defined(__DECC) || defined(__DECCXX) || defined(__GNUC__)\n\
# pragma extern_model __save\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Vms_Use_Quoted_Include fix
 */
tSCC zVms_Use_Quoted_IncludeName[] =
     "vms_use_quoted_include";

/*
 *  File name selection pattern
 */
tSCC zVms_Use_Quoted_IncludeList[] =
  "rtldef/wait.h\0starlet_c/pthread.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzVms_Use_Quoted_IncludeMachs[] = {
        "*-*-*vms*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zVms_Use_Quoted_IncludeSelect0[] =
       "(#[ \t]*include[ \t]+)<(resource|builtins)\\.h>";

#define    VMS_USE_QUOTED_INCLUDE_TEST_CT  1
static tTestDesc aVms_Use_Quoted_IncludeTests[] = {
  { TT_EGREP,    zVms_Use_Quoted_IncludeSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Vms_Use_Quoted_Include
 */
static const char* apzVms_Use_Quoted_IncludePatch[] = {
    "format",
    "%1<sys/%2.h>",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Void_Null fix
 */
tSCC zVoid_NullName[] =
     "void_null";

/*
 *  File name selection pattern
 */
tSCC zVoid_NullList[] =
  "curses.h\0dbm.h\0locale.h\0stdio.h\0stdlib.h\0string.h\0time.h\0unistd.h\0sys/dir.h\0sys/param.h\0sys/types.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzVoid_NullMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zVoid_NullSelect0[] =
       "^#[ \t]*define[ \t]+NULL[ \t]+\\(\\(void[ \t]*\\*\\)0\\)";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zVoid_NullBypass0[] =
       "__cplusplus";
tSCC zVoid_NullBypass1[] =
       "__null";

#define    VOID_NULL_TEST_CT  3
static tTestDesc aVoid_NullTests[] = {
  { TT_NEGREP,   zVoid_NullBypass0, (regex_t*)NULL },
  { TT_NEGREP,   zVoid_NullBypass1, (regex_t*)NULL },
  { TT_EGREP,    zVoid_NullSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Void_Null
 */
static const char* apzVoid_NullPatch[] = {
    "format",
    "#ifndef NULL\n\
#ifdef __cplusplus\n\
#ifdef __GNUG__\n\
#define NULL __null\n\
#else /* ! __GNUG__  */\n\
#define NULL 0L\n\
#endif /* __GNUG__  */\n\
#else /* ! __cplusplus  */\n\
#define NULL ((void *)0)\n\
#endif /* __cplusplus  */\n\
#endif /* !NULL  */",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Vxworks_Gcc_Problem fix
 */
tSCC zVxworks_Gcc_ProblemName[] =
     "vxworks_gcc_problem";

/*
 *  File name selection pattern
 */
tSCC zVxworks_Gcc_ProblemList[] =
  "types/vxTypesBase.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzVxworks_Gcc_ProblemMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zVxworks_Gcc_ProblemSelect0[] =
       "__GNUC_TYPEOF_FEATURE_BROKEN_USE_DEFAULT_UNTIL_FIXED__";

#define    VXWORKS_GCC_PROBLEM_TEST_CT  1
static tTestDesc aVxworks_Gcc_ProblemTests[] = {
  { TT_EGREP,    zVxworks_Gcc_ProblemSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Vxworks_Gcc_Problem
 */
static const char* apzVxworks_Gcc_ProblemPatch[] = { sed_cmd_z,
    "-e", "s/#ifdef __GNUC_TYPEOF_FEATURE_BROKEN_USE_DEFAULT_UNTIL_FIXED__/#if 1/",
    "-e", "/[ \t]size_t/i\\\n\
#ifndef _GCC_SIZE_T\\\n\
#define _GCC_SIZE_T\n",
    "-e", "/[ \t]size_t/a\\\n\
#endif\n",
    "-e", "/[ \t]ptrdiff_t/i\\\n\
#ifndef _GCC_PTRDIFF_T\\\n\
#define _GCC_PTRDIFF_T\n",
    "-e", "/[ \t]ptrdiff_t/a\\\n\
#endif\n",
    "-e", "/[ \t]wchar_t/i\\\n\
#ifndef _GCC_WCHAR_T\\\n\
#define _GCC_WCHAR_T\n",
    "-e", "/[ \t]wchar_t/a\\\n\
#endif\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Vxworks_Ioctl_Macro fix
 */
tSCC zVxworks_Ioctl_MacroName[] =
     "vxworks_ioctl_macro";

/*
 *  File name selection pattern
 */
tSCC zVxworks_Ioctl_MacroList[] =
  "ioLib.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzVxworks_Ioctl_MacroMachs[] = {
        "*-*-vxworks*",
        (const char*)NULL };
#define VXWORKS_IOCTL_MACRO_TEST_CT  0
#define aVxworks_Ioctl_MacroTests   (tTestDesc*)NULL

/*
 *  Fix Command Arguments for Vxworks_Ioctl_Macro
 */
static const char* apzVxworks_Ioctl_MacroPatch[] = {
    "format",
    "%0\n\
#define ioctl(fd, func, arg) (ioctl)(fd, func, (int)(arg))\n",
    "extern[\t ]+int[\t ]+ioctl[\t ]*\\([\t ,[:alnum:]]*\\);",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Vxworks_Mkdir_Macro fix
 */
tSCC zVxworks_Mkdir_MacroName[] =
     "vxworks_mkdir_macro";

/*
 *  File name selection pattern
 */
tSCC zVxworks_Mkdir_MacroList[] =
  "sys/stat.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzVxworks_Mkdir_MacroMachs[] = {
        "*-*-vxworks*",
        (const char*)NULL };
#define VXWORKS_MKDIR_MACRO_TEST_CT  0
#define aVxworks_Mkdir_MacroTests   (tTestDesc*)NULL

/*
 *  Fix Command Arguments for Vxworks_Mkdir_Macro
 */
static const char* apzVxworks_Mkdir_MacroPatch[] = {
    "format",
    "%0\n\
#define mkdir(dir, ...) ((void)0, ##__VA_ARGS__, (mkdir)(dir))\n",
    "extern[\t ]+STATUS[\t ]+mkdir[\t ]*\\([\t ]*const[\t ]+char[\t ]*\\*[\t ]*(|[_[:alpha:]][_[:alnum:]]*)\\)[\t ]*;",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Vxworks_Needs_Vxtypes fix
 */
tSCC zVxworks_Needs_VxtypesName[] =
     "vxworks_needs_vxtypes";

/*
 *  File name selection pattern
 */
tSCC zVxworks_Needs_VxtypesList[] =
  "time.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzVxworks_Needs_VxtypesMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zVxworks_Needs_VxtypesSelect0[] =
       "uint_t([ \t]+_clocks_per_sec)";

#define    VXWORKS_NEEDS_VXTYPES_TEST_CT  1
static tTestDesc aVxworks_Needs_VxtypesTests[] = {
  { TT_EGREP,    zVxworks_Needs_VxtypesSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Vxworks_Needs_Vxtypes
 */
static const char* apzVxworks_Needs_VxtypesPatch[] = {
    "format",
    "unsigned int%1",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Vxworks_Needs_Vxworks fix
 */
tSCC zVxworks_Needs_VxworksName[] =
     "vxworks_needs_vxworks";

/*
 *  File name selection pattern
 */
tSCC zVxworks_Needs_VxworksList[] =
  "sys/stat.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzVxworks_Needs_VxworksMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zVxworks_Needs_VxworksSelect0[] =
       "#[ \t]define[ \t]+__INCstath";

/*
 *  perform the 'test' shell command - do fix on success
 */
tSCC zVxworks_Needs_VxworksTest0[] =
       " -r types/vxTypesOld.h";
tSCC zVxworks_Needs_VxworksTest1[] =
       " -n \"`egrep '#include' $file`\"";
tSCC zVxworks_Needs_VxworksTest2[] =
       " -n \"`egrep ULONG $file`\"";

#define    VXWORKS_NEEDS_VXWORKS_TEST_CT  4
static tTestDesc aVxworks_Needs_VxworksTests[] = {
  { TT_TEST,     zVxworks_Needs_VxworksTest0,   0 /* unused */ },
  { TT_TEST,     zVxworks_Needs_VxworksTest1,   0 /* unused */ },
  { TT_TEST,     zVxworks_Needs_VxworksTest2,   0 /* unused */ },
  { TT_EGREP,    zVxworks_Needs_VxworksSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Vxworks_Needs_Vxworks
 */
static const char* apzVxworks_Needs_VxworksPatch[] = { sed_cmd_z,
    "-e", "/#[ \t]define[ \t][ \t]*__INCstath/a\\\n\
#include <types/vxTypesOld.h>\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Vxworks_Regs fix
 */
tSCC zVxworks_RegsName[] =
     "vxworks_regs";

/*
 *  File name selection pattern
 */
#define zVxworks_RegsList (char*)NULL
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzVxworks_RegsMachs[] = {
        "*-*-vxworks*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zVxworks_RegsSelect0[] =
       "#[\t ]*include[\t ]+[<\"]regs.h[>\"]";

#define    VXWORKS_REGS_TEST_CT  1
static tTestDesc aVxworks_RegsTests[] = {
  { TT_EGREP,    zVxworks_RegsSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Vxworks_Regs
 */
static const char* apzVxworks_RegsPatch[] = {
    "format",
    "#include <arch/../regs.h>",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Vxworks_Time fix
 */
tSCC zVxworks_TimeName[] =
     "vxworks_time";

/*
 *  File name selection pattern
 */
tSCC zVxworks_TimeList[] =
  "time.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzVxworks_TimeMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zVxworks_TimeSelect0[] =
       "#[ \t]*define[ \t]+VOIDFUNCPTR[ \t].*";

/*
 *  perform the 'test' shell command - do fix on success
 */
tSCC zVxworks_TimeTest0[] =
       " -r vxWorks.h";

#define    VXWORKS_TIME_TEST_CT  2
static tTestDesc aVxworks_TimeTests[] = {
  { TT_TEST,     zVxworks_TimeTest0,   0 /* unused */ },
  { TT_EGREP,    zVxworks_TimeSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Vxworks_Time
 */
static const char* apzVxworks_TimePatch[] = {
    "format",
    "#ifndef __gcc_VOIDFUNCPTR_defined\n\
#ifdef __cplusplus\n\
typedef void (*__gcc_VOIDFUNCPTR) (...);\n\
#else\n\
typedef void (*__gcc_VOIDFUNCPTR) ();\n\
#endif\n\
#define __gcc_VOIDFUNCPTR_defined\n\
#endif\n\
#define VOIDFUNCPTR __gcc_VOIDFUNCPTR",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Vxworks_Write_Const fix
 */
tSCC zVxworks_Write_ConstName[] =
     "vxworks_write_const";

/*
 *  File name selection pattern
 */
tSCC zVxworks_Write_ConstList[] =
  "ioLib.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzVxworks_Write_ConstMachs[] = {
        "*-*-vxworks*",
        (const char*)NULL };
#define VXWORKS_WRITE_CONST_TEST_CT  0
#define aVxworks_Write_ConstTests   (tTestDesc*)NULL

/*
 *  Fix Command Arguments for Vxworks_Write_Const
 */
static const char* apzVxworks_Write_ConstPatch[] = {
    "format",
    "extern int  write (int, const char*, size_t);",
    "extern[\t ]+int[\t ]+write[\t ]*\\([\t ]*int[\t ]*,[\t ]*char[\t ]*\\*[\t ]*,[\t ]*size_t[\t ]*\\)[\t ]*;",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of X11_Class fix
 */
tSCC zX11_ClassName[] =
     "x11_class";

/*
 *  File name selection pattern
 */
tSCC zX11_ClassList[] =
  "X11/ShellP.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzX11_ClassMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zX11_ClassSelect0[] =
       "^([ \t]*char \\*)class;(.*)";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zX11_ClassBypass0[] =
       "__cplusplus";

#define    X11_CLASS_TEST_CT  2
static tTestDesc aX11_ClassTests[] = {
  { TT_NEGREP,   zX11_ClassBypass0, (regex_t*)NULL },
  { TT_EGREP,    zX11_ClassSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for X11_Class
 */
static const char* apzX11_ClassPatch[] = {
    "format",
    "#ifdef __cplusplus\n\
%1c_class;%2\n\
#else\n\
%1class;%2\n\
#endif",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of X11_Class_Usage fix
 */
tSCC zX11_Class_UsageName[] =
     "x11_class_usage";

/*
 *  File name selection pattern
 */
tSCC zX11_Class_UsageList[] =
  "Xm/BaseClassI.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzX11_Class_UsageMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zX11_Class_UsageSelect0[] =
       " class\\)";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zX11_Class_UsageBypass0[] =
       "__cplusplus";

#define    X11_CLASS_USAGE_TEST_CT  2
static tTestDesc aX11_Class_UsageTests[] = {
  { TT_NEGREP,   zX11_Class_UsageBypass0, (regex_t*)NULL },
  { TT_EGREP,    zX11_Class_UsageSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for X11_Class_Usage
 */
static const char* apzX11_Class_UsagePatch[] = {
    "format",
    " c_class)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of X11_New fix
 */
tSCC zX11_NewName[] =
     "x11_new";

/*
 *  File name selection pattern
 */
tSCC zX11_NewList[] =
  "Xm/Traversal.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzX11_NewMachs (const char**)NULL

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zX11_NewBypass0[] =
       "__cplusplus";

#define    X11_NEW_TEST_CT  1
static tTestDesc aX11_NewTests[] = {
  { TT_NEGREP,   zX11_NewBypass0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for X11_New
 */
static const char* apzX11_NewPatch[] = { sed_cmd_z,
    "-e", "/Widget\told, new;/i\\\n\
#ifdef __cplusplus\\\n\
\\\tWidget\told, c_new;\\\n\
#else\n",
    "-e", "/Widget\told, new;/a\\\n\
#endif\n",
    "-e", "s/Widget new,/Widget c_new,/g",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of X11_Sprintf fix
 */
tSCC zX11_SprintfName[] =
     "x11_sprintf";

/*
 *  File name selection pattern
 */
tSCC zX11_SprintfList[] =
  "X11/Xmu.h\0X11/Xmu/Xmu.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzX11_SprintfMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zX11_SprintfSelect0[] =
       "^extern char \\*\tsprintf\\(\\);$";

#define    X11_SPRINTF_TEST_CT  1
static tTestDesc aX11_SprintfTests[] = {
  { TT_EGREP,    zX11_SprintfSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for X11_Sprintf
 */
static const char* apzX11_SprintfPatch[] = {
    "format",
    "#ifndef __STDC__\n\
%0\n\
#endif /* !defined __STDC__ */",
    (char*)NULL };


/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  List of all fixes
 */
#define REGEX_COUNT          267
#define MACH_LIST_SIZE_LIMIT 187
#define FIX_COUNT            230

/*
 *  Enumerate the fixes
 */
typedef enum {
    AAB_AIX_STDIO_FIXIDX,
    AAB_AIX_FCNTL_FIXIDX,
    AAB_DARWIN7_9_LONG_DOUBLE_FUNCS_FIXIDX,
    AAB_FD_ZERO_ASM_POSIX_TYPES_H_FIXIDX,
    AAB_FD_ZERO_GNU_TYPES_H_FIXIDX,
    AAB_FD_ZERO_SELECTBITS_H_FIXIDX,
    AAB_SOLARIS_SYS_VARARGS_H_FIXIDX,
    AAB_SUN_MEMCPY_FIXIDX,
    AAB_VXWORKS_ASSERT_FIXIDX,
    AAB_VXWORKS_REGS_VXTYPES_FIXIDX,
    AAB_VXWORKS_STDINT_FIXIDX,
    AAB_VXWORKS_UNISTD_FIXIDX,
    AIX_ASSERT_FIXIDX,
    AIX_COMPLEX_FIXIDX,
    AIX_EXTERNC_FIXIDX,
    AIX_EXTERNCPP1_FIXIDX,
    AIX_EXTERNCPP2_FIXIDX,
    AIX_MALLOC_FIXIDX,
    AIX_NET_IF_ARP_FIXIDX,
    AIX_NULL_FIXIDX,
    AIX_ONCE_INIT_1_FIXIDX,
    AIX_ONCE_INIT_2_FIXIDX,
    AIX_MUTEX_INITIALIZER_1_FIXIDX,
    AIX_COND_INITIALIZER_1_FIXIDX,
    AIX_RWLOCK_INITIALIZER_1_FIXIDX,
    AIX_PTHREAD_FIXIDX,
    AIX_STDINT_1_FIXIDX,
    AIX_STDINT_2_FIXIDX,
    AIX_STDINT_3_FIXIDX,
    AIX_STDINT_4_FIXIDX,
    AIX_STDINT_5_FIXIDX,
    AIX_STDIO_INLINE_FIXIDX,
    AIX_STRTOF_CONST_FIXIDX,
    AIX_SYSMACHINE_FIXIDX,
    AIX_SYSWAIT_2_FIXIDX,
    AIX_VOLATILE_FIXIDX,
    ALPHA___ASSERT_FIXIDX,
    ALPHA_ASSERT_FIXIDX,
    ALPHA_GETOPT_FIXIDX,
    ALPHA_IF_SEMICOLON_FIXIDX,
    ALPHA_PARENS_FIXIDX,
    ALPHA_SBRK_FIXIDX,
    AVOID_BOOL_DEFINE_FIXIDX,
    AVOID_BOOL_TYPE_FIXIDX,
    AVOID_WCHAR_T_TYPE_FIXIDX,
    BAD_STRUCT_TERM_FIXIDX,
    BADQUOTE_FIXIDX,
    BROKEN_ASSERT_STDIO_FIXIDX,
    BROKEN_ASSERT_STDLIB_FIXIDX,
    BROKEN_CABS_FIXIDX,
    BROKEN_NAN_FIXIDX,
    BSD_STDIO_ATTRS_CONFLICT_FIXIDX,
    CTRL_QUOTES_DEF_FIXIDX,
    CTRL_QUOTES_USE_FIXIDX,
    CXX_UNREADY_FIXIDX,
    DARWIN_9_LONG_DOUBLE_FUNCS_2_FIXIDX,
    DARWIN_EXTERNC_FIXIDX,
    DARWIN_GCC4_BREAKAGE_FIXIDX,
    DARWIN_PRIVATE_EXTERN_FIXIDX,
    DARWIN_STDINT_1_FIXIDX,
    DARWIN_STDINT_2_FIXIDX,
    DARWIN_STDINT_3_FIXIDX,
    DARWIN_STDINT_4_FIXIDX,
    DARWIN_STDINT_5_FIXIDX,
    DARWIN_STDINT_6_FIXIDX,
    DARWIN_STDINT_7_FIXIDX,
    DEC_INTERN_ASM_FIXIDX,
    DJGPP_WCHAR_H_FIXIDX,
    ECD_CURSOR_FIXIDX,
    FERAISEEXCEPT_NOSSE_DIVBYZERO_FIXIDX,
    FERAISEEXCEPT_NOSSE_INVALID_FIXIDX,
    FREEBSD_GCC3_BREAKAGE_FIXIDX,
    FREEBSD_GCC4_BREAKAGE_FIXIDX,
    GLIBC_C99_INLINE_1_FIXIDX,
    GLIBC_C99_INLINE_1A_FIXIDX,
    GLIBC_C99_INLINE_2_FIXIDX,
    GLIBC_C99_INLINE_3_FIXIDX,
    GLIBC_C99_INLINE_4_FIXIDX,
    GLIBC_MUTEX_INIT_FIXIDX,
    GLIBC_STDINT_FIXIDX,
    GLIBC_STRNCPY_FIXIDX,
    GLIBC_TGMATH_FIXIDX,
    GNU_TYPES_FIXIDX,
    HP_INLINE_FIXIDX,
    HP_SYSFILE_FIXIDX,
    HPPA_HPUX_FP_MACROS_FIXIDX,
    HPUX10_CPP_POW_INLINE_FIXIDX,
    HPUX11_CPP_POW_INLINE_FIXIDX,
    HPUX10_CTYPE_DECLARATIONS1_FIXIDX,
    HPUX10_CTYPE_DECLARATIONS2_FIXIDX,
    HPUX10_STDIO_DECLARATIONS_FIXIDX,
    HPUX11_ABS_FIXIDX,
    HPUX11_LWP_RWLOCK_VALID_FIXIDX,
    HPUX11_EXTERN_SENDFILE_FIXIDX,
    HPUX11_EXTERN_SENDPATH_FIXIDX,
    HPUX11_FABSF_FIXIDX,
    HPUX11_PTHREAD_CONST_FIXIDX,
    HPUX11_SIZE_T_FIXIDX,
    HPUX11_SNPRINTF_FIXIDX,
    HPUX11_VSNPRINTF_FIXIDX,
    HPUX8_BOGUS_INLINES_FIXIDX,
    HPUX_C99_INTPTR_FIXIDX,
    HPUX_C99_INTTYPES_FIXIDX,
    HPUX_C99_INTTYPES2_FIXIDX,
    HPUX_CTYPE_MACROS_FIXIDX,
    HPUX_EXTERN_ERRNO_FIXIDX,
    HPUX_HTONL_FIXIDX,
    HPUX_IMAGINARY_I_FIXIDX,
    HPUX_INTTYPE_INT8_T_FIXIDX,
    HPUX_LONG_DOUBLE_FIXIDX,
    HPUX_LONG_DOUBLE_2_FIXIDX,
    HPUX_PTHREAD_INITIALIZERS_FIXIDX,
    HPUX_SPU_INFO_FIXIDX,
    HPUX_STDINT_LEAST_FAST_FIXIDX,
    HPUX_SYSTIME_FIXIDX,
    HUGE_VAL_HEX_FIXIDX,
    HUGE_VALF_HEX_FIXIDX,
    HUGE_VALL_HEX_FIXIDX,
    INT_ABORT_FREE_AND_EXIT_FIXIDX,
    IO_QUOTES_DEF_FIXIDX,
    IO_QUOTES_USE_FIXIDX,
    IP_MISSING_SEMI_FIXIDX,
    IRIX_LIMITS_CONST_FIXIDX,
    IRIX_STDIO_VA_LIST_FIXIDX,
    KANDR_CONCAT_FIXIDX,
    LINUX_IA64_UCONTEXT_FIXIDX,
    LYNXOS_NO_WARNING_IN_SYS_TIME_H_FIXIDX,
    LYNXOS_MISSING_PUTENV_FIXIDX,
    MACHINE_ANSI_H_VA_LIST_FIXIDX,
    MACHINE_NAME_FIXIDX,
    MATH_EXCEPTION_FIXIDX,
    MATH_HUGE_VAL_FROM_DBL_MAX_FIXIDX,
    NESTED_AUTH_DES_FIXIDX,
    NETBSD_C99_INLINE_1_FIXIDX,
    NETBSD_C99_INLINE_2_FIXIDX,
    NETBSD_EXTRA_SEMICOLON_FIXIDX,
    NEWLIB_STDINT_1_FIXIDX,
    NEWLIB_STDINT_2_FIXIDX,
    NEXT_MATH_PREFIX_FIXIDX,
    NEXT_TEMPLATE_FIXIDX,
    NEXT_VOLITILE_FIXIDX,
    NEXT_WAIT_UNION_FIXIDX,
    NODEENT_SYNTAX_FIXIDX,
    OPENBSD_NULL_DEFINITION_FIXIDX,
    OBSTACK_LVALUE_CAST_FIXIDX,
    OPENBSD_VA_START_FIXIDX,
    OSF_NAMESPACE_A_FIXIDX,
    OSF_NAMESPACE_C_FIXIDX,
    PTHREAD_INCOMPLETE_STRUCT_ARGUMENT_FIXIDX,
    READ_RET_TYPE_FIXIDX,
    RPC_XDR_LVALUE_CAST_A_FIXIDX,
    RPC_XDR_LVALUE_CAST_B_FIXIDX,
    RS6000_DOUBLE_FIXIDX,
    RS6000_FCHMOD_FIXIDX,
    RS6000_PARAM_FIXIDX,
    SOLARIS___RESTRICT_FIXIDX,
    SOLARIS_COMPLEX_FIXIDX,
    SOLARIS_COMPLEX_CXX_FIXIDX,
    SOLARIS_CXX_LINKAGE_FIXIDX,
    SOLARIS_GETC_STRICT_STDC_FIXIDX,
    SOLARIS_INT_CONST_FIXIDX,
    SOLARIS_INT_LIMITS_1_FIXIDX,
    SOLARIS_INT_LIMITS_2_FIXIDX,
    SOLARIS_INT_LIMITS_3_FIXIDX,
    SOLARIS_MATH_1_FIXIDX,
    SOLARIS_MATH_10_FIXIDX,
    SOLARIS_MATH_2_FIXIDX,
    SOLARIS_MATH_3_FIXIDX,
    SOLARIS_MATH_4_FIXIDX,
    SOLARIS_MATH_8_FIXIDX,
    SOLARIS_MATH_9_FIXIDX,
    SOLARIS_MATH_11_FIXIDX,
    SOLARIS_ONCE_INIT_1_FIXIDX,
    SOLARIS_POSIX_SPAWN_RESTRICT_FIXIDX,
    SOLARIS_POW_INT_OVERLOAD_FIXIDX,
    SOLARIS_RWLOCK_INIT_1_FIXIDX,
    SOLARIS_STD___FILBUF_FIXIDX,
    SOLARIS_STDIO_TAG_FIXIDX,
    STATSSWTCH_FIXIDX,
    STDIO_STDARG_H_FIXIDX,
    STDIO_VA_LIST_FIXIDX,
    STDIO_VA_LIST_CLIENTS_FIXIDX,
    STRICT_ANSI_NOT_FIXIDX,
    STRICT_ANSI_NOT_CTD_FIXIDX,
    STRICT_ANSI_ONLY_FIXIDX,
    STRUCT_FILE_FIXIDX,
    STRUCT_SOCKADDR_FIXIDX,
    SUN_AUTH_PROTO_FIXIDX,
    SUN_BOGUS_IFDEF_FIXIDX,
    SUN_CATMACRO_FIXIDX,
    SUN_MALLOC_FIXIDX,
    SUN_RUSERS_SEMI_FIXIDX,
    SUN_SIGNAL_FIXIDX,
    SUNOS_STRLEN_FIXIDX,
    SUSE_LINUX_VT_CXX_FIXIDX,
    SVR4_DISABLE_OPT_FIXIDX,
    SVR4_GETCWD_FIXIDX,
    SVR4_PROFIL_FIXIDX,
    SVR4_SIGHANDLER_TYPE_FIXIDX,
    SVR4_UNDECLARED_GETRNGE_FIXIDX,
    SYSV68_STRING_FIXIDX,
    SYSZ_STDLIB_FOR_SUN_FIXIDX,
    THREAD_KEYWORD_FIXIDX,
    TINFO_CPLUSPLUS_FIXIDX,
    ULTRIX_CONST_FIXIDX,
    ULTRIX_CONST2_FIXIDX,
    VA_I960_MACRO_FIXIDX,
    VMS_ADD_MISSING_BRACES_FIXIDX,
    VMS_DECC_BUILTIN_FIXIDX,
    VMS_DEFINE_CAN_USE_EXTERN_PREFIX_FIXIDX,
    VMS_DISABLE_DECC_STRING_BUILTINS_FIXIDX,
    VMS_DO_NOT_REDECLARE_HOSTALIAS_FIXIDX,
    VMS_FORWARD_DECLARE_STRUCT_FIXIDX,
    VMS_NO_64BIT_GETOPT_FIXIDX,
    VMS_USE_FAST_SETJMP_FIXIDX,
    VMS_USE_PRAGMA_EXTERN_MODEL_FIXIDX,
    VMS_USE_QUOTED_INCLUDE_FIXIDX,
    VOID_NULL_FIXIDX,
    VXWORKS_GCC_PROBLEM_FIXIDX,
    VXWORKS_IOCTL_MACRO_FIXIDX,
    VXWORKS_MKDIR_MACRO_FIXIDX,
    VXWORKS_NEEDS_VXTYPES_FIXIDX,
    VXWORKS_NEEDS_VXWORKS_FIXIDX,
    VXWORKS_REGS_FIXIDX,
    VXWORKS_TIME_FIXIDX,
    VXWORKS_WRITE_CONST_FIXIDX,
    X11_CLASS_FIXIDX,
    X11_CLASS_USAGE_FIXIDX,
    X11_NEW_FIXIDX,
    X11_SPRINTF_FIXIDX
} t_fixinc_idx;

tFixDesc fixDescList[ FIX_COUNT ] = {
  {  zAab_Aix_StdioName,    zAab_Aix_StdioList,
     apzAab_Aix_StdioMachs,
     AAB_AIX_STDIO_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAab_Aix_StdioTests,   apzAab_Aix_StdioPatch, 0 },

  {  zAab_Aix_FcntlName,    zAab_Aix_FcntlList,
     apzAab_Aix_FcntlMachs,
     AAB_AIX_FCNTL_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAab_Aix_FcntlTests,   apzAab_Aix_FcntlPatch, 0 },

  {  zAab_Darwin7_9_Long_Double_FuncsName,    zAab_Darwin7_9_Long_Double_FuncsList,
     apzAab_Darwin7_9_Long_Double_FuncsMachs,
     AAB_DARWIN7_9_LONG_DOUBLE_FUNCS_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
     aAab_Darwin7_9_Long_Double_FuncsTests,   apzAab_Darwin7_9_Long_Double_FuncsPatch, 0 },

  {  zAab_Fd_Zero_Asm_Posix_Types_HName,    zAab_Fd_Zero_Asm_Posix_Types_HList,
     apzAab_Fd_Zero_Asm_Posix_Types_HMachs,
     AAB_FD_ZERO_ASM_POSIX_TYPES_H_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
     aAab_Fd_Zero_Asm_Posix_Types_HTests,   apzAab_Fd_Zero_Asm_Posix_Types_HPatch, 0 },

  {  zAab_Fd_Zero_Gnu_Types_HName,    zAab_Fd_Zero_Gnu_Types_HList,
     apzAab_Fd_Zero_Gnu_Types_HMachs,
     AAB_FD_ZERO_GNU_TYPES_H_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
     aAab_Fd_Zero_Gnu_Types_HTests,   apzAab_Fd_Zero_Gnu_Types_HPatch, 0 },

  {  zAab_Fd_Zero_Selectbits_HName,    zAab_Fd_Zero_Selectbits_HList,
     apzAab_Fd_Zero_Selectbits_HMachs,
     AAB_FD_ZERO_SELECTBITS_H_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
     aAab_Fd_Zero_Selectbits_HTests,   apzAab_Fd_Zero_Selectbits_HPatch, 0 },

  {  zAab_Solaris_Sys_Varargs_HName,    zAab_Solaris_Sys_Varargs_HList,
     apzAab_Solaris_Sys_Varargs_HMachs,
     AAB_SOLARIS_SYS_VARARGS_H_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
     aAab_Solaris_Sys_Varargs_HTests,   apzAab_Solaris_Sys_Varargs_HPatch, 0 },

  {  zAab_Sun_MemcpyName,    zAab_Sun_MemcpyList,
     apzAab_Sun_MemcpyMachs,
     AAB_SUN_MEMCPY_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
     aAab_Sun_MemcpyTests,   apzAab_Sun_MemcpyPatch, 0 },

  {  zAab_Vxworks_AssertName,    zAab_Vxworks_AssertList,
     apzAab_Vxworks_AssertMachs,
     AAB_VXWORKS_ASSERT_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
     aAab_Vxworks_AssertTests,   apzAab_Vxworks_AssertPatch, 0 },

  {  zAab_Vxworks_Regs_VxtypesName,    zAab_Vxworks_Regs_VxtypesList,
     apzAab_Vxworks_Regs_VxtypesMachs,
     AAB_VXWORKS_REGS_VXTYPES_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
     aAab_Vxworks_Regs_VxtypesTests,   apzAab_Vxworks_Regs_VxtypesPatch, 0 },

  {  zAab_Vxworks_StdintName,    zAab_Vxworks_StdintList,
     apzAab_Vxworks_StdintMachs,
     AAB_VXWORKS_STDINT_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
     aAab_Vxworks_StdintTests,   apzAab_Vxworks_StdintPatch, 0 },

  {  zAab_Vxworks_UnistdName,    zAab_Vxworks_UnistdList,
     apzAab_Vxworks_UnistdMachs,
     AAB_VXWORKS_UNISTD_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
     aAab_Vxworks_UnistdTests,   apzAab_Vxworks_UnistdPatch, 0 },

  {  zAix_AssertName,    zAix_AssertList,
     apzAix_AssertMachs,
     AIX_ASSERT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_AssertTests,   apzAix_AssertPatch, 0 },

  {  zAix_ComplexName,    zAix_ComplexList,
     apzAix_ComplexMachs,
     AIX_COMPLEX_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_ComplexTests,   apzAix_ComplexPatch, 0 },

  {  zAix_ExterncName,    zAix_ExterncList,
     apzAix_ExterncMachs,
     AIX_EXTERNC_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_ExterncTests,   apzAix_ExterncPatch, 0 },

  {  zAix_Externcpp1Name,    zAix_Externcpp1List,
     apzAix_Externcpp1Machs,
     AIX_EXTERNCPP1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_Externcpp1Tests,   apzAix_Externcpp1Patch, 0 },

  {  zAix_Externcpp2Name,    zAix_Externcpp2List,
     apzAix_Externcpp2Machs,
     AIX_EXTERNCPP2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_Externcpp2Tests,   apzAix_Externcpp2Patch, 0 },

  {  zAix_MallocName,    zAix_MallocList,
     apzAix_MallocMachs,
     AIX_MALLOC_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_MallocTests,   apzAix_MallocPatch, 0 },

  {  zAix_Net_If_ArpName,    zAix_Net_If_ArpList,
     apzAix_Net_If_ArpMachs,
     AIX_NET_IF_ARP_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_Net_If_ArpTests,   apzAix_Net_If_ArpPatch, 0 },

  {  zAix_NullName,    zAix_NullList,
     apzAix_NullMachs,
     AIX_NULL_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_NullTests,   apzAix_NullPatch, 0 },

  {  zAix_Once_Init_1Name,    zAix_Once_Init_1List,
     apzAix_Once_Init_1Machs,
     AIX_ONCE_INIT_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_Once_Init_1Tests,   apzAix_Once_Init_1Patch, 0 },

  {  zAix_Once_Init_2Name,    zAix_Once_Init_2List,
     apzAix_Once_Init_2Machs,
     AIX_ONCE_INIT_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_Once_Init_2Tests,   apzAix_Once_Init_2Patch, 0 },

  {  zAix_Mutex_Initializer_1Name,    zAix_Mutex_Initializer_1List,
     apzAix_Mutex_Initializer_1Machs,
     AIX_MUTEX_INITIALIZER_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_Mutex_Initializer_1Tests,   apzAix_Mutex_Initializer_1Patch, 0 },

  {  zAix_Cond_Initializer_1Name,    zAix_Cond_Initializer_1List,
     apzAix_Cond_Initializer_1Machs,
     AIX_COND_INITIALIZER_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_Cond_Initializer_1Tests,   apzAix_Cond_Initializer_1Patch, 0 },

  {  zAix_Rwlock_Initializer_1Name,    zAix_Rwlock_Initializer_1List,
     apzAix_Rwlock_Initializer_1Machs,
     AIX_RWLOCK_INITIALIZER_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_Rwlock_Initializer_1Tests,   apzAix_Rwlock_Initializer_1Patch, 0 },

  {  zAix_PthreadName,    zAix_PthreadList,
     apzAix_PthreadMachs,
     AIX_PTHREAD_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_PthreadTests,   apzAix_PthreadPatch, 0 },

  {  zAix_Stdint_1Name,    zAix_Stdint_1List,
     apzAix_Stdint_1Machs,
     AIX_STDINT_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_Stdint_1Tests,   apzAix_Stdint_1Patch, 0 },

  {  zAix_Stdint_2Name,    zAix_Stdint_2List,
     apzAix_Stdint_2Machs,
     AIX_STDINT_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_Stdint_2Tests,   apzAix_Stdint_2Patch, 0 },

  {  zAix_Stdint_3Name,    zAix_Stdint_3List,
     apzAix_Stdint_3Machs,
     AIX_STDINT_3_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_Stdint_3Tests,   apzAix_Stdint_3Patch, 0 },

  {  zAix_Stdint_4Name,    zAix_Stdint_4List,
     apzAix_Stdint_4Machs,
     AIX_STDINT_4_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_Stdint_4Tests,   apzAix_Stdint_4Patch, 0 },

  {  zAix_Stdint_5Name,    zAix_Stdint_5List,
     apzAix_Stdint_5Machs,
     AIX_STDINT_5_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_Stdint_5Tests,   apzAix_Stdint_5Patch, 0 },

  {  zAix_Stdio_InlineName,    zAix_Stdio_InlineList,
     apzAix_Stdio_InlineMachs,
     AIX_STDIO_INLINE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_Stdio_InlineTests,   apzAix_Stdio_InlinePatch, 0 },

  {  zAix_Strtof_ConstName,    zAix_Strtof_ConstList,
     apzAix_Strtof_ConstMachs,
     AIX_STRTOF_CONST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_Strtof_ConstTests,   apzAix_Strtof_ConstPatch, 0 },

  {  zAix_SysmachineName,    zAix_SysmachineList,
     apzAix_SysmachineMachs,
     AIX_SYSMACHINE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_SysmachineTests,   apzAix_SysmachinePatch, 0 },

  {  zAix_Syswait_2Name,    zAix_Syswait_2List,
     apzAix_Syswait_2Machs,
     AIX_SYSWAIT_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_Syswait_2Tests,   apzAix_Syswait_2Patch, 0 },

  {  zAix_VolatileName,    zAix_VolatileList,
     apzAix_VolatileMachs,
     AIX_VOLATILE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_VolatileTests,   apzAix_VolatilePatch, 0 },

  {  zAlpha___AssertName,    zAlpha___AssertList,
     apzAlpha___AssertMachs,
     ALPHA___ASSERT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAlpha___AssertTests,   apzAlpha___AssertPatch, 0 },

  {  zAlpha_AssertName,    zAlpha_AssertList,
     apzAlpha_AssertMachs,
     ALPHA_ASSERT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAlpha_AssertTests,   apzAlpha_AssertPatch, 0 },

  {  zAlpha_GetoptName,    zAlpha_GetoptList,
     apzAlpha_GetoptMachs,
     ALPHA_GETOPT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAlpha_GetoptTests,   apzAlpha_GetoptPatch, 0 },

  {  zAlpha_If_SemicolonName,    zAlpha_If_SemicolonList,
     apzAlpha_If_SemicolonMachs,
     ALPHA_IF_SEMICOLON_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAlpha_If_SemicolonTests,   apzAlpha_If_SemicolonPatch, 0 },

  {  zAlpha_ParensName,    zAlpha_ParensList,
     apzAlpha_ParensMachs,
     ALPHA_PARENS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAlpha_ParensTests,   apzAlpha_ParensPatch, 0 },

  {  zAlpha_SbrkName,    zAlpha_SbrkList,
     apzAlpha_SbrkMachs,
     ALPHA_SBRK_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAlpha_SbrkTests,   apzAlpha_SbrkPatch, 0 },

  {  zAvoid_Bool_DefineName,    zAvoid_Bool_DefineList,
     apzAvoid_Bool_DefineMachs,
     AVOID_BOOL_DEFINE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAvoid_Bool_DefineTests,   apzAvoid_Bool_DefinePatch, 0 },

  {  zAvoid_Bool_TypeName,    zAvoid_Bool_TypeList,
     apzAvoid_Bool_TypeMachs,
     AVOID_BOOL_TYPE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAvoid_Bool_TypeTests,   apzAvoid_Bool_TypePatch, 0 },

  {  zAvoid_Wchar_T_TypeName,    zAvoid_Wchar_T_TypeList,
     apzAvoid_Wchar_T_TypeMachs,
     AVOID_WCHAR_T_TYPE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAvoid_Wchar_T_TypeTests,   apzAvoid_Wchar_T_TypePatch, 0 },

  {  zBad_Struct_TermName,    zBad_Struct_TermList,
     apzBad_Struct_TermMachs,
     BAD_STRUCT_TERM_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aBad_Struct_TermTests,   apzBad_Struct_TermPatch, 0 },

  {  zBadquoteName,    zBadquoteList,
     apzBadquoteMachs,
     BADQUOTE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aBadquoteTests,   apzBadquotePatch, 0 },

  {  zBroken_Assert_StdioName,    zBroken_Assert_StdioList,
     apzBroken_Assert_StdioMachs,
     BROKEN_ASSERT_STDIO_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aBroken_Assert_StdioTests,   apzBroken_Assert_StdioPatch, 0 },

  {  zBroken_Assert_StdlibName,    zBroken_Assert_StdlibList,
     apzBroken_Assert_StdlibMachs,
     BROKEN_ASSERT_STDLIB_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aBroken_Assert_StdlibTests,   apzBroken_Assert_StdlibPatch, 0 },

  {  zBroken_CabsName,    zBroken_CabsList,
     apzBroken_CabsMachs,
     BROKEN_CABS_TEST_CT, FD_MACH_ONLY,
     aBroken_CabsTests,   apzBroken_CabsPatch, 0 },

  {  zBroken_NanName,    zBroken_NanList,
     apzBroken_NanMachs,
     BROKEN_NAN_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aBroken_NanTests,   apzBroken_NanPatch, 0 },

  {  zBsd_Stdio_Attrs_ConflictName,    zBsd_Stdio_Attrs_ConflictList,
     apzBsd_Stdio_Attrs_ConflictMachs,
     BSD_STDIO_ATTRS_CONFLICT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aBsd_Stdio_Attrs_ConflictTests,   apzBsd_Stdio_Attrs_ConflictPatch, 0 },

  {  zCtrl_Quotes_DefName,    zCtrl_Quotes_DefList,
     apzCtrl_Quotes_DefMachs,
     CTRL_QUOTES_DEF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aCtrl_Quotes_DefTests,   apzCtrl_Quotes_DefPatch, 0 },

  {  zCtrl_Quotes_UseName,    zCtrl_Quotes_UseList,
     apzCtrl_Quotes_UseMachs,
     CTRL_QUOTES_USE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aCtrl_Quotes_UseTests,   apzCtrl_Quotes_UsePatch, 0 },

  {  zCxx_UnreadyName,    zCxx_UnreadyList,
     apzCxx_UnreadyMachs,
     CXX_UNREADY_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aCxx_UnreadyTests,   apzCxx_UnreadyPatch, 0 },

  {  zDarwin_9_Long_Double_Funcs_2Name,    zDarwin_9_Long_Double_Funcs_2List,
     apzDarwin_9_Long_Double_Funcs_2Machs,
     DARWIN_9_LONG_DOUBLE_FUNCS_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aDarwin_9_Long_Double_Funcs_2Tests,   apzDarwin_9_Long_Double_Funcs_2Patch, 0 },

  {  zDarwin_ExterncName,    zDarwin_ExterncList,
     apzDarwin_ExterncMachs,
     DARWIN_EXTERNC_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aDarwin_ExterncTests,   apzDarwin_ExterncPatch, 0 },

  {  zDarwin_Gcc4_BreakageName,    zDarwin_Gcc4_BreakageList,
     apzDarwin_Gcc4_BreakageMachs,
     DARWIN_GCC4_BREAKAGE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aDarwin_Gcc4_BreakageTests,   apzDarwin_Gcc4_BreakagePatch, 0 },

  {  zDarwin_Private_ExternName,    zDarwin_Private_ExternList,
     apzDarwin_Private_ExternMachs,
     DARWIN_PRIVATE_EXTERN_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aDarwin_Private_ExternTests,   apzDarwin_Private_ExternPatch, 0 },

  {  zDarwin_Stdint_1Name,    zDarwin_Stdint_1List,
     apzDarwin_Stdint_1Machs,
     DARWIN_STDINT_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aDarwin_Stdint_1Tests,   apzDarwin_Stdint_1Patch, 0 },

  {  zDarwin_Stdint_2Name,    zDarwin_Stdint_2List,
     apzDarwin_Stdint_2Machs,
     DARWIN_STDINT_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aDarwin_Stdint_2Tests,   apzDarwin_Stdint_2Patch, 0 },

  {  zDarwin_Stdint_3Name,    zDarwin_Stdint_3List,
     apzDarwin_Stdint_3Machs,
     DARWIN_STDINT_3_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aDarwin_Stdint_3Tests,   apzDarwin_Stdint_3Patch, 0 },

  {  zDarwin_Stdint_4Name,    zDarwin_Stdint_4List,
     apzDarwin_Stdint_4Machs,
     DARWIN_STDINT_4_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aDarwin_Stdint_4Tests,   apzDarwin_Stdint_4Patch, 0 },

  {  zDarwin_Stdint_5Name,    zDarwin_Stdint_5List,
     apzDarwin_Stdint_5Machs,
     DARWIN_STDINT_5_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aDarwin_Stdint_5Tests,   apzDarwin_Stdint_5Patch, 0 },

  {  zDarwin_Stdint_6Name,    zDarwin_Stdint_6List,
     apzDarwin_Stdint_6Machs,
     DARWIN_STDINT_6_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aDarwin_Stdint_6Tests,   apzDarwin_Stdint_6Patch, 0 },

  {  zDarwin_Stdint_7Name,    zDarwin_Stdint_7List,
     apzDarwin_Stdint_7Machs,
     DARWIN_STDINT_7_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aDarwin_Stdint_7Tests,   apzDarwin_Stdint_7Patch, 0 },

  {  zDec_Intern_AsmName,    zDec_Intern_AsmList,
     apzDec_Intern_AsmMachs,
     DEC_INTERN_ASM_TEST_CT, FD_MACH_ONLY,
     aDec_Intern_AsmTests,   apzDec_Intern_AsmPatch, 0 },

  {  zDjgpp_Wchar_HName,    zDjgpp_Wchar_HList,
     apzDjgpp_Wchar_HMachs,
     DJGPP_WCHAR_H_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aDjgpp_Wchar_HTests,   apzDjgpp_Wchar_HPatch, 0 },

  {  zEcd_CursorName,    zEcd_CursorList,
     apzEcd_CursorMachs,
     ECD_CURSOR_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aEcd_CursorTests,   apzEcd_CursorPatch, 0 },

  {  zFeraiseexcept_Nosse_DivbyzeroName,    zFeraiseexcept_Nosse_DivbyzeroList,
     apzFeraiseexcept_Nosse_DivbyzeroMachs,
     FERAISEEXCEPT_NOSSE_DIVBYZERO_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aFeraiseexcept_Nosse_DivbyzeroTests,   apzFeraiseexcept_Nosse_DivbyzeroPatch, 0 },

  {  zFeraiseexcept_Nosse_InvalidName,    zFeraiseexcept_Nosse_InvalidList,
     apzFeraiseexcept_Nosse_InvalidMachs,
     FERAISEEXCEPT_NOSSE_INVALID_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aFeraiseexcept_Nosse_InvalidTests,   apzFeraiseexcept_Nosse_InvalidPatch, 0 },

  {  zFreebsd_Gcc3_BreakageName,    zFreebsd_Gcc3_BreakageList,
     apzFreebsd_Gcc3_BreakageMachs,
     FREEBSD_GCC3_BREAKAGE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aFreebsd_Gcc3_BreakageTests,   apzFreebsd_Gcc3_BreakagePatch, 0 },

  {  zFreebsd_Gcc4_BreakageName,    zFreebsd_Gcc4_BreakageList,
     apzFreebsd_Gcc4_BreakageMachs,
     FREEBSD_GCC4_BREAKAGE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aFreebsd_Gcc4_BreakageTests,   apzFreebsd_Gcc4_BreakagePatch, 0 },

  {  zGlibc_C99_Inline_1Name,    zGlibc_C99_Inline_1List,
     apzGlibc_C99_Inline_1Machs,
     GLIBC_C99_INLINE_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aGlibc_C99_Inline_1Tests,   apzGlibc_C99_Inline_1Patch, 0 },

  {  zGlibc_C99_Inline_1aName,    zGlibc_C99_Inline_1aList,
     apzGlibc_C99_Inline_1aMachs,
     GLIBC_C99_INLINE_1A_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aGlibc_C99_Inline_1aTests,   apzGlibc_C99_Inline_1aPatch, 0 },

  {  zGlibc_C99_Inline_2Name,    zGlibc_C99_Inline_2List,
     apzGlibc_C99_Inline_2Machs,
     GLIBC_C99_INLINE_2_TEST_CT, FD_MACH_ONLY,
     aGlibc_C99_Inline_2Tests,   apzGlibc_C99_Inline_2Patch, 0 },

  {  zGlibc_C99_Inline_3Name,    zGlibc_C99_Inline_3List,
     apzGlibc_C99_Inline_3Machs,
     GLIBC_C99_INLINE_3_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aGlibc_C99_Inline_3Tests,   apzGlibc_C99_Inline_3Patch, 0 },

  {  zGlibc_C99_Inline_4Name,    zGlibc_C99_Inline_4List,
     apzGlibc_C99_Inline_4Machs,
     GLIBC_C99_INLINE_4_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aGlibc_C99_Inline_4Tests,   apzGlibc_C99_Inline_4Patch, 0 },

  {  zGlibc_Mutex_InitName,    zGlibc_Mutex_InitList,
     apzGlibc_Mutex_InitMachs,
     GLIBC_MUTEX_INIT_TEST_CT, FD_MACH_ONLY,
     aGlibc_Mutex_InitTests,   apzGlibc_Mutex_InitPatch, 0 },

  {  zGlibc_StdintName,    zGlibc_StdintList,
     apzGlibc_StdintMachs,
     GLIBC_STDINT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aGlibc_StdintTests,   apzGlibc_StdintPatch, 0 },

  {  zGlibc_StrncpyName,    zGlibc_StrncpyList,
     apzGlibc_StrncpyMachs,
     GLIBC_STRNCPY_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aGlibc_StrncpyTests,   apzGlibc_StrncpyPatch, 0 },

  {  zGlibc_TgmathName,    zGlibc_TgmathList,
     apzGlibc_TgmathMachs,
     GLIBC_TGMATH_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aGlibc_TgmathTests,   apzGlibc_TgmathPatch, 0 },

  {  zGnu_TypesName,    zGnu_TypesList,
     apzGnu_TypesMachs,
     GNU_TYPES_TEST_CT, FD_MACH_IFNOT | FD_SUBROUTINE,
     aGnu_TypesTests,   apzGnu_TypesPatch, 0 },

  {  zHp_InlineName,    zHp_InlineList,
     apzHp_InlineMachs,
     HP_INLINE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHp_InlineTests,   apzHp_InlinePatch, 0 },

  {  zHp_SysfileName,    zHp_SysfileList,
     apzHp_SysfileMachs,
     HP_SYSFILE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHp_SysfileTests,   apzHp_SysfilePatch, 0 },

  {  zHppa_Hpux_Fp_MacrosName,    zHppa_Hpux_Fp_MacrosList,
     apzHppa_Hpux_Fp_MacrosMachs,
     HPPA_HPUX_FP_MACROS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHppa_Hpux_Fp_MacrosTests,   apzHppa_Hpux_Fp_MacrosPatch, 0 },

  {  zHpux10_Cpp_Pow_InlineName,    zHpux10_Cpp_Pow_InlineList,
     apzHpux10_Cpp_Pow_InlineMachs,
     HPUX10_CPP_POW_INLINE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux10_Cpp_Pow_InlineTests,   apzHpux10_Cpp_Pow_InlinePatch, 0 },

  {  zHpux11_Cpp_Pow_InlineName,    zHpux11_Cpp_Pow_InlineList,
     apzHpux11_Cpp_Pow_InlineMachs,
     HPUX11_CPP_POW_INLINE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux11_Cpp_Pow_InlineTests,   apzHpux11_Cpp_Pow_InlinePatch, 0 },

  {  zHpux10_Ctype_Declarations1Name,    zHpux10_Ctype_Declarations1List,
     apzHpux10_Ctype_Declarations1Machs,
     HPUX10_CTYPE_DECLARATIONS1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux10_Ctype_Declarations1Tests,   apzHpux10_Ctype_Declarations1Patch, 0 },

  {  zHpux10_Ctype_Declarations2Name,    zHpux10_Ctype_Declarations2List,
     apzHpux10_Ctype_Declarations2Machs,
     HPUX10_CTYPE_DECLARATIONS2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux10_Ctype_Declarations2Tests,   apzHpux10_Ctype_Declarations2Patch, 0 },

  {  zHpux10_Stdio_DeclarationsName,    zHpux10_Stdio_DeclarationsList,
     apzHpux10_Stdio_DeclarationsMachs,
     HPUX10_STDIO_DECLARATIONS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux10_Stdio_DeclarationsTests,   apzHpux10_Stdio_DeclarationsPatch, 0 },

  {  zHpux11_AbsName,    zHpux11_AbsList,
     apzHpux11_AbsMachs,
     HPUX11_ABS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux11_AbsTests,   apzHpux11_AbsPatch, 0 },

  {  zHpux11_Lwp_Rwlock_ValidName,    zHpux11_Lwp_Rwlock_ValidList,
     apzHpux11_Lwp_Rwlock_ValidMachs,
     HPUX11_LWP_RWLOCK_VALID_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux11_Lwp_Rwlock_ValidTests,   apzHpux11_Lwp_Rwlock_ValidPatch, 0 },

  {  zHpux11_Extern_SendfileName,    zHpux11_Extern_SendfileList,
     apzHpux11_Extern_SendfileMachs,
     HPUX11_EXTERN_SENDFILE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux11_Extern_SendfileTests,   apzHpux11_Extern_SendfilePatch, 0 },

  {  zHpux11_Extern_SendpathName,    zHpux11_Extern_SendpathList,
     apzHpux11_Extern_SendpathMachs,
     HPUX11_EXTERN_SENDPATH_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux11_Extern_SendpathTests,   apzHpux11_Extern_SendpathPatch, 0 },

  {  zHpux11_FabsfName,    zHpux11_FabsfList,
     apzHpux11_FabsfMachs,
     HPUX11_FABSF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux11_FabsfTests,   apzHpux11_FabsfPatch, 0 },

  {  zHpux11_Pthread_ConstName,    zHpux11_Pthread_ConstList,
     apzHpux11_Pthread_ConstMachs,
     HPUX11_PTHREAD_CONST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux11_Pthread_ConstTests,   apzHpux11_Pthread_ConstPatch, 0 },

  {  zHpux11_Size_TName,    zHpux11_Size_TList,
     apzHpux11_Size_TMachs,
     HPUX11_SIZE_T_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux11_Size_TTests,   apzHpux11_Size_TPatch, 0 },

  {  zHpux11_SnprintfName,    zHpux11_SnprintfList,
     apzHpux11_SnprintfMachs,
     HPUX11_SNPRINTF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux11_SnprintfTests,   apzHpux11_SnprintfPatch, 0 },

  {  zHpux11_VsnprintfName,    zHpux11_VsnprintfList,
     apzHpux11_VsnprintfMachs,
     HPUX11_VSNPRINTF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux11_VsnprintfTests,   apzHpux11_VsnprintfPatch, 0 },

  {  zHpux8_Bogus_InlinesName,    zHpux8_Bogus_InlinesList,
     apzHpux8_Bogus_InlinesMachs,
     HPUX8_BOGUS_INLINES_TEST_CT, FD_MACH_ONLY,
     aHpux8_Bogus_InlinesTests,   apzHpux8_Bogus_InlinesPatch, 0 },

  {  zHpux_C99_IntptrName,    zHpux_C99_IntptrList,
     apzHpux_C99_IntptrMachs,
     HPUX_C99_INTPTR_TEST_CT, FD_MACH_ONLY,
     aHpux_C99_IntptrTests,   apzHpux_C99_IntptrPatch, 0 },

  {  zHpux_C99_InttypesName,    zHpux_C99_InttypesList,
     apzHpux_C99_InttypesMachs,
     HPUX_C99_INTTYPES_TEST_CT, FD_MACH_ONLY,
     aHpux_C99_InttypesTests,   apzHpux_C99_InttypesPatch, 0 },

  {  zHpux_C99_Inttypes2Name,    zHpux_C99_Inttypes2List,
     apzHpux_C99_Inttypes2Machs,
     HPUX_C99_INTTYPES2_TEST_CT, FD_MACH_ONLY,
     aHpux_C99_Inttypes2Tests,   apzHpux_C99_Inttypes2Patch, 0 },

  {  zHpux_Ctype_MacrosName,    zHpux_Ctype_MacrosList,
     apzHpux_Ctype_MacrosMachs,
     HPUX_CTYPE_MACROS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux_Ctype_MacrosTests,   apzHpux_Ctype_MacrosPatch, 0 },

  {  zHpux_Extern_ErrnoName,    zHpux_Extern_ErrnoList,
     apzHpux_Extern_ErrnoMachs,
     HPUX_EXTERN_ERRNO_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux_Extern_ErrnoTests,   apzHpux_Extern_ErrnoPatch, 0 },

  {  zHpux_HtonlName,    zHpux_HtonlList,
     apzHpux_HtonlMachs,
     HPUX_HTONL_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux_HtonlTests,   apzHpux_HtonlPatch, 0 },

  {  zHpux_Imaginary_IName,    zHpux_Imaginary_IList,
     apzHpux_Imaginary_IMachs,
     HPUX_IMAGINARY_I_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux_Imaginary_ITests,   apzHpux_Imaginary_IPatch, 0 },

  {  zHpux_Inttype_Int8_TName,    zHpux_Inttype_Int8_TList,
     apzHpux_Inttype_Int8_TMachs,
     HPUX_INTTYPE_INT8_T_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux_Inttype_Int8_TTests,   apzHpux_Inttype_Int8_TPatch, 0 },

  {  zHpux_Long_DoubleName,    zHpux_Long_DoubleList,
     apzHpux_Long_DoubleMachs,
     HPUX_LONG_DOUBLE_TEST_CT, FD_MACH_ONLY,
     aHpux_Long_DoubleTests,   apzHpux_Long_DoublePatch, 0 },

  {  zHpux_Long_Double_2Name,    zHpux_Long_Double_2List,
     apzHpux_Long_Double_2Machs,
     HPUX_LONG_DOUBLE_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux_Long_Double_2Tests,   apzHpux_Long_Double_2Patch, 0 },

  {  zHpux_Pthread_InitializersName,    zHpux_Pthread_InitializersList,
     apzHpux_Pthread_InitializersMachs,
     HPUX_PTHREAD_INITIALIZERS_TEST_CT, FD_MACH_ONLY,
     aHpux_Pthread_InitializersTests,   apzHpux_Pthread_InitializersPatch, 0 },

  {  zHpux_Spu_InfoName,    zHpux_Spu_InfoList,
     apzHpux_Spu_InfoMachs,
     HPUX_SPU_INFO_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux_Spu_InfoTests,   apzHpux_Spu_InfoPatch, 0 },

  {  zHpux_Stdint_Least_FastName,    zHpux_Stdint_Least_FastList,
     apzHpux_Stdint_Least_FastMachs,
     HPUX_STDINT_LEAST_FAST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux_Stdint_Least_FastTests,   apzHpux_Stdint_Least_FastPatch, 0 },

  {  zHpux_SystimeName,    zHpux_SystimeList,
     apzHpux_SystimeMachs,
     HPUX_SYSTIME_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux_SystimeTests,   apzHpux_SystimePatch, 0 },

  {  zHuge_Val_HexName,    zHuge_Val_HexList,
     apzHuge_Val_HexMachs,
     HUGE_VAL_HEX_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHuge_Val_HexTests,   apzHuge_Val_HexPatch, 0 },

  {  zHuge_Valf_HexName,    zHuge_Valf_HexList,
     apzHuge_Valf_HexMachs,
     HUGE_VALF_HEX_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHuge_Valf_HexTests,   apzHuge_Valf_HexPatch, 0 },

  {  zHuge_Vall_HexName,    zHuge_Vall_HexList,
     apzHuge_Vall_HexMachs,
     HUGE_VALL_HEX_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHuge_Vall_HexTests,   apzHuge_Vall_HexPatch, 0 },

  {  zInt_Abort_Free_And_ExitName,    zInt_Abort_Free_And_ExitList,
     apzInt_Abort_Free_And_ExitMachs,
     INT_ABORT_FREE_AND_EXIT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aInt_Abort_Free_And_ExitTests,   apzInt_Abort_Free_And_ExitPatch, 0 },

  {  zIo_Quotes_DefName,    zIo_Quotes_DefList,
     apzIo_Quotes_DefMachs,
     IO_QUOTES_DEF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aIo_Quotes_DefTests,   apzIo_Quotes_DefPatch, 0 },

  {  zIo_Quotes_UseName,    zIo_Quotes_UseList,
     apzIo_Quotes_UseMachs,
     IO_QUOTES_USE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aIo_Quotes_UseTests,   apzIo_Quotes_UsePatch, 0 },

  {  zIp_Missing_SemiName,    zIp_Missing_SemiList,
     apzIp_Missing_SemiMachs,
     IP_MISSING_SEMI_TEST_CT, FD_MACH_ONLY,
     aIp_Missing_SemiTests,   apzIp_Missing_SemiPatch, 0 },

  {  zIrix_Limits_ConstName,    zIrix_Limits_ConstList,
     apzIrix_Limits_ConstMachs,
     IRIX_LIMITS_CONST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aIrix_Limits_ConstTests,   apzIrix_Limits_ConstPatch, 0 },

  {  zIrix_Stdio_Va_ListName,    zIrix_Stdio_Va_ListList,
     apzIrix_Stdio_Va_ListMachs,
     IRIX_STDIO_VA_LIST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aIrix_Stdio_Va_ListTests,   apzIrix_Stdio_Va_ListPatch, 0 },

  {  zKandr_ConcatName,    zKandr_ConcatList,
     apzKandr_ConcatMachs,
     KANDR_CONCAT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aKandr_ConcatTests,   apzKandr_ConcatPatch, 0 },

  {  zLinux_Ia64_UcontextName,    zLinux_Ia64_UcontextList,
     apzLinux_Ia64_UcontextMachs,
     LINUX_IA64_UCONTEXT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aLinux_Ia64_UcontextTests,   apzLinux_Ia64_UcontextPatch, 0 },

  {  zLynxos_No_Warning_In_Sys_Time_HName,    zLynxos_No_Warning_In_Sys_Time_HList,
     apzLynxos_No_Warning_In_Sys_Time_HMachs,
     LYNXOS_NO_WARNING_IN_SYS_TIME_H_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aLynxos_No_Warning_In_Sys_Time_HTests,   apzLynxos_No_Warning_In_Sys_Time_HPatch, 0 },

  {  zLynxos_Missing_PutenvName,    zLynxos_Missing_PutenvList,
     apzLynxos_Missing_PutenvMachs,
     LYNXOS_MISSING_PUTENV_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aLynxos_Missing_PutenvTests,   apzLynxos_Missing_PutenvPatch, 0 },

  {  zMachine_Ansi_H_Va_ListName,    zMachine_Ansi_H_Va_ListList,
     apzMachine_Ansi_H_Va_ListMachs,
     MACHINE_ANSI_H_VA_LIST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aMachine_Ansi_H_Va_ListTests,   apzMachine_Ansi_H_Va_ListPatch, 0 },

  {  zMachine_NameName,    zMachine_NameList,
     apzMachine_NameMachs,
     MACHINE_NAME_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aMachine_NameTests,   apzMachine_NamePatch, 0 },

  {  zMath_ExceptionName,    zMath_ExceptionList,
     apzMath_ExceptionMachs,
     MATH_EXCEPTION_TEST_CT, FD_MACH_IFNOT | FD_SUBROUTINE,
     aMath_ExceptionTests,   apzMath_ExceptionPatch, 0 },

  {  zMath_Huge_Val_From_Dbl_MaxName,    zMath_Huge_Val_From_Dbl_MaxList,
     apzMath_Huge_Val_From_Dbl_MaxMachs,
     MATH_HUGE_VAL_FROM_DBL_MAX_TEST_CT, FD_MACH_ONLY | FD_SHELL_SCRIPT,
     aMath_Huge_Val_From_Dbl_MaxTests,   apzMath_Huge_Val_From_Dbl_MaxPatch, 0 },

  {  zNested_Auth_DesName,    zNested_Auth_DesList,
     apzNested_Auth_DesMachs,
     NESTED_AUTH_DES_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aNested_Auth_DesTests,   apzNested_Auth_DesPatch, 0 },

  {  zNetbsd_C99_Inline_1Name,    zNetbsd_C99_Inline_1List,
     apzNetbsd_C99_Inline_1Machs,
     NETBSD_C99_INLINE_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aNetbsd_C99_Inline_1Tests,   apzNetbsd_C99_Inline_1Patch, 0 },

  {  zNetbsd_C99_Inline_2Name,    zNetbsd_C99_Inline_2List,
     apzNetbsd_C99_Inline_2Machs,
     NETBSD_C99_INLINE_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aNetbsd_C99_Inline_2Tests,   apzNetbsd_C99_Inline_2Patch, 0 },

  {  zNetbsd_Extra_SemicolonName,    zNetbsd_Extra_SemicolonList,
     apzNetbsd_Extra_SemicolonMachs,
     NETBSD_EXTRA_SEMICOLON_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aNetbsd_Extra_SemicolonTests,   apzNetbsd_Extra_SemicolonPatch, 0 },

  {  zNewlib_Stdint_1Name,    zNewlib_Stdint_1List,
     apzNewlib_Stdint_1Machs,
     NEWLIB_STDINT_1_TEST_CT, FD_MACH_ONLY,
     aNewlib_Stdint_1Tests,   apzNewlib_Stdint_1Patch, 0 },

  {  zNewlib_Stdint_2Name,    zNewlib_Stdint_2List,
     apzNewlib_Stdint_2Machs,
     NEWLIB_STDINT_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aNewlib_Stdint_2Tests,   apzNewlib_Stdint_2Patch, 0 },

  {  zNext_Math_PrefixName,    zNext_Math_PrefixList,
     apzNext_Math_PrefixMachs,
     NEXT_MATH_PREFIX_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aNext_Math_PrefixTests,   apzNext_Math_PrefixPatch, 0 },

  {  zNext_TemplateName,    zNext_TemplateList,
     apzNext_TemplateMachs,
     NEXT_TEMPLATE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aNext_TemplateTests,   apzNext_TemplatePatch, 0 },

  {  zNext_VolitileName,    zNext_VolitileList,
     apzNext_VolitileMachs,
     NEXT_VOLITILE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aNext_VolitileTests,   apzNext_VolitilePatch, 0 },

  {  zNext_Wait_UnionName,    zNext_Wait_UnionList,
     apzNext_Wait_UnionMachs,
     NEXT_WAIT_UNION_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aNext_Wait_UnionTests,   apzNext_Wait_UnionPatch, 0 },

  {  zNodeent_SyntaxName,    zNodeent_SyntaxList,
     apzNodeent_SyntaxMachs,
     NODEENT_SYNTAX_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aNodeent_SyntaxTests,   apzNodeent_SyntaxPatch, 0 },

  {  zOpenbsd_Null_DefinitionName,    zOpenbsd_Null_DefinitionList,
     apzOpenbsd_Null_DefinitionMachs,
     OPENBSD_NULL_DEFINITION_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aOpenbsd_Null_DefinitionTests,   apzOpenbsd_Null_DefinitionPatch, 0 },

  {  zObstack_Lvalue_CastName,    zObstack_Lvalue_CastList,
     apzObstack_Lvalue_CastMachs,
     OBSTACK_LVALUE_CAST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aObstack_Lvalue_CastTests,   apzObstack_Lvalue_CastPatch, 0 },

  {  zOpenbsd_Va_StartName,    zOpenbsd_Va_StartList,
     apzOpenbsd_Va_StartMachs,
     OPENBSD_VA_START_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aOpenbsd_Va_StartTests,   apzOpenbsd_Va_StartPatch, 0 },

  {  zOsf_Namespace_AName,    zOsf_Namespace_AList,
     apzOsf_Namespace_AMachs,
     OSF_NAMESPACE_A_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aOsf_Namespace_ATests,   apzOsf_Namespace_APatch, 0 },

  {  zOsf_Namespace_CName,    zOsf_Namespace_CList,
     apzOsf_Namespace_CMachs,
     OSF_NAMESPACE_C_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aOsf_Namespace_CTests,   apzOsf_Namespace_CPatch, 0 },

  {  zPthread_Incomplete_Struct_ArgumentName,    zPthread_Incomplete_Struct_ArgumentList,
     apzPthread_Incomplete_Struct_ArgumentMachs,
     PTHREAD_INCOMPLETE_STRUCT_ARGUMENT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aPthread_Incomplete_Struct_ArgumentTests,   apzPthread_Incomplete_Struct_ArgumentPatch, 0 },

  {  zRead_Ret_TypeName,    zRead_Ret_TypeList,
     apzRead_Ret_TypeMachs,
     READ_RET_TYPE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aRead_Ret_TypeTests,   apzRead_Ret_TypePatch, 0 },

  {  zRpc_Xdr_Lvalue_Cast_AName,    zRpc_Xdr_Lvalue_Cast_AList,
     apzRpc_Xdr_Lvalue_Cast_AMachs,
     RPC_XDR_LVALUE_CAST_A_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aRpc_Xdr_Lvalue_Cast_ATests,   apzRpc_Xdr_Lvalue_Cast_APatch, 0 },

  {  zRpc_Xdr_Lvalue_Cast_BName,    zRpc_Xdr_Lvalue_Cast_BList,
     apzRpc_Xdr_Lvalue_Cast_BMachs,
     RPC_XDR_LVALUE_CAST_B_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aRpc_Xdr_Lvalue_Cast_BTests,   apzRpc_Xdr_Lvalue_Cast_BPatch, 0 },

  {  zRs6000_DoubleName,    zRs6000_DoubleList,
     apzRs6000_DoubleMachs,
     RS6000_DOUBLE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aRs6000_DoubleTests,   apzRs6000_DoublePatch, 0 },

  {  zRs6000_FchmodName,    zRs6000_FchmodList,
     apzRs6000_FchmodMachs,
     RS6000_FCHMOD_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aRs6000_FchmodTests,   apzRs6000_FchmodPatch, 0 },

  {  zRs6000_ParamName,    zRs6000_ParamList,
     apzRs6000_ParamMachs,
     RS6000_PARAM_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aRs6000_ParamTests,   apzRs6000_ParamPatch, 0 },

  {  zSolaris___RestrictName,    zSolaris___RestrictList,
     apzSolaris___RestrictMachs,
     SOLARIS___RESTRICT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSolaris___RestrictTests,   apzSolaris___RestrictPatch, 0 },

  {  zSolaris_ComplexName,    zSolaris_ComplexList,
     apzSolaris_ComplexMachs,
     SOLARIS_COMPLEX_TEST_CT, FD_MACH_ONLY,
     aSolaris_ComplexTests,   apzSolaris_ComplexPatch, 0 },

  {  zSolaris_Complex_CxxName,    zSolaris_Complex_CxxList,
     apzSolaris_Complex_CxxMachs,
     SOLARIS_COMPLEX_CXX_TEST_CT, FD_MACH_ONLY,
     aSolaris_Complex_CxxTests,   apzSolaris_Complex_CxxPatch, 0 },

  {  zSolaris_Cxx_LinkageName,    zSolaris_Cxx_LinkageList,
     apzSolaris_Cxx_LinkageMachs,
     SOLARIS_CXX_LINKAGE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSolaris_Cxx_LinkageTests,   apzSolaris_Cxx_LinkagePatch, 0 },

  {  zSolaris_Getc_Strict_StdcName,    zSolaris_Getc_Strict_StdcList,
     apzSolaris_Getc_Strict_StdcMachs,
     SOLARIS_GETC_STRICT_STDC_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSolaris_Getc_Strict_StdcTests,   apzSolaris_Getc_Strict_StdcPatch, 0 },

  {  zSolaris_Int_ConstName,    zSolaris_Int_ConstList,
     apzSolaris_Int_ConstMachs,
     SOLARIS_INT_CONST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSolaris_Int_ConstTests,   apzSolaris_Int_ConstPatch, 0 },

  {  zSolaris_Int_Limits_1Name,    zSolaris_Int_Limits_1List,
     apzSolaris_Int_Limits_1Machs,
     SOLARIS_INT_LIMITS_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSolaris_Int_Limits_1Tests,   apzSolaris_Int_Limits_1Patch, 0 },

  {  zSolaris_Int_Limits_2Name,    zSolaris_Int_Limits_2List,
     apzSolaris_Int_Limits_2Machs,
     SOLARIS_INT_LIMITS_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSolaris_Int_Limits_2Tests,   apzSolaris_Int_Limits_2Patch, 0 },

  {  zSolaris_Int_Limits_3Name,    zSolaris_Int_Limits_3List,
     apzSolaris_Int_Limits_3Machs,
     SOLARIS_INT_LIMITS_3_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSolaris_Int_Limits_3Tests,   apzSolaris_Int_Limits_3Patch, 0 },

  {  zSolaris_Math_1Name,    zSolaris_Math_1List,
     apzSolaris_Math_1Machs,
     SOLARIS_MATH_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSolaris_Math_1Tests,   apzSolaris_Math_1Patch, 0 },

  {  zSolaris_Math_10Name,    zSolaris_Math_10List,
     apzSolaris_Math_10Machs,
     SOLARIS_MATH_10_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSolaris_Math_10Tests,   apzSolaris_Math_10Patch, 0 },

  {  zSolaris_Math_2Name,    zSolaris_Math_2List,
     apzSolaris_Math_2Machs,
     SOLARIS_MATH_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSolaris_Math_2Tests,   apzSolaris_Math_2Patch, 0 },

  {  zSolaris_Math_3Name,    zSolaris_Math_3List,
     apzSolaris_Math_3Machs,
     SOLARIS_MATH_3_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSolaris_Math_3Tests,   apzSolaris_Math_3Patch, 0 },

  {  zSolaris_Math_4Name,    zSolaris_Math_4List,
     apzSolaris_Math_4Machs,
     SOLARIS_MATH_4_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSolaris_Math_4Tests,   apzSolaris_Math_4Patch, 0 },

  {  zSolaris_Math_8Name,    zSolaris_Math_8List,
     apzSolaris_Math_8Machs,
     SOLARIS_MATH_8_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSolaris_Math_8Tests,   apzSolaris_Math_8Patch, 0 },

  {  zSolaris_Math_9Name,    zSolaris_Math_9List,
     apzSolaris_Math_9Machs,
     SOLARIS_MATH_9_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSolaris_Math_9Tests,   apzSolaris_Math_9Patch, 0 },

  {  zSolaris_Math_11Name,    zSolaris_Math_11List,
     apzSolaris_Math_11Machs,
     SOLARIS_MATH_11_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSolaris_Math_11Tests,   apzSolaris_Math_11Patch, 0 },

  {  zSolaris_Once_Init_1Name,    zSolaris_Once_Init_1List,
     apzSolaris_Once_Init_1Machs,
     SOLARIS_ONCE_INIT_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSolaris_Once_Init_1Tests,   apzSolaris_Once_Init_1Patch, 0 },

  {  zSolaris_Posix_Spawn_RestrictName,    zSolaris_Posix_Spawn_RestrictList,
     apzSolaris_Posix_Spawn_RestrictMachs,
     SOLARIS_POSIX_SPAWN_RESTRICT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSolaris_Posix_Spawn_RestrictTests,   apzSolaris_Posix_Spawn_RestrictPatch, 0 },

  {  zSolaris_Pow_Int_OverloadName,    zSolaris_Pow_Int_OverloadList,
     apzSolaris_Pow_Int_OverloadMachs,
     SOLARIS_POW_INT_OVERLOAD_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSolaris_Pow_Int_OverloadTests,   apzSolaris_Pow_Int_OverloadPatch, 0 },

  {  zSolaris_Rwlock_Init_1Name,    zSolaris_Rwlock_Init_1List,
     apzSolaris_Rwlock_Init_1Machs,
     SOLARIS_RWLOCK_INIT_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSolaris_Rwlock_Init_1Tests,   apzSolaris_Rwlock_Init_1Patch, 0 },

  {  zSolaris_Std___FilbufName,    zSolaris_Std___FilbufList,
     apzSolaris_Std___FilbufMachs,
     SOLARIS_STD___FILBUF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSolaris_Std___FilbufTests,   apzSolaris_Std___FilbufPatch, 0 },

  {  zSolaris_Stdio_TagName,    zSolaris_Stdio_TagList,
     apzSolaris_Stdio_TagMachs,
     SOLARIS_STDIO_TAG_TEST_CT, FD_MACH_ONLY,
     aSolaris_Stdio_TagTests,   apzSolaris_Stdio_TagPatch, 0 },

  {  zStatsswtchName,    zStatsswtchList,
     apzStatsswtchMachs,
     STATSSWTCH_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aStatsswtchTests,   apzStatsswtchPatch, 0 },

  {  zStdio_Stdarg_HName,    zStdio_Stdarg_HList,
     apzStdio_Stdarg_HMachs,
     STDIO_STDARG_H_TEST_CT, FD_MACH_IFNOT | FD_SUBROUTINE,
     aStdio_Stdarg_HTests,   apzStdio_Stdarg_HPatch, 0 },

  {  zStdio_Va_ListName,    zStdio_Va_ListList,
     apzStdio_Va_ListMachs,
     STDIO_VA_LIST_TEST_CT, FD_MACH_IFNOT,
     aStdio_Va_ListTests,   apzStdio_Va_ListPatch, 0 },

  {  zStdio_Va_List_ClientsName,    zStdio_Va_List_ClientsList,
     apzStdio_Va_List_ClientsMachs,
     STDIO_VA_LIST_CLIENTS_TEST_CT, FD_MACH_ONLY,
     aStdio_Va_List_ClientsTests,   apzStdio_Va_List_ClientsPatch, 0 },

  {  zStrict_Ansi_NotName,    zStrict_Ansi_NotList,
     apzStrict_Ansi_NotMachs,
     STRICT_ANSI_NOT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aStrict_Ansi_NotTests,   apzStrict_Ansi_NotPatch, 0 },

  {  zStrict_Ansi_Not_CtdName,    zStrict_Ansi_Not_CtdList,
     apzStrict_Ansi_Not_CtdMachs,
     STRICT_ANSI_NOT_CTD_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aStrict_Ansi_Not_CtdTests,   apzStrict_Ansi_Not_CtdPatch, 0 },

  {  zStrict_Ansi_OnlyName,    zStrict_Ansi_OnlyList,
     apzStrict_Ansi_OnlyMachs,
     STRICT_ANSI_ONLY_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aStrict_Ansi_OnlyTests,   apzStrict_Ansi_OnlyPatch, 0 },

  {  zStruct_FileName,    zStruct_FileList,
     apzStruct_FileMachs,
     STRUCT_FILE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aStruct_FileTests,   apzStruct_FilePatch, 0 },

  {  zStruct_SockaddrName,    zStruct_SockaddrList,
     apzStruct_SockaddrMachs,
     STRUCT_SOCKADDR_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aStruct_SockaddrTests,   apzStruct_SockaddrPatch, 0 },

  {  zSun_Auth_ProtoName,    zSun_Auth_ProtoList,
     apzSun_Auth_ProtoMachs,
     SUN_AUTH_PROTO_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSun_Auth_ProtoTests,   apzSun_Auth_ProtoPatch, 0 },

  {  zSun_Bogus_IfdefName,    zSun_Bogus_IfdefList,
     apzSun_Bogus_IfdefMachs,
     SUN_BOGUS_IFDEF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSun_Bogus_IfdefTests,   apzSun_Bogus_IfdefPatch, 0 },

  {  zSun_CatmacroName,    zSun_CatmacroList,
     apzSun_CatmacroMachs,
     SUN_CATMACRO_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSun_CatmacroTests,   apzSun_CatmacroPatch, 0 },

  {  zSun_MallocName,    zSun_MallocList,
     apzSun_MallocMachs,
     SUN_MALLOC_TEST_CT, FD_MACH_ONLY,
     aSun_MallocTests,   apzSun_MallocPatch, 0 },

  {  zSun_Rusers_SemiName,    zSun_Rusers_SemiList,
     apzSun_Rusers_SemiMachs,
     SUN_RUSERS_SEMI_TEST_CT, FD_MACH_ONLY,
     aSun_Rusers_SemiTests,   apzSun_Rusers_SemiPatch, 0 },

  {  zSun_SignalName,    zSun_SignalList,
     apzSun_SignalMachs,
     SUN_SIGNAL_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSun_SignalTests,   apzSun_SignalPatch, 0 },

  {  zSunos_StrlenName,    zSunos_StrlenList,
     apzSunos_StrlenMachs,
     SUNOS_STRLEN_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSunos_StrlenTests,   apzSunos_StrlenPatch, 0 },

  {  zSuse_Linux_Vt_CxxName,    zSuse_Linux_Vt_CxxList,
     apzSuse_Linux_Vt_CxxMachs,
     SUSE_LINUX_VT_CXX_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSuse_Linux_Vt_CxxTests,   apzSuse_Linux_Vt_CxxPatch, 0 },

  {  zSvr4_Disable_OptName,    zSvr4_Disable_OptList,
     apzSvr4_Disable_OptMachs,
     SVR4_DISABLE_OPT_TEST_CT, FD_MACH_ONLY,
     aSvr4_Disable_OptTests,   apzSvr4_Disable_OptPatch, 0 },

  {  zSvr4_GetcwdName,    zSvr4_GetcwdList,
     apzSvr4_GetcwdMachs,
     SVR4_GETCWD_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSvr4_GetcwdTests,   apzSvr4_GetcwdPatch, 0 },

  {  zSvr4_ProfilName,    zSvr4_ProfilList,
     apzSvr4_ProfilMachs,
     SVR4_PROFIL_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSvr4_ProfilTests,   apzSvr4_ProfilPatch, 0 },

  {  zSvr4_Sighandler_TypeName,    zSvr4_Sighandler_TypeList,
     apzSvr4_Sighandler_TypeMachs,
     SVR4_SIGHANDLER_TYPE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSvr4_Sighandler_TypeTests,   apzSvr4_Sighandler_TypePatch, 0 },

  {  zSvr4_Undeclared_GetrngeName,    zSvr4_Undeclared_GetrngeList,
     apzSvr4_Undeclared_GetrngeMachs,
     SVR4_UNDECLARED_GETRNGE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSvr4_Undeclared_GetrngeTests,   apzSvr4_Undeclared_GetrngePatch, 0 },

  {  zSysv68_StringName,    zSysv68_StringList,
     apzSysv68_StringMachs,
     SYSV68_STRING_TEST_CT, FD_MACH_ONLY,
     aSysv68_StringTests,   apzSysv68_StringPatch, 0 },

  {  zSysz_Stdlib_For_SunName,    zSysz_Stdlib_For_SunList,
     apzSysz_Stdlib_For_SunMachs,
     SYSZ_STDLIB_FOR_SUN_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSysz_Stdlib_For_SunTests,   apzSysz_Stdlib_For_SunPatch, 0 },

  {  zThread_KeywordName,    zThread_KeywordList,
     apzThread_KeywordMachs,
     THREAD_KEYWORD_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aThread_KeywordTests,   apzThread_KeywordPatch, 0 },

  {  zTinfo_CplusplusName,    zTinfo_CplusplusList,
     apzTinfo_CplusplusMachs,
     TINFO_CPLUSPLUS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aTinfo_CplusplusTests,   apzTinfo_CplusplusPatch, 0 },

  {  zUltrix_ConstName,    zUltrix_ConstList,
     apzUltrix_ConstMachs,
     ULTRIX_CONST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aUltrix_ConstTests,   apzUltrix_ConstPatch, 0 },

  {  zUltrix_Const2Name,    zUltrix_Const2List,
     apzUltrix_Const2Machs,
     ULTRIX_CONST2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aUltrix_Const2Tests,   apzUltrix_Const2Patch, 0 },

  {  zVa_I960_MacroName,    zVa_I960_MacroList,
     apzVa_I960_MacroMachs,
     VA_I960_MACRO_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aVa_I960_MacroTests,   apzVa_I960_MacroPatch, 0 },

  {  zVms_Add_Missing_BracesName,    zVms_Add_Missing_BracesList,
     apzVms_Add_Missing_BracesMachs,
     VMS_ADD_MISSING_BRACES_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aVms_Add_Missing_BracesTests,   apzVms_Add_Missing_BracesPatch, 0 },

  {  zVms_Decc_BuiltinName,    zVms_Decc_BuiltinList,
     apzVms_Decc_BuiltinMachs,
     VMS_DECC_BUILTIN_TEST_CT, FD_MACH_ONLY,
     aVms_Decc_BuiltinTests,   apzVms_Decc_BuiltinPatch, 0 },

  {  zVms_Define_Can_Use_Extern_PrefixName,    zVms_Define_Can_Use_Extern_PrefixList,
     apzVms_Define_Can_Use_Extern_PrefixMachs,
     VMS_DEFINE_CAN_USE_EXTERN_PREFIX_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aVms_Define_Can_Use_Extern_PrefixTests,   apzVms_Define_Can_Use_Extern_PrefixPatch, 0 },

  {  zVms_Disable_Decc_String_BuiltinsName,    zVms_Disable_Decc_String_BuiltinsList,
     apzVms_Disable_Decc_String_BuiltinsMachs,
     VMS_DISABLE_DECC_STRING_BUILTINS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aVms_Disable_Decc_String_BuiltinsTests,   apzVms_Disable_Decc_String_BuiltinsPatch, 0 },

  {  zVms_Do_Not_Redeclare_HostaliasName,    zVms_Do_Not_Redeclare_HostaliasList,
     apzVms_Do_Not_Redeclare_HostaliasMachs,
     VMS_DO_NOT_REDECLARE_HOSTALIAS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aVms_Do_Not_Redeclare_HostaliasTests,   apzVms_Do_Not_Redeclare_HostaliasPatch, 0 },

  {  zVms_Forward_Declare_StructName,    zVms_Forward_Declare_StructList,
     apzVms_Forward_Declare_StructMachs,
     VMS_FORWARD_DECLARE_STRUCT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aVms_Forward_Declare_StructTests,   apzVms_Forward_Declare_StructPatch, 0 },

  {  zVms_No_64bit_GetoptName,    zVms_No_64bit_GetoptList,
     apzVms_No_64bit_GetoptMachs,
     VMS_NO_64BIT_GETOPT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aVms_No_64bit_GetoptTests,   apzVms_No_64bit_GetoptPatch, 0 },

  {  zVms_Use_Fast_SetjmpName,    zVms_Use_Fast_SetjmpList,
     apzVms_Use_Fast_SetjmpMachs,
     VMS_USE_FAST_SETJMP_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aVms_Use_Fast_SetjmpTests,   apzVms_Use_Fast_SetjmpPatch, 0 },

  {  zVms_Use_Pragma_Extern_ModelName,    zVms_Use_Pragma_Extern_ModelList,
     apzVms_Use_Pragma_Extern_ModelMachs,
     VMS_USE_PRAGMA_EXTERN_MODEL_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aVms_Use_Pragma_Extern_ModelTests,   apzVms_Use_Pragma_Extern_ModelPatch, 0 },

  {  zVms_Use_Quoted_IncludeName,    zVms_Use_Quoted_IncludeList,
     apzVms_Use_Quoted_IncludeMachs,
     VMS_USE_QUOTED_INCLUDE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aVms_Use_Quoted_IncludeTests,   apzVms_Use_Quoted_IncludePatch, 0 },

  {  zVoid_NullName,    zVoid_NullList,
     apzVoid_NullMachs,
     VOID_NULL_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aVoid_NullTests,   apzVoid_NullPatch, 0 },

  {  zVxworks_Gcc_ProblemName,    zVxworks_Gcc_ProblemList,
     apzVxworks_Gcc_ProblemMachs,
     VXWORKS_GCC_PROBLEM_TEST_CT, FD_MACH_ONLY,
     aVxworks_Gcc_ProblemTests,   apzVxworks_Gcc_ProblemPatch, 0 },

  {  zVxworks_Ioctl_MacroName,    zVxworks_Ioctl_MacroList,
     apzVxworks_Ioctl_MacroMachs,
     VXWORKS_IOCTL_MACRO_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aVxworks_Ioctl_MacroTests,   apzVxworks_Ioctl_MacroPatch, 0 },

  {  zVxworks_Mkdir_MacroName,    zVxworks_Mkdir_MacroList,
     apzVxworks_Mkdir_MacroMachs,
     VXWORKS_MKDIR_MACRO_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aVxworks_Mkdir_MacroTests,   apzVxworks_Mkdir_MacroPatch, 0 },

  {  zVxworks_Needs_VxtypesName,    zVxworks_Needs_VxtypesList,
     apzVxworks_Needs_VxtypesMachs,
     VXWORKS_NEEDS_VXTYPES_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aVxworks_Needs_VxtypesTests,   apzVxworks_Needs_VxtypesPatch, 0 },

  {  zVxworks_Needs_VxworksName,    zVxworks_Needs_VxworksList,
     apzVxworks_Needs_VxworksMachs,
     VXWORKS_NEEDS_VXWORKS_TEST_CT, FD_MACH_ONLY,
     aVxworks_Needs_VxworksTests,   apzVxworks_Needs_VxworksPatch, 0 },

  {  zVxworks_RegsName,    zVxworks_RegsList,
     apzVxworks_RegsMachs,
     VXWORKS_REGS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aVxworks_RegsTests,   apzVxworks_RegsPatch, 0 },

  {  zVxworks_TimeName,    zVxworks_TimeList,
     apzVxworks_TimeMachs,
     VXWORKS_TIME_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aVxworks_TimeTests,   apzVxworks_TimePatch, 0 },

  {  zVxworks_Write_ConstName,    zVxworks_Write_ConstList,
     apzVxworks_Write_ConstMachs,
     VXWORKS_WRITE_CONST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aVxworks_Write_ConstTests,   apzVxworks_Write_ConstPatch, 0 },

  {  zX11_ClassName,    zX11_ClassList,
     apzX11_ClassMachs,
     X11_CLASS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aX11_ClassTests,   apzX11_ClassPatch, 0 },

  {  zX11_Class_UsageName,    zX11_Class_UsageList,
     apzX11_Class_UsageMachs,
     X11_CLASS_USAGE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aX11_Class_UsageTests,   apzX11_Class_UsagePatch, 0 },

  {  zX11_NewName,    zX11_NewList,
     apzX11_NewMachs,
     X11_NEW_TEST_CT, FD_MACH_ONLY,
     aX11_NewTests,   apzX11_NewPatch, 0 },

  {  zX11_SprintfName,    zX11_SprintfList,
     apzX11_SprintfMachs,
     X11_SPRINTF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aX11_SprintfTests,   apzX11_SprintfPatch, 0 }
};
