/*  -*- buffer-read-only: t -*- vi: set ro:
 *
 * DO NOT EDIT THIS FILE   (fixincl.x)
 *
 * It has been AutoGen-ed  January 22, 2023 at 09:03:29 PM by AutoGen 5.18.12
 * From the definitions    inclhack.def
 * and the template file   fixincl
 */
/* DO NOT SVN-MERGE THIS FILE, EITHER Sun Jan 22 21:03:29 CET 2023
 *
 * 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 274 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 Darwin_Api_Availability fix
 */
tSCC zDarwin_Api_AvailabilityName[] =
     "darwin_api_availability";

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

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zDarwin_Api_AvailabilitySelect0[] =
       " *#define __API_AVAILABLE.*\n\
 *#define __API_DEPRECATED.*\n\
 *#define __API_DEPRECATED_WITH_REPLACEMENT.*\n\
 *#define __API_UNAVAILABLE.*\n";

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

#define    DARWIN_API_AVAILABILITY_TEST_CT  2
static tTestDesc aDarwin_Api_AvailabilityTests[] = {
  { TT_NEGREP,   zDarwin_Api_AvailabilityBypass0, (regex_t*)NULL },
  { TT_EGREP,    zDarwin_Api_AvailabilitySelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Darwin_Api_Availability
 */
static const char* apzDarwin_Api_AvailabilityPatch[] = {
    "format",
    "    #define API_AVAILABLE(...)\n\
    #define API_DEPRECATED(...)\n\
    #define API_DEPRECATED_WITH_REPLACEMENT(...)\n\
    #define API_UNAVAILABLE(...)\n",
    (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[] = {
"#ifdef _ASSERT_H\n\
#undef _ASSERT_H\n\
#undef assert\n\
#endif\n\n\
#define _ASSERT_H\n\n\
#ifdef __cplusplus\n\
extern \"C\" {\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: \" #test \", file \" \\\n\
        __FILE__ \", line \" ASSERT_STRINGIFY(__LINE__) \"\\n\")))\n\n\
#endif\n\n\
#ifdef __cplusplus\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\
/* regs.h depends on CPU_FAMILY being properly defined, which\n\
   is done by vxCpu.h.  */\n\
#include <types/vxCpu.h>\n\
/* regs.h includes a CPU_FAMILY-specific header that requires\n\
   vxTypesOld.h to already have been included.  Those headers\n\
   contain proper _ASMLANGUAGE guards around their typedefs,\n\
   but vxTypesOld.h itself does not. So we avoid including\n\
   vxTypesOld.h from assembly.  */\n\
#ifndef _ASMLANGUAGE\n\
#include <types/vxTypesOld.h>\n\
#endif\n\
#include_next <arch/../regs.h>\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[] =
       "#ifndef _KERNEL\n\
#ifdef __cplusplus\n\
extern \"C\" int naccept\\(int, struct sockaddr \\*, socklen_t \\*\\);";

#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",
    "#ifndef _KERNEL\n\
#ifdef __cplusplus\n\
extern \"C++\" {\n\
extern \"C\" int naccept(int, struct sockaddr *, socklen_t *);",
    (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[] =
       "#endif /\\* COMPAT_43 \\*/\n\
#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",
    "#endif /* COMPAT_43 */\n\
} /* extern \"C++\" */\n\
#else  /* __cplusplus */",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aix_Inttypes fix
 */
tSCC zAix_InttypesName[] =
     "aix_inttypes";

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

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAix_InttypesSelect0[] =
       "#if !defined\\(__cplusplus\\) \\|\\| defined\\(__STDC_FORMAT_MACROS\\)";

#define    AIX_INTTYPES_TEST_CT  1
static tTestDesc aAix_InttypesTests[] = {
  { TT_EGREP,    zAix_InttypesSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aix_Inttypes
 */
static const char* apzAix_InttypesPatch[] = {
    "format",
    "#if 1",
    (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\n\
extern \"C\" \\{\n\
[ \t]extern \"builtin\" char \\*__alloca \\(size_t\\);";

#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__))\n\
extern \"C\" {\n\
\textern \"builtin\" char *__alloca (size_t);",
    (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_Physadr_T fix
 */
tSCC zAix_Physadr_TName[] =
     "aix_physadr_t";

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

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAix_Physadr_TSelect0[] =
       "typedef[ \t]*struct[ \t]*([{][^}]*[}][ \t]*\\*[ \t]*physadr_t;)";

#define    AIX_PHYSADR_T_TEST_CT  1
static tTestDesc aAix_Physadr_TTests[] = {
  { TT_EGREP,    zAix_Physadr_TSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aix_Physadr_T
 */
static const char* apzAix_Physadr_TPatch[] = {
    "format",
    "typedef struct __physadr_s %1",
    (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_Stdlib_Malloc fix
 */
tSCC zAix_Stdlib_MallocName[] =
     "aix_stdlib_malloc";

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

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

#define    AIX_STDLIB_MALLOC_TEST_CT  1
static tTestDesc aAix_Stdlib_MallocTests[] = {
  { TT_EGREP,    zAix_Stdlib_MallocSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aix_Stdlib_Malloc
 */
static const char* apzAix_Stdlib_MallocPatch[] = {
    "format",
    "extern void *malloc(size_t) __asm__(\"__linux_malloc\");",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aix_Stdlib_Realloc fix
 */
tSCC zAix_Stdlib_ReallocName[] =
     "aix_stdlib_realloc";

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

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

#define    AIX_STDLIB_REALLOC_TEST_CT  1
static tTestDesc aAix_Stdlib_ReallocTests[] = {
  { TT_EGREP,    zAix_Stdlib_ReallocSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aix_Stdlib_Realloc
 */
static const char* apzAix_Stdlib_ReallocPatch[] = {
    "format",
    "extern void *realloc(void *, size_t) __asm__(\"__linux_realloc\");",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aix_Stdlib_Calloc fix
 */
tSCC zAix_Stdlib_CallocName[] =
     "aix_stdlib_calloc";

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

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

#define    AIX_STDLIB_CALLOC_TEST_CT  1
static tTestDesc aAix_Stdlib_CallocTests[] = {
  { TT_EGREP,    zAix_Stdlib_CallocSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aix_Stdlib_Calloc
 */
static const char* apzAix_Stdlib_CallocPatch[] = {
    "format",
    "extern void *calloc(size_t, size_t) __asm__(\"__linux_calloc\");",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aix_Stdlib_Valloc fix
 */
tSCC zAix_Stdlib_VallocName[] =
     "aix_stdlib_valloc";

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

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

#define    AIX_STDLIB_VALLOC_TEST_CT  1
static tTestDesc aAix_Stdlib_VallocTests[] = {
  { TT_EGREP,    zAix_Stdlib_VallocSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aix_Stdlib_Valloc
 */
static const char* apzAix_Stdlib_VallocPatch[] = {
    "format",
    "extern void *valloc(size_t) __asm__(\"__linux_valloc\");",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aix_Stdlib_Vec_Malloc fix
 */
tSCC zAix_Stdlib_Vec_MallocName[] =
     "aix_stdlib_vec_malloc";

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

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

#define    AIX_STDLIB_VEC_MALLOC_TEST_CT  1
static tTestDesc aAix_Stdlib_Vec_MallocTests[] = {
  { TT_EGREP,    zAix_Stdlib_Vec_MallocSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aix_Stdlib_Vec_Malloc
 */
static const char* apzAix_Stdlib_Vec_MallocPatch[] = {
    "format",
    "extern void *malloc(size_t) __asm__(\"vec_malloc\");",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aix_Stdlib_Vec_Calloc fix
 */
tSCC zAix_Stdlib_Vec_CallocName[] =
     "aix_stdlib_vec_calloc";

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

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

#define    AIX_STDLIB_VEC_CALLOC_TEST_CT  1
static tTestDesc aAix_Stdlib_Vec_CallocTests[] = {
  { TT_EGREP,    zAix_Stdlib_Vec_CallocSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aix_Stdlib_Vec_Calloc
 */
static const char* apzAix_Stdlib_Vec_CallocPatch[] = {
    "format",
    "extern void *calloc(size_t, size_t) __asm__(\"vec_calloc\");",
    (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 Aix_Unistd fix
 */
tSCC zAix_UnistdName[] =
     "aix_unistd";

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

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAix_UnistdSelect0[] =
       "[ \t]+static[ \t]+int[ \t]+getdtablesize\\(\\)";

#define    AIX_UNISTD_TEST_CT  1
static tTestDesc aAix_UnistdTests[] = {
  { TT_EGREP,    zAix_UnistdSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aix_Unistd
 */
static const char* apzAix_UnistdPatch[] = {
    "format",
    "\tstatic int\t\tgetdtablesize(void)",
    (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 Apple_Local_Stdio_Fn_Deprecation fix
 */
tSCC zApple_Local_Stdio_Fn_DeprecationName[] =
     "apple_local_stdio_fn_deprecation";

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

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zApple_Local_Stdio_Fn_DeprecationSelect0[] =
       "__deprecated_msg([^\n\
]*)$";

#define    APPLE_LOCAL_STDIO_FN_DEPRECATION_TEST_CT  1
static tTestDesc aApple_Local_Stdio_Fn_DeprecationTests[] = {
  { TT_EGREP,    zApple_Local_Stdio_Fn_DeprecationSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Apple_Local_Stdio_Fn_Deprecation
 */
static const char* apzApple_Local_Stdio_Fn_DeprecationPatch[] = {
    "format",
    "#if defined(__APPLE_LOCAL_DEPRECATIONS)\n\
%0\n\
#endif",
    (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_Availabilityinternal fix
 */
tSCC zDarwin_AvailabilityinternalName[] =
     "darwin_availabilityinternal";

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

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

#define    DARWIN_AVAILABILITYINTERNAL_TEST_CT  1
static tTestDesc aDarwin_AvailabilityinternalTests[] = {
  { TT_EGREP,    zDarwin_AvailabilityinternalSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Darwin_Availabilityinternal
 */
static const char* apzDarwin_AvailabilityinternalPatch[] = {
    "format",
    "#if defined(__has_attribute)\n\
  #if __has_attribute(availability)\n\
%0\n\
  #else\n\
    #define %1\n\
  #endif\n\
#else\n\
    #define %1\n\
#endif",
    (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[] = {
        "*-*-darwin*",
        (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_Ll_Funcs_Avail fix
 */
tSCC zDarwin_Ll_Funcs_AvailName[] =
     "darwin_ll_funcs_avail";

/*
 *  File name selection pattern
 */
tSCC zDarwin_Ll_Funcs_AvailList[] =
  "architecture/ppc/math.h\0architecture/i386/math.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzDarwin_Ll_Funcs_AvailMachs[] = {
        "*-*-darwin*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zDarwin_Ll_Funcs_AvailSelect0[] =
       "#if[^_]*__STDC_VERSION__[^_]*__STDC_VERSION__[^1]*199901L[^_]*__STRICT_ANSI__[^_]*__GNUC__[^)]*";

#define    DARWIN_LL_FUNCS_AVAIL_TEST_CT  1
static tTestDesc aDarwin_Ll_Funcs_AvailTests[] = {
  { TT_EGREP,    zDarwin_Ll_Funcs_AvailSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Darwin_Ll_Funcs_Avail
 */
static const char* apzDarwin_Ll_Funcs_AvailPatch[] = { sed_cmd_z,
    "-e", "s/#if[^_]*__STDC_VERSION__[^_]*__STDC_VERSION__[^_]*199901L[^_]*__STRICT_ANSI__[^_]*__GNUC__[^\\)]*)/#if !(__DARWIN_NO_LONG_LONG)/",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Darwin_Longjmp_Noreturn fix
 */
tSCC zDarwin_Longjmp_NoreturnName[] =
     "darwin_longjmp_noreturn";

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

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

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

#define    DARWIN_LONGJMP_NORETURN_TEST_CT  2
static tTestDesc aDarwin_Longjmp_NoreturnTests[] = {
  { TT_NEGREP,   zDarwin_Longjmp_NoreturnBypass0, (regex_t*)NULL },
  { TT_EGREP,    zDarwin_Longjmp_NoreturnSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Darwin_Longjmp_Noreturn
 */
static const char* apzDarwin_Longjmp_NoreturnPatch[] = {
    "format",
    "%1 __attribute__ ((__noreturn__));",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Darwin_Os_Trace_1 fix
 */
tSCC zDarwin_Os_Trace_1Name[] =
     "darwin_os_trace_1";

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

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zDarwin_Os_Trace_1Select0[] =
       "^(_os_trace_verify_printf.*) (__attribute__.*)";

#define    DARWIN_OS_TRACE_1_TEST_CT  1
static tTestDesc aDarwin_Os_Trace_1Tests[] = {
  { TT_EGREP,    zDarwin_Os_Trace_1Select0, (regex_t*)NULL }, };

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

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Darwin_Os_Trace_2 fix
 */
tSCC zDarwin_Os_Trace_2Name[] =
     "darwin_os_trace_2";

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

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

#define    DARWIN_OS_TRACE_2_TEST_CT  1
static tTestDesc aDarwin_Os_Trace_2Tests[] = {
  { TT_EGREP,    zDarwin_Os_Trace_2Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Darwin_Os_Trace_2
 */
static const char* apzDarwin_Os_Trace_2Patch[] = {
    "format",
    "#if __BLOCKS__\n\
%0\n\
#endif",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Darwin_Objc_Runtime_1 fix
 */
tSCC zDarwin_Objc_Runtime_1Name[] =
     "darwin_objc_runtime_1";

/*
 *  File name selection pattern
 */
tSCC zDarwin_Objc_Runtime_1List[] =
  "objc/runtime.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzDarwin_Objc_Runtime_1Machs[] = {
        "*-*-darwin2*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zDarwin_Objc_Runtime_1Select0[] =
       "OBJC_EXPORT void.*\n\
objc_enumerateClasses.*\n\
.*\n\
.*\n\
.*\n\
.*void \\(\\^ _Nonnull block.*\n\
.*\n\
.*\n\
.*OBJC_REFINED_FOR_SWIFT.*";

#define    DARWIN_OBJC_RUNTIME_1_TEST_CT  1
static tTestDesc aDarwin_Objc_Runtime_1Tests[] = {
  { TT_EGREP,    zDarwin_Objc_Runtime_1Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Darwin_Objc_Runtime_1
 */
static const char* apzDarwin_Objc_Runtime_1Patch[] = {
    "format",
    "#if __BLOCKS__\n\
%0\n\
#endif",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Darwin_Os_Trace_3 fix
 */
tSCC zDarwin_Os_Trace_3Name[] =
     "darwin_os_trace_3";

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

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zDarwin_Os_Trace_3Select0[] =
       "__(API|OSX)_.*\n\
OS_EXPORT.*\n\
.*\n\
_os_trace.*os_trace_payload_t payload);";

#define    DARWIN_OS_TRACE_3_TEST_CT  1
static tTestDesc aDarwin_Os_Trace_3Tests[] = {
  { TT_EGREP,    zDarwin_Os_Trace_3Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Darwin_Os_Trace_3
 */
static const char* apzDarwin_Os_Trace_3Patch[] = {
    "format",
    "#if __BLOCKS__\n\
%0\n\
#endif",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Darwin_Os_Base_1 fix
 */
tSCC zDarwin_Os_Base_1Name[] =
     "darwin_os_base_1";

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

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zDarwin_Os_Base_1Select0[] =
       "#define __has_attribute.*\n\
#endif";

#define    DARWIN_OS_BASE_1_TEST_CT  1
static tTestDesc aDarwin_Os_Base_1Tests[] = {
  { TT_EGREP,    zDarwin_Os_Base_1Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Darwin_Os_Base_1
 */
static const char* apzDarwin_Os_Base_1Patch[] = {
    "format",
    "%0\n\
#ifndef __has_extension\n\
#define __has_extension(x) 0\n\
#endif",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Darwin_Dispatch_Object_1 fix
 */
tSCC zDarwin_Dispatch_Object_1Name[] =
     "darwin_dispatch_object_1";

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

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zDarwin_Dispatch_Object_1Select0[] =
       "typedef void.*\\^dispatch_block_t.*";

#define    DARWIN_DISPATCH_OBJECT_1_TEST_CT  1
static tTestDesc aDarwin_Dispatch_Object_1Tests[] = {
  { TT_EGREP,    zDarwin_Dispatch_Object_1Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Darwin_Dispatch_Object_1
 */
static const char* apzDarwin_Dispatch_Object_1Patch[] = {
    "format",
    "#if __BLOCKS__\n\
%0\n\
#endif",
    (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 Darwin_Ucred__Atomic fix
 */
tSCC zDarwin_Ucred__AtomicName[] =
     "darwin_ucred__Atomic";

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

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

#define    DARWIN_UCRED__ATOMIC_TEST_CT  1
static tTestDesc aDarwin_Ucred__AtomicTests[] = {
  { TT_EGREP,    zDarwin_Ucred__AtomicSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Darwin_Ucred__Atomic
 */
static const char* apzDarwin_Ucred__AtomicPatch[] = {
    "wrap",
    "#if (__STDC_VERSION__ < 201112L) || defined(__cplusplus)\n\
# define _Atomic volatile\n\
#endif\n",
    "#if (__STDC_VERSION__ < 201112L) || defined(__cplusplus)\n\
# undef _Atomic\n\
#endif\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Darwin_Flt_Eval_Method fix
 */
tSCC zDarwin_Flt_Eval_MethodName[] =
     "darwin_flt_eval_method";

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

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zDarwin_Flt_Eval_MethodSelect0[] =
       "^#if __FLT_EVAL_METHOD__ == 0$";

#define    DARWIN_FLT_EVAL_METHOD_TEST_CT  1
static tTestDesc aDarwin_Flt_Eval_MethodTests[] = {
  { TT_EGREP,    zDarwin_Flt_Eval_MethodSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Darwin_Flt_Eval_Method
 */
static const char* apzDarwin_Flt_Eval_MethodPatch[] = {
    "format",
    "#if __FLT_EVAL_METHOD__ == 0 || __FLT_EVAL_METHOD__ == 16",
    (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_Cxx_Floatn_1 fix
 */
tSCC zGlibc_Cxx_Floatn_1Name[] =
     "glibc_cxx_floatn_1";

/*
 *  File name selection pattern
 */
tSCC zGlibc_Cxx_Floatn_1List[] =
  "bits/floatn.h\0bits/floatn-common.h\0*/bits/floatn.h\0*/bits/floatn-common.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzGlibc_Cxx_Floatn_1Machs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zGlibc_Cxx_Floatn_1Select0[] =
       "^([ \t]*#[ \t]*if !__GNUC_PREREQ \\(7, 0\\) \\|\\| )defined __cplusplus\n\
(([ \t]*/\\*[^\n\
]*\\*/\n\
)?([ \t]*#[ \t]*if[^\n\
]*\n\
)?[ \t]*#[ \t]*define __f(16|32|64|128)x?\\()";

#define    GLIBC_CXX_FLOATN_1_TEST_CT  1
static tTestDesc aGlibc_Cxx_Floatn_1Tests[] = {
  { TT_EGREP,    zGlibc_Cxx_Floatn_1Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Glibc_Cxx_Floatn_1
 */
static const char* apzGlibc_Cxx_Floatn_1Patch[] = {
    "format",
    "%1(defined __cplusplus && !__GNUC_PREREQ (13, 0))\n\
%2",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Glibc_Cxx_Floatn_2 fix
 */
tSCC zGlibc_Cxx_Floatn_2Name[] =
     "glibc_cxx_floatn_2";

/*
 *  File name selection pattern
 */
tSCC zGlibc_Cxx_Floatn_2List[] =
  "bits/floatn.h\0bits/floatn-common.h\0*/bits/floatn.h\0*/bits/floatn-common.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzGlibc_Cxx_Floatn_2Machs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zGlibc_Cxx_Floatn_2Select0[] =
       "^([ \t]*#[ \t]*(el)?if !__GNUC_PREREQ \\(7, 0\\) \\|\\| )defined __cplusplus\n\
(([ \t]*/\\*[^\n\
]*\\*/\n\
)?[ \t]*typedef[ \t]+[^\n\
]*[ \t]+_Float(16|32|64|128)x?([ \t]+__attribute__ \\(\\(__mode__ \\(__HF__\\)\\)\\))?;)";

#define    GLIBC_CXX_FLOATN_2_TEST_CT  1
static tTestDesc aGlibc_Cxx_Floatn_2Tests[] = {
  { TT_EGREP,    zGlibc_Cxx_Floatn_2Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Glibc_Cxx_Floatn_2
 */
static const char* apzGlibc_Cxx_Floatn_2Patch[] = {
    "format",
    "%1(defined __cplusplus && !__GNUC_PREREQ (13, 0))\n\
%3",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Glibc_Cxx_Floatn_3 fix
 */
tSCC zGlibc_Cxx_Floatn_3Name[] =
     "glibc_cxx_floatn_3";

/*
 *  File name selection pattern
 */
tSCC zGlibc_Cxx_Floatn_3List[] =
  "bits/floatn.h\0bits/floatn-common.h\0*/bits/floatn.h\0*/bits/floatn-common.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzGlibc_Cxx_Floatn_3Machs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zGlibc_Cxx_Floatn_3Select0[] =
       "^([ \t]*#[ \t]*if !__GNUC_PREREQ \\(7, 0\\) \\|\\| )defined __cplusplus\n\
(([ \t]*/\\*[^\n\
]*\n\
?[^\n\
]*\\*/\n\
)?([ \t]*#[ \t]*if[^\n\
]*\n\
)?([ \t]*typedef[ \t]+[^\n\
]*;\n\
)?[ \t]*#[ \t]*define __CFLOAT(16|32|64|128)X?[ \t]+)";

#define    GLIBC_CXX_FLOATN_3_TEST_CT  1
static tTestDesc aGlibc_Cxx_Floatn_3Tests[] = {
  { TT_EGREP,    zGlibc_Cxx_Floatn_3Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Glibc_Cxx_Floatn_3
 */
static const char* apzGlibc_Cxx_Floatn_3Patch[] = {
    "format",
    "%1(defined __cplusplus && !__GNUC_PREREQ (13, 0))\n\
%2",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Glibc_Cxx_Floatn_4 fix
 */
tSCC zGlibc_Cxx_Floatn_4Name[] =
     "glibc_cxx_floatn_4";

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

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zGlibc_Cxx_Floatn_4Select0[] =
       "^([ \t]*#[ \t]*if __LDBL_MANT_DIG__ == 113 && )defined __cplusplus\n\
(([ \t]*/\\*[^\n\
]*\\*/\n\
)?[ \t]*typedef[ \t]+[^\n\
]*[ \t]+_Float128;)";

#define    GLIBC_CXX_FLOATN_4_TEST_CT  1
static tTestDesc aGlibc_Cxx_Floatn_4Tests[] = {
  { TT_EGREP,    zGlibc_Cxx_Floatn_4Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Glibc_Cxx_Floatn_4
 */
static const char* apzGlibc_Cxx_Floatn_4Patch[] = {
    "format",
    "%1defined __cplusplus && !__GNUC_PREREQ (13, 0)\n\
%2",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Glibc_Cxx_Floatn_5 fix
 */
tSCC zGlibc_Cxx_Floatn_5Name[] =
     "glibc_cxx_floatn_5";

/*
 *  File name selection pattern
 */
tSCC zGlibc_Cxx_Floatn_5List[] =
  "bits/floatn.h\0bits/floatn-common.h\0*/bits/floatn.h\0*/bits/floatn-common.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzGlibc_Cxx_Floatn_5Machs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zGlibc_Cxx_Floatn_5Select0[] =
       "^([ \t]*#[ \t]*if !__GNUC_PREREQ \\(7, 0\\) \\|\\| )defined __cplusplus\n\
([ \t]*#[ \t]+error \"_Float128[xX] supported but no )";

#define    GLIBC_CXX_FLOATN_5_TEST_CT  1
static tTestDesc aGlibc_Cxx_Floatn_5Tests[] = {
  { TT_EGREP,    zGlibc_Cxx_Floatn_5Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Glibc_Cxx_Floatn_5
 */
static const char* apzGlibc_Cxx_Floatn_5Patch[] = {
    "format",
    "%1(defined __cplusplus && !__GNUC_PREREQ (13, 0))\n\
%2",
    (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 Hpux_Math_Constexpr fix
 */
tSCC zHpux_Math_ConstexprName[] =
     "hpux_math_constexpr";

/*
 *  File name selection pattern
 */
tSCC zHpux_Math_ConstexprList[] =
  "math.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzHpux_Math_ConstexprMachs[] = {
        "*-hp-hpux11*",
        (const char*)NULL };
#define HPUX_MATH_CONSTEXPR_TEST_CT  0
#define aHpux_Math_ConstexprTests   (tTestDesc*)NULL

/*
 *  Fix Command Arguments for Hpux_Math_Constexpr
 */
static const char* apzHpux_Math_ConstexprPatch[] = { sed_cmd_z,
    "-e", "s@^[ \t]*extern[ \t]*const[ \t]*double[ \t]*_DINFINITY;[ \t]*$@#  define _DINFINITY (__builtin_inf ())@",
    "-e", "s@^[ \t]*extern[ \t]*const[ \t]*float[ \t]*_SINFINITY;[ \t]*$@#    define _SINFINITY (__builtin_inff ())@",
    "-e", "s@^[ \t]*extern[ \t]*const[ \t]*float[ \t]*_SQNAN;[ \t]*$@#    define _SQNAN (__builtin_nanf (\\\"\\\"))@",
    (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 Hppa_Hpux11_Alloca fix
 */
tSCC zHppa_Hpux11_AllocaName[] =
     "hppa_hpux11_alloca";

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

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHppa_Hpux11_AllocaSelect0[] =
       "#ifndef _STDDEF_INCLUDED";

#define    HPPA_HPUX11_ALLOCA_TEST_CT  1
static tTestDesc aHppa_Hpux11_AllocaTests[] = {
  { TT_EGREP,    zHppa_Hpux11_AllocaSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hppa_Hpux11_Alloca
 */
static const char* apzHppa_Hpux11_AllocaPatch[] = {
    "format",
    "#ifndef _SYS_STDSYMS_INCLUDED\n\
#  include <sys/stdsyms.h>\n\
#endif /* _SYS_STDSYMS_INCLUDED */\n\n\
%0",
    (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
 */
tSCC* apzHpux11_FabsfMachs[] = {
        "*-hp-hpux11*",
        (const char*)NULL };

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

#define    HPUX11_FABSF_TEST_CT  1
static tTestDesc aHpux11_FabsfTests[] = {
  { 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_Pointer fix
 */
tSCC zHpux11_Pthread_PointerName[] =
     "hpux11_pthread_pointer";

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

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux11_Pthread_PointerSelect0[] =
       "(void[ \t]*\\*)(m|c|rw)(_ptr)";

#define    HPUX11_PTHREAD_POINTER_TEST_CT  1
static tTestDesc aHpux11_Pthread_PointerTests[] = {
  { TT_EGREP,    zHpux11_Pthread_PointerSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux11_Pthread_Pointer
 */
static const char* apzHpux11_Pthread_PointerPatch[] = {
    "format",
    "long\t%2%3",
    (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[ \t0,]*)(.*\\))";

#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",
    "%11",
    (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 Hpux_Vsscanf fix
 */
tSCC zHpux_VsscanfName[] =
     "hpux_vsscanf";

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

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux_VsscanfSelect0[] =
       "(extern int vsscanf\\()char";

#define    HPUX_VSSCANF_TEST_CT  1
static tTestDesc aHpux_VsscanfTests[] = {
  { TT_EGREP,    zHpux_VsscanfSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux_Vsscanf
 */
static const char* apzHpux_VsscanfPatch[] = {
    "format",
    "%1const char",
    (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_C99_Inttypes3 fix
 */
tSCC zHpux_C99_Inttypes3Name[] =
     "hpux_c99_inttypes3";

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

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux_C99_Inttypes3Select0[] =
       "#define[ \t]INTPTR_MAX[ \t]*\n\
#define[ \t]UINTPTR_MAX[ \t]*\n";

#define    HPUX_C99_INTTYPES3_TEST_CT  1
static tTestDesc aHpux_C99_Inttypes3Tests[] = {
  { TT_EGREP,    zHpux_C99_Inttypes3Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux_C99_Inttypes3
 */
static const char* apzHpux_C99_Inttypes3Patch[] = {
    "format",
    "#undef SIZE_MAX\n\
#define SIZE_MAX __SIZE_MAX__\n\
#ifdef __INTPTR_MAX__\n\
# undef INTPTR_MAX\n\
# define INTPTR_MAX __INTPTR_MAX__\n\
# undef INTPTR_MIN\n\
# define INTPTR_MIN (-INTPTR_MAX - 1)\n\
#endif\n\
#ifdef __UINTPTR_MAX__\n\
# undef UINTPTR_MAX\n\
# define UINTPTR_MAX __UINTPTR_MAX__\n\
#endif\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux_C99_Inttypes4 fix
 */
tSCC zHpux_C99_Inttypes4Name[] =
     "hpux_c99_inttypes4";

/*
 *  File name selection pattern
 */
tSCC zHpux_C99_Inttypes4List[] =
  "inttypes.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzHpux_C99_Inttypes4Machs[] = {
        "hppa*-hp-hpux11.[01]*",
        (const char*)NULL };
#define HPUX_C99_INTTYPES4_TEST_CT  0
#define aHpux_C99_Inttypes4Tests   (tTestDesc*)NULL

/*
 *  Fix Command Arguments for Hpux_C99_Inttypes4
 */
static const char* apzHpux_C99_Inttypes4Patch[] = { sed_cmd_z,
    "-e", "/^[ \t]*#[ \t]*define[ \t]*SCNxMAX[ \t]*SCNx64/a\\\n\
#define SCNuMAX \t SCNu64\n",
    "-e", "/^[ \t]*#[ \t]*define[ \t]*SCNxMAX[ \t]*SCNx32/a\\\n\
#define SCNuMAX \t SCNu32\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux_C99_Inttypes5 fix
 */
tSCC zHpux_C99_Inttypes5Name[] =
     "hpux_c99_inttypes5";

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

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux_C99_Inttypes5Select0[] =
       "#ifndef[ \t]_KERNEL[ \t]*\n";

#define    HPUX_C99_INTTYPES5_TEST_CT  1
static tTestDesc aHpux_C99_Inttypes5Tests[] = {
  { TT_EGREP,    zHpux_C99_Inttypes5Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux_C99_Inttypes5
 */
static const char* apzHpux_C99_Inttypes5Patch[] = {
    "format",
    "#ifndef __LP64__\n\
#define PRIdPTR\t\tPRId32\n\
#define PRIiPTR\t\tPRIi32\n\
#define PRIoPTR\t\tPRIo32\n\
#define PRIuPTR\t\tPRIu32\n\
#define PRIxPTR\t\tPRIx32\n\
#define PRIXPTR\t\tPRIX32\n\
#else\n\
#define PRIdPTR\t\tPRId64\n\
#define PRIiPTR\t\tPRIi64\n\
#define PRIoPTR\t\tPRIo64\n\
#define PRIuPTR\t\tPRIu64\n\
#define PRIxPTR\t\tPRIx64\n\
#define PRIXPTR\t\tPRIX64\n\
#endif\n\n\
#ifndef _KERNEL\n",
    (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_Longjmp fix
 */
tSCC zHpux_LongjmpName[] =
     "hpux_longjmp";

/*
 *  File name selection pattern
 */
tSCC zHpux_LongjmpList[] =
  "setjmp.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzHpux_LongjmpMachs[] = {
        "*-hp-hpux*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux_LongjmpSelect0[] =
       "^[ \t]*extern[ \t]+void[ \t]+.*longjmp[ \t]*(__\\(\\(.*int\\)\\)|\\(.*int\\)|\\(\\))";

#define    HPUX_LONGJMP_TEST_CT  1
static tTestDesc aHpux_LongjmpTests[] = {
  { TT_EGREP,    zHpux_LongjmpSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux_Longjmp
 */
static const char* apzHpux_LongjmpPatch[] = {
    "format",
    "%0 __attribute__ ((__noreturn__))",
    (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_Gets_C11 fix
 */
tSCC zSolaris_Gets_C11Name[] =
     "solaris_gets_c11";

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

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSolaris_Gets_C11Select0[] =
       "(extern char[ \t]*\\*gets\\(char \\*\\));";

#define    SOLARIS_GETS_C11_TEST_CT  1
static tTestDesc aSolaris_Gets_C11Tests[] = {
  { TT_EGREP,    zSolaris_Gets_C11Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris_Gets_C11
 */
static const char* apzSolaris_Gets_C11Patch[] = {
    "format",
    "#if __STDC_VERSION__ < 201112L && __cplusplus < 201402L\n\
%1 __attribute__((__deprecated__));\n\
#endif",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Solaris_Gets_Cxx14 fix
 */
tSCC zSolaris_Gets_Cxx14Name[] =
     "solaris_gets_cxx14";

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

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSolaris_Gets_Cxx14Select0[] =
       "(#if __STDC_VERSION__ < 201112L)\n\
(extern char\t\\*gets\\(char \\*\\) __ATTR_DEPRECATED;)";

#define    SOLARIS_GETS_CXX14_TEST_CT  1
static tTestDesc aSolaris_Gets_Cxx14Tests[] = {
  { TT_EGREP,    zSolaris_Gets_Cxx14Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris_Gets_Cxx14
 */
static const char* apzSolaris_Gets_Cxx14Patch[] = {
    "format",
    "%1 && __cplusplus < 201402L\n\
%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_Math_12 fix
 */
tSCC zSolaris_Math_12Name[] =
     "solaris_math_12";

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

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSolaris_Math_12Select0[] =
       "#undef.*_GLIBCXX_USE_C99_MATH";

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

#define    SOLARIS_MATH_12_TEST_CT  2
static tTestDesc aSolaris_Math_12Tests[] = {
  { TT_NEGREP,   zSolaris_Math_12Bypass0, (regex_t*)NULL },
  { TT_EGREP,    zSolaris_Math_12Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris_Math_12
 */
static const char* apzSolaris_Math_12Patch[] = { sed_cmd_z,
    "-e", "/#undef[ \t]*_GLIBCXX_USE_C99_MATH/d",
    (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_Std_Gets_Cxx14 fix
 */
tSCC zSolaris_Std_Gets_Cxx14Name[] =
     "solaris_std_gets_cxx14";

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

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSolaris_Std_Gets_Cxx14Select0[] =
       "using std::gets;";

#define    SOLARIS_STD_GETS_CXX14_TEST_CT  1
static tTestDesc aSolaris_Std_Gets_Cxx14Tests[] = {
  { TT_EGREP,    zSolaris_Std_Gets_Cxx14Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris_Std_Gets_Cxx14
 */
static const char* apzSolaris_Std_Gets_Cxx14Patch[] = {
    "format",
    "#if __cplusplus < 201402L\n\
%0\n\
#endif",
    (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 Solaris_Stdlib_Noreturn fix
 */
tSCC zSolaris_Stdlib_NoreturnName[] =
     "solaris_stdlib_noreturn";

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

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSolaris_Stdlib_NoreturnSelect0[] =
       "(extern) _Noreturn (void quick_exit\\(int\\));";

#define    SOLARIS_STDLIB_NORETURN_TEST_CT  1
static tTestDesc aSolaris_Stdlib_NoreturnTests[] = {
  { TT_EGREP,    zSolaris_Stdlib_NoreturnSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris_Stdlib_Noreturn
 */
static const char* apzSolaris_Stdlib_NoreturnPatch[] = {
    "format",
    "%1 %2 __attribute__((__noreturn__));",
    (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_Math_H_Fp_C99 fix
 */
tSCC zVxworks_Math_H_Fp_C99Name[] =
     "vxworks_math_h_fp_c99";

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

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zVxworks_Math_H_Fp_C99Select0[] =
       "#define HUGE_VAL[ \t]*_ARCH.*";

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

#define    VXWORKS_MATH_H_FP_C99_TEST_CT  2
static tTestDesc aVxworks_Math_H_Fp_C99Tests[] = {
  { TT_NEGREP,   zVxworks_Math_H_Fp_C99Bypass0, (regex_t*)NULL },
  { TT_EGREP,    zVxworks_Math_H_Fp_C99Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Vxworks_Math_H_Fp_C99
 */
static const char* apzVxworks_Math_H_Fp_C99Patch[] = {
    "format",
    "\n\
%0\n\n\
#if _C99\n\n\
#define FP_INFINITE  1\n\
#define FP_NAN       2\n\
#define FP_NORMAL    (-1)\n\
#define FP_SUBNORMAL (-2)\n\
#define FP_ZERO      0\n\n\
#define fpclassify(x) \\\n\
  __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, \\\n\
\t\t       FP_SUBNORMAL, FP_ZERO, (x))\n\n\
#define signbit(x) __builtin_signbit(x)\n\
#define isfinite(x) __builtin_isfinite(x)\n\
#define isnormal(x) __builtin_isnormal(x)\n\
#define isnan(x) __builtin_isnan(x)\n\
#define isinf(x) __builtin_isinf(x)\n\n\
#define isgreater(x, y) __builtin_isgreater((x),(y))\n\
#define isgreaterequal(x, y) __builtin_isgreaterequal((x),(y))\n\
#define isless(x, y) __builtin_isless((x),(y))\n\
#define islessequal(x, y) __builtin_islessequal((x),(y))\n\
#define islessgreater(x, y) __builtin_islessgreater((x),(y))\n\
#define isunordered(x, y) __builtin_isunordered((x),(y))\n\n\
#endif /* _C99 */\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Vxworks_Posix_Mkdir fix
 */
tSCC zVxworks_Posix_MkdirName[] =
     "vxworks_posix_mkdir";

/*
 *  File name selection pattern
 */
tSCC zVxworks_Posix_MkdirList[] =
  "sys/stat.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzVxworks_Posix_MkdirMachs[] = {
        "*-*-vxworks*",
        (const char*)NULL };
#define VXWORKS_POSIX_MKDIR_TEST_CT  0
#define aVxworks_Posix_MkdirTests   (tTestDesc*)NULL

/*
 *  Fix Command Arguments for Vxworks_Posix_Mkdir
 */
static const char* apzVxworks_Posix_MkdirPatch[] = {
    "format",
    "extern STATUS mkdir(const char *dir, ...);",
    "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_Next_Yvals fix
 */
tSCC zVxworks_Next_YvalsName[] =
     "vxworks_next_yvals";

/*
 *  File name selection pattern
 */
tSCC zVxworks_Next_YvalsList[] =
  "yvals.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzVxworks_Next_YvalsMachs[] = {
        "*-*-vxworks*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zVxworks_Next_YvalsSelect0[] =
       "#include_next <yvals.h>";

#define    VXWORKS_NEXT_YVALS_TEST_CT  1
static tTestDesc aVxworks_Next_YvalsTests[] = {
  { TT_EGREP,    zVxworks_Next_YvalsSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Vxworks_Next_Yvals
 */
static const char* apzVxworks_Next_YvalsPatch[] = {
    "format",
    "#if 0 /* GCC does not provide yvals.h.  */\n\
%1",
    "#if .*\n\
/\\* .*\n\
(#include_next <yvals.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_Posix_Open fix
 */
tSCC zVxworks_Posix_OpenName[] =
     "vxworks_posix_open";

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

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zVxworks_Posix_OpenSelect0[] =
       "extern int.*open \\(const char \\*[ a-z]*, int[ a-z]*, int[ a-z]*\\);";

#define    VXWORKS_POSIX_OPEN_TEST_CT  1
static tTestDesc aVxworks_Posix_OpenTests[] = {
  { TT_EGREP,    zVxworks_Posix_OpenSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Vxworks_Posix_Open
 */
static const char* apzVxworks_Posix_OpenPatch[] = {
    "format",
    "%0\n\n\
#if defined(__cplusplus)\n\
extern \"C++\" {\n\
  inline int open (const char *, int) __attribute__((__always_inline__));\n\n\
  inline int\n\
  open (const char *name, int flags)\n\
  {\n\
    return open (name, flags, 0);\n\
  }\n\
}\n\
#endif\n",
    (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 Vxworks_Iolib_Include_Unistd fix
 */
tSCC zVxworks_Iolib_Include_UnistdName[] =
     "vxworks_iolib_include_unistd";

/*
 *  File name selection pattern
 */
tSCC zVxworks_Iolib_Include_UnistdList[] =
  "ioLib.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzVxworks_Iolib_Include_UnistdMachs[] = {
        "*-*-vxworks*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zVxworks_Iolib_Include_UnistdSelect0[] =
       "#include \"unistd.h\"";

#define    VXWORKS_IOLIB_INCLUDE_UNISTD_TEST_CT  1
static tTestDesc aVxworks_Iolib_Include_UnistdTests[] = {
  { TT_EGREP,    zVxworks_Iolib_Include_UnistdSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Vxworks_Iolib_Include_Unistd
 */
static const char* apzVxworks_Iolib_Include_UnistdPatch[] = {
    "format",
    "#include <unistd.h>",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Vxworks_Time_H_Syslib fix
 */
tSCC zVxworks_Time_H_SyslibName[] =
     "vxworks_time_h_syslib";

/*
 *  File name selection pattern
 */
tSCC zVxworks_Time_H_SyslibList[] =
  "time.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzVxworks_Time_H_SyslibMachs[] = {
        "*-*-vxworks*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zVxworks_Time_H_SyslibSelect0[] =
       "[ \t]*#define[ \t]+CLOCKS_PER_SEC[ \t]+sysClkRateGet.*";

#define    VXWORKS_TIME_H_SYSLIB_TEST_CT  1
static tTestDesc aVxworks_Time_H_SyslibTests[] = {
  { TT_EGREP,    zVxworks_Time_H_SyslibSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Vxworks_Time_H_Syslib
 */
static const char* apzVxworks_Time_H_SyslibPatch[] = {
    "format",
    "%0\n\
#include <sysLib.h>",
    "#include <vxWorks.h>|#endif.* _YVALS.*",
    (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          313
#define MACH_LIST_SIZE_LIMIT 187
#define FIX_COUNT            274

/*
 *  Enumerate the fixes
 */
typedef enum {
    AAB_AIX_STDIO_FIXIDX,
    AAB_AIX_FCNTL_FIXIDX,
    AAB_DARWIN7_9_LONG_DOUBLE_FUNCS_FIXIDX,
    DARWIN_API_AVAILABILITY_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_UNISTD_FIXIDX,
    AIX_ASSERT_FIXIDX,
    AIX_COMPLEX_FIXIDX,
    AIX_EXTERNC_FIXIDX,
    AIX_EXTERNCPP1_FIXIDX,
    AIX_EXTERNCPP2_FIXIDX,
    AIX_INTTYPES_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_PHYSADR_T_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_STDLIB_MALLOC_FIXIDX,
    AIX_STDLIB_REALLOC_FIXIDX,
    AIX_STDLIB_CALLOC_FIXIDX,
    AIX_STDLIB_VALLOC_FIXIDX,
    AIX_STDLIB_VEC_MALLOC_FIXIDX,
    AIX_STDLIB_VEC_CALLOC_FIXIDX,
    AIX_STRTOF_CONST_FIXIDX,
    AIX_SYSMACHINE_FIXIDX,
    AIX_SYSWAIT_2_FIXIDX,
    AIX_VOLATILE_FIXIDX,
    AIX_UNISTD_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,
    APPLE_LOCAL_STDIO_FN_DEPRECATION_FIXIDX,
    CTRL_QUOTES_DEF_FIXIDX,
    CTRL_QUOTES_USE_FIXIDX,
    CXX_UNREADY_FIXIDX,
    DARWIN_AVAILABILITYINTERNAL_FIXIDX,
    DARWIN_9_LONG_DOUBLE_FUNCS_2_FIXIDX,
    DARWIN_EXTERNC_FIXIDX,
    DARWIN_GCC4_BREAKAGE_FIXIDX,
    DARWIN_LL_FUNCS_AVAIL_FIXIDX,
    DARWIN_LONGJMP_NORETURN_FIXIDX,
    DARWIN_OS_TRACE_1_FIXIDX,
    DARWIN_OS_TRACE_2_FIXIDX,
    DARWIN_OBJC_RUNTIME_1_FIXIDX,
    DARWIN_OS_TRACE_3_FIXIDX,
    DARWIN_OS_BASE_1_FIXIDX,
    DARWIN_DISPATCH_OBJECT_1_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,
    DARWIN_UCRED__ATOMIC_FIXIDX,
    DARWIN_FLT_EVAL_METHOD_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_CXX_FLOATN_1_FIXIDX,
    GLIBC_CXX_FLOATN_2_FIXIDX,
    GLIBC_CXX_FLOATN_3_FIXIDX,
    GLIBC_CXX_FLOATN_4_FIXIDX,
    GLIBC_CXX_FLOATN_5_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,
    HPUX_MATH_CONSTEXPR_FIXIDX,
    HPUX10_CTYPE_DECLARATIONS1_FIXIDX,
    HPUX10_CTYPE_DECLARATIONS2_FIXIDX,
    HPUX10_STDIO_DECLARATIONS_FIXIDX,
    HPPA_HPUX11_ALLOCA_FIXIDX,
    HPUX11_ABS_FIXIDX,
    HPUX11_LWP_RWLOCK_VALID_FIXIDX,
    HPUX11_EXTERN_SENDFILE_FIXIDX,
    HPUX11_EXTERN_SENDPATH_FIXIDX,
    HPUX11_FABSF_FIXIDX,
    HPUX11_PTHREAD_POINTER_FIXIDX,
    HPUX11_PTHREAD_CONST_FIXIDX,
    HPUX11_SIZE_T_FIXIDX,
    HPUX11_SNPRINTF_FIXIDX,
    HPUX11_VSNPRINTF_FIXIDX,
    HPUX_VSSCANF_FIXIDX,
    HPUX8_BOGUS_INLINES_FIXIDX,
    HPUX_C99_INTPTR_FIXIDX,
    HPUX_C99_INTTYPES_FIXIDX,
    HPUX_C99_INTTYPES2_FIXIDX,
    HPUX_C99_INTTYPES3_FIXIDX,
    HPUX_C99_INTTYPES4_FIXIDX,
    HPUX_C99_INTTYPES5_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_LONGJMP_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_GETS_C11_FIXIDX,
    SOLARIS_GETS_CXX14_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_MATH_12_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_STD_GETS_CXX14_FIXIDX,
    SOLARIS_STDIO_TAG_FIXIDX,
    SOLARIS_STDLIB_NORETURN_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_MATH_H_FP_C99_FIXIDX,
    VXWORKS_POSIX_MKDIR_FIXIDX,
    VXWORKS_NEEDS_VXTYPES_FIXIDX,
    VXWORKS_NEEDS_VXWORKS_FIXIDX,
    VXWORKS_NEXT_YVALS_FIXIDX,
    VXWORKS_REGS_FIXIDX,
    VXWORKS_POSIX_OPEN_FIXIDX,
    VXWORKS_TIME_FIXIDX,
    VXWORKS_WRITE_CONST_FIXIDX,
    VXWORKS_IOLIB_INCLUDE_UNISTD_FIXIDX,
    VXWORKS_TIME_H_SYSLIB_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 },

  {  zDarwin_Api_AvailabilityName,    zDarwin_Api_AvailabilityList,
     apzDarwin_Api_AvailabilityMachs,
     DARWIN_API_AVAILABILITY_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aDarwin_Api_AvailabilityTests,   apzDarwin_Api_AvailabilityPatch, 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_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_InttypesName,    zAix_InttypesList,
     apzAix_InttypesMachs,
     AIX_INTTYPES_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_InttypesTests,   apzAix_InttypesPatch, 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_Physadr_TName,    zAix_Physadr_TList,
     apzAix_Physadr_TMachs,
     AIX_PHYSADR_T_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_Physadr_TTests,   apzAix_Physadr_TPatch, 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_Stdlib_MallocName,    zAix_Stdlib_MallocList,
     apzAix_Stdlib_MallocMachs,
     AIX_STDLIB_MALLOC_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_Stdlib_MallocTests,   apzAix_Stdlib_MallocPatch, 0 },

  {  zAix_Stdlib_ReallocName,    zAix_Stdlib_ReallocList,
     apzAix_Stdlib_ReallocMachs,
     AIX_STDLIB_REALLOC_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_Stdlib_ReallocTests,   apzAix_Stdlib_ReallocPatch, 0 },

  {  zAix_Stdlib_CallocName,    zAix_Stdlib_CallocList,
     apzAix_Stdlib_CallocMachs,
     AIX_STDLIB_CALLOC_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_Stdlib_CallocTests,   apzAix_Stdlib_CallocPatch, 0 },

  {  zAix_Stdlib_VallocName,    zAix_Stdlib_VallocList,
     apzAix_Stdlib_VallocMachs,
     AIX_STDLIB_VALLOC_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_Stdlib_VallocTests,   apzAix_Stdlib_VallocPatch, 0 },

  {  zAix_Stdlib_Vec_MallocName,    zAix_Stdlib_Vec_MallocList,
     apzAix_Stdlib_Vec_MallocMachs,
     AIX_STDLIB_VEC_MALLOC_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_Stdlib_Vec_MallocTests,   apzAix_Stdlib_Vec_MallocPatch, 0 },

  {  zAix_Stdlib_Vec_CallocName,    zAix_Stdlib_Vec_CallocList,
     apzAix_Stdlib_Vec_CallocMachs,
     AIX_STDLIB_VEC_CALLOC_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_Stdlib_Vec_CallocTests,   apzAix_Stdlib_Vec_CallocPatch, 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 },

  {  zAix_UnistdName,    zAix_UnistdList,
     apzAix_UnistdMachs,
     AIX_UNISTD_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_UnistdTests,   apzAix_UnistdPatch, 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 },

  {  zApple_Local_Stdio_Fn_DeprecationName,    zApple_Local_Stdio_Fn_DeprecationList,
     apzApple_Local_Stdio_Fn_DeprecationMachs,
     APPLE_LOCAL_STDIO_FN_DEPRECATION_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aApple_Local_Stdio_Fn_DeprecationTests,   apzApple_Local_Stdio_Fn_DeprecationPatch, 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_AvailabilityinternalName,    zDarwin_AvailabilityinternalList,
     apzDarwin_AvailabilityinternalMachs,
     DARWIN_AVAILABILITYINTERNAL_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aDarwin_AvailabilityinternalTests,   apzDarwin_AvailabilityinternalPatch, 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_Ll_Funcs_AvailName,    zDarwin_Ll_Funcs_AvailList,
     apzDarwin_Ll_Funcs_AvailMachs,
     DARWIN_LL_FUNCS_AVAIL_TEST_CT, FD_MACH_ONLY,
     aDarwin_Ll_Funcs_AvailTests,   apzDarwin_Ll_Funcs_AvailPatch, 0 },

  {  zDarwin_Longjmp_NoreturnName,    zDarwin_Longjmp_NoreturnList,
     apzDarwin_Longjmp_NoreturnMachs,
     DARWIN_LONGJMP_NORETURN_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aDarwin_Longjmp_NoreturnTests,   apzDarwin_Longjmp_NoreturnPatch, 0 },

  {  zDarwin_Os_Trace_1Name,    zDarwin_Os_Trace_1List,
     apzDarwin_Os_Trace_1Machs,
     DARWIN_OS_TRACE_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aDarwin_Os_Trace_1Tests,   apzDarwin_Os_Trace_1Patch, 0 },

  {  zDarwin_Os_Trace_2Name,    zDarwin_Os_Trace_2List,
     apzDarwin_Os_Trace_2Machs,
     DARWIN_OS_TRACE_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aDarwin_Os_Trace_2Tests,   apzDarwin_Os_Trace_2Patch, 0 },

  {  zDarwin_Objc_Runtime_1Name,    zDarwin_Objc_Runtime_1List,
     apzDarwin_Objc_Runtime_1Machs,
     DARWIN_OBJC_RUNTIME_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aDarwin_Objc_Runtime_1Tests,   apzDarwin_Objc_Runtime_1Patch, 0 },

  {  zDarwin_Os_Trace_3Name,    zDarwin_Os_Trace_3List,
     apzDarwin_Os_Trace_3Machs,
     DARWIN_OS_TRACE_3_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aDarwin_Os_Trace_3Tests,   apzDarwin_Os_Trace_3Patch, 0 },

  {  zDarwin_Os_Base_1Name,    zDarwin_Os_Base_1List,
     apzDarwin_Os_Base_1Machs,
     DARWIN_OS_BASE_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aDarwin_Os_Base_1Tests,   apzDarwin_Os_Base_1Patch, 0 },

  {  zDarwin_Dispatch_Object_1Name,    zDarwin_Dispatch_Object_1List,
     apzDarwin_Dispatch_Object_1Machs,
     DARWIN_DISPATCH_OBJECT_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aDarwin_Dispatch_Object_1Tests,   apzDarwin_Dispatch_Object_1Patch, 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 },

  {  zDarwin_Ucred__AtomicName,    zDarwin_Ucred__AtomicList,
     apzDarwin_Ucred__AtomicMachs,
     DARWIN_UCRED__ATOMIC_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aDarwin_Ucred__AtomicTests,   apzDarwin_Ucred__AtomicPatch, 0 },

  {  zDarwin_Flt_Eval_MethodName,    zDarwin_Flt_Eval_MethodList,
     apzDarwin_Flt_Eval_MethodMachs,
     DARWIN_FLT_EVAL_METHOD_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aDarwin_Flt_Eval_MethodTests,   apzDarwin_Flt_Eval_MethodPatch, 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_Cxx_Floatn_1Name,    zGlibc_Cxx_Floatn_1List,
     apzGlibc_Cxx_Floatn_1Machs,
     GLIBC_CXX_FLOATN_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aGlibc_Cxx_Floatn_1Tests,   apzGlibc_Cxx_Floatn_1Patch, 0 },

  {  zGlibc_Cxx_Floatn_2Name,    zGlibc_Cxx_Floatn_2List,
     apzGlibc_Cxx_Floatn_2Machs,
     GLIBC_CXX_FLOATN_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aGlibc_Cxx_Floatn_2Tests,   apzGlibc_Cxx_Floatn_2Patch, 0 },

  {  zGlibc_Cxx_Floatn_3Name,    zGlibc_Cxx_Floatn_3List,
     apzGlibc_Cxx_Floatn_3Machs,
     GLIBC_CXX_FLOATN_3_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aGlibc_Cxx_Floatn_3Tests,   apzGlibc_Cxx_Floatn_3Patch, 0 },

  {  zGlibc_Cxx_Floatn_4Name,    zGlibc_Cxx_Floatn_4List,
     apzGlibc_Cxx_Floatn_4Machs,
     GLIBC_CXX_FLOATN_4_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aGlibc_Cxx_Floatn_4Tests,   apzGlibc_Cxx_Floatn_4Patch, 0 },

  {  zGlibc_Cxx_Floatn_5Name,    zGlibc_Cxx_Floatn_5List,
     apzGlibc_Cxx_Floatn_5Machs,
     GLIBC_CXX_FLOATN_5_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aGlibc_Cxx_Floatn_5Tests,   apzGlibc_Cxx_Floatn_5Patch, 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 },

  {  zHpux_Math_ConstexprName,    zHpux_Math_ConstexprList,
     apzHpux_Math_ConstexprMachs,
     HPUX_MATH_CONSTEXPR_TEST_CT, FD_MACH_ONLY,
     aHpux_Math_ConstexprTests,   apzHpux_Math_ConstexprPatch, 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 },

  {  zHppa_Hpux11_AllocaName,    zHppa_Hpux11_AllocaList,
     apzHppa_Hpux11_AllocaMachs,
     HPPA_HPUX11_ALLOCA_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHppa_Hpux11_AllocaTests,   apzHppa_Hpux11_AllocaPatch, 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_PointerName,    zHpux11_Pthread_PointerList,
     apzHpux11_Pthread_PointerMachs,
     HPUX11_PTHREAD_POINTER_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux11_Pthread_PointerTests,   apzHpux11_Pthread_PointerPatch, 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 },

  {  zHpux_VsscanfName,    zHpux_VsscanfList,
     apzHpux_VsscanfMachs,
     HPUX_VSSCANF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux_VsscanfTests,   apzHpux_VsscanfPatch, 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_C99_Inttypes3Name,    zHpux_C99_Inttypes3List,
     apzHpux_C99_Inttypes3Machs,
     HPUX_C99_INTTYPES3_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux_C99_Inttypes3Tests,   apzHpux_C99_Inttypes3Patch, 0 },

  {  zHpux_C99_Inttypes4Name,    zHpux_C99_Inttypes4List,
     apzHpux_C99_Inttypes4Machs,
     HPUX_C99_INTTYPES4_TEST_CT, FD_MACH_ONLY,
     aHpux_C99_Inttypes4Tests,   apzHpux_C99_Inttypes4Patch, 0 },

  {  zHpux_C99_Inttypes5Name,    zHpux_C99_Inttypes5List,
     apzHpux_C99_Inttypes5Machs,
     HPUX_C99_INTTYPES5_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux_C99_Inttypes5Tests,   apzHpux_C99_Inttypes5Patch, 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_LongjmpName,    zHpux_LongjmpList,
     apzHpux_LongjmpMachs,
     HPUX_LONGJMP_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux_LongjmpTests,   apzHpux_LongjmpPatch, 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_Gets_C11Name,    zSolaris_Gets_C11List,
     apzSolaris_Gets_C11Machs,
     SOLARIS_GETS_C11_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSolaris_Gets_C11Tests,   apzSolaris_Gets_C11Patch, 0 },

  {  zSolaris_Gets_Cxx14Name,    zSolaris_Gets_Cxx14List,
     apzSolaris_Gets_Cxx14Machs,
     SOLARIS_GETS_CXX14_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSolaris_Gets_Cxx14Tests,   apzSolaris_Gets_Cxx14Patch, 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_Math_12Name,    zSolaris_Math_12List,
     apzSolaris_Math_12Machs,
     SOLARIS_MATH_12_TEST_CT, FD_MACH_ONLY,
     aSolaris_Math_12Tests,   apzSolaris_Math_12Patch, 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_Std_Gets_Cxx14Name,    zSolaris_Std_Gets_Cxx14List,
     apzSolaris_Std_Gets_Cxx14Machs,
     SOLARIS_STD_GETS_CXX14_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSolaris_Std_Gets_Cxx14Tests,   apzSolaris_Std_Gets_Cxx14Patch, 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 },

  {  zSolaris_Stdlib_NoreturnName,    zSolaris_Stdlib_NoreturnList,
     apzSolaris_Stdlib_NoreturnMachs,
     SOLARIS_STDLIB_NORETURN_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSolaris_Stdlib_NoreturnTests,   apzSolaris_Stdlib_NoreturnPatch, 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_Math_H_Fp_C99Name,    zVxworks_Math_H_Fp_C99List,
     apzVxworks_Math_H_Fp_C99Machs,
     VXWORKS_MATH_H_FP_C99_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aVxworks_Math_H_Fp_C99Tests,   apzVxworks_Math_H_Fp_C99Patch, 0 },

  {  zVxworks_Posix_MkdirName,    zVxworks_Posix_MkdirList,
     apzVxworks_Posix_MkdirMachs,
     VXWORKS_POSIX_MKDIR_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aVxworks_Posix_MkdirTests,   apzVxworks_Posix_MkdirPatch, 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_Next_YvalsName,    zVxworks_Next_YvalsList,
     apzVxworks_Next_YvalsMachs,
     VXWORKS_NEXT_YVALS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aVxworks_Next_YvalsTests,   apzVxworks_Next_YvalsPatch, 0 },

  {  zVxworks_RegsName,    zVxworks_RegsList,
     apzVxworks_RegsMachs,
     VXWORKS_REGS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aVxworks_RegsTests,   apzVxworks_RegsPatch, 0 },

  {  zVxworks_Posix_OpenName,    zVxworks_Posix_OpenList,
     apzVxworks_Posix_OpenMachs,
     VXWORKS_POSIX_OPEN_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aVxworks_Posix_OpenTests,   apzVxworks_Posix_OpenPatch, 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 },

  {  zVxworks_Iolib_Include_UnistdName,    zVxworks_Iolib_Include_UnistdList,
     apzVxworks_Iolib_Include_UnistdMachs,
     VXWORKS_IOLIB_INCLUDE_UNISTD_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aVxworks_Iolib_Include_UnistdTests,   apzVxworks_Iolib_Include_UnistdPatch, 0 },

  {  zVxworks_Time_H_SyslibName,    zVxworks_Time_H_SyslibList,
     apzVxworks_Time_H_SyslibMachs,
     VXWORKS_TIME_H_SYSLIB_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aVxworks_Time_H_SyslibTests,   apzVxworks_Time_H_SyslibPatch, 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 }
};
