/*  -*- buffer-read-only: t -*- vi: set ro:
 *
 * DO NOT EDIT THIS FILE   (fixincl.x)
 *
 * It has been AutoGen-ed  April 16, 2019 at 09:32:25 AM by AutoGen 5.17.4
 * From the definitions    inclhack.def
 * and the template file   fixincl
 */
/* DO NOT SVN-MERGE THIS FILE, EITHER Tue Apr 16 09:32:25 IST 2019
 *
 * 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 252 fixup descriptions.
 *
 * See README for more information.
 *
 *  inclhack copyright (c) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
 *                         2006, 2007, 2008
 *  The Free Software Foundation, Inc.
 *
 *  inclhack is free software: you can redistribute it and/or modify it
 *  under the terms of the GNU General Public License as published by the
 *  Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *  
 *  inclhack is distributed in the hope that it will be useful, but
 *  WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 *  See the GNU General Public License for more details.
 *  
 *  You should have received a copy of the GNU General Public License along
 *  with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
#ifndef SED_PROGRAM
#define SED_PROGRAM "/usr/bin/sed"
#endif
static char const sed_cmd_z[] = SED_PROGRAM;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/*
 *  Fix Command Arguments for Aab_Vxworks_Assert
 */
static const char* apzAab_Vxworks_AssertPatch[] = {
"#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[] =
       "#ifdef __cplusplus";

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aix_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 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[] = {
        "*-*-darwin7.9*",
        (const char*)NULL };

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

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

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

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

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

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

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

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

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

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

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

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

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

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Darwin_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_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_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 Dec_Intern_Asm fix
 */
tSCC zDec_Intern_AsmName[] =
     "dec_intern_asm";

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of 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_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";

#define    SOLARIS_MATH_12_TEST_CT  1
static tTestDesc aSolaris_Math_12Tests[] = {
  { 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_Mkdir_Macro fix
 */
tSCC zVxworks_Mkdir_MacroName[] =
     "vxworks_mkdir_macro";

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

/*
 *  Fix Command Arguments for Vxworks_Mkdir_Macro
 */
static const char* apzVxworks_Mkdir_MacroPatch[] = {
    "format",
    "%0\n\
#define mkdir(dir, ...) ((void)0, ##__VA_ARGS__, (mkdir)(dir))\n",
    "extern[\t ]+STATUS[\t ]+mkdir[\t ]*\\([\t ]*const[\t ]+char[\t ]*\\*[\t ]*(|[_[:alpha:]][_[:alnum:]]*)\\)[\t ]*;",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Vxworks_Needs_Vxtypes fix
 */
tSCC zVxworks_Needs_VxtypesName[] =
     "vxworks_needs_vxtypes";

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

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zVxworks_Needs_VxtypesSelect0[] =
       "uint_t([ \t]+_clocks_per_sec)";

#define    VXWORKS_NEEDS_VXTYPES_TEST_CT  1
static tTestDesc aVxworks_Needs_VxtypesTests[] = {
  { TT_EGREP,    zVxworks_Needs_VxtypesSelect0, (regex_t*)NULL }, };

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

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Vxworks_Needs_Vxworks fix
 */
tSCC zVxworks_Needs_VxworksName[] =
     "vxworks_needs_vxworks";

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

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

/*
 *  perform the 'test' shell command - do fix on success
 */
tSCC zVxworks_Needs_VxworksTest0[] =
       " -r types/vxTypesOld.h";
tSCC zVxworks_Needs_VxworksTest1[] =
       " -n \"`egrep '#include' $file`\"";
tSCC zVxworks_Needs_VxworksTest2[] =
       " -n \"`egrep ULONG $file`\"";

#define    VXWORKS_NEEDS_VXWORKS_TEST_CT  4
static tTestDesc aVxworks_Needs_VxworksTests[] = {
  { TT_TEST,     zVxworks_Needs_VxworksTest0,   0 /* unused */ },
  { TT_TEST,     zVxworks_Needs_VxworksTest1,   0 /* unused */ },
  { TT_TEST,     zVxworks_Needs_VxworksTest2,   0 /* unused */ },
  { TT_EGREP,    zVxworks_Needs_VxworksSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Vxworks_Needs_Vxworks
 */
static const char* apzVxworks_Needs_VxworksPatch[] = { sed_cmd_z,
    "-e", "/#[ \t]define[ \t][ \t]*__INCstath/a\\\n\
#include <types/vxTypesOld.h>\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Vxworks_Regs fix
 */
tSCC zVxworks_RegsName[] =
     "vxworks_regs";

/*
 *  File name selection pattern
 */
#define zVxworks_RegsList (char*)NULL
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzVxworks_RegsMachs[] = {
        "*-*-vxworks*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zVxworks_RegsSelect0[] =
       "#[\t ]*include[\t ]+[<\"]regs.h[>\"]";

#define    VXWORKS_REGS_TEST_CT  1
static tTestDesc aVxworks_RegsTests[] = {
  { TT_EGREP,    zVxworks_RegsSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Vxworks_Regs
 */
static const char* apzVxworks_RegsPatch[] = {
    "format",
    "#include <arch/../regs.h>",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Vxworks_Time fix
 */
tSCC zVxworks_TimeName[] =
     "vxworks_time";

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

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

/*
 *  perform the 'test' shell command - do fix on success
 */
tSCC zVxworks_TimeTest0[] =
       " -r vxWorks.h";

#define    VXWORKS_TIME_TEST_CT  2
static tTestDesc aVxworks_TimeTests[] = {
  { TT_TEST,     zVxworks_TimeTest0,   0 /* unused */ },
  { TT_EGREP,    zVxworks_TimeSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Vxworks_Time
 */
static const char* apzVxworks_TimePatch[] = {
    "format",
    "#ifndef __gcc_VOIDFUNCPTR_defined\n\
#ifdef __cplusplus\n\
typedef void (*__gcc_VOIDFUNCPTR) (...);\n\
#else\n\
typedef void (*__gcc_VOIDFUNCPTR) ();\n\
#endif\n\
#define __gcc_VOIDFUNCPTR_defined\n\
#endif\n\
#define VOIDFUNCPTR __gcc_VOIDFUNCPTR",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Vxworks_Write_Const fix
 */
tSCC zVxworks_Write_ConstName[] =
     "vxworks_write_const";

/*
 *  File name selection pattern
 */
tSCC zVxworks_Write_ConstList[] =
  "ioLib.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzVxworks_Write_ConstMachs[] = {
        "*-*-vxworks*",
        (const char*)NULL };
#define VXWORKS_WRITE_CONST_TEST_CT  0
#define aVxworks_Write_ConstTests   (tTestDesc*)NULL

/*
 *  Fix Command Arguments for Vxworks_Write_Const
 */
static const char* apzVxworks_Write_ConstPatch[] = {
    "format",
    "extern int  write (int, const char*, size_t);",
    "extern[\t ]+int[\t ]+write[\t ]*\\([\t ]*int[\t ]*,[\t ]*char[\t ]*\\*[\t ]*,[\t ]*size_t[\t ]*\\)[\t ]*;",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of 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 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          290
#define MACH_LIST_SIZE_LIMIT 187
#define FIX_COUNT            252

/*
 *  Enumerate the fixes
 */
typedef enum {
    AAB_AIX_STDIO_FIXIDX,
    AAB_AIX_FCNTL_FIXIDX,
    AAB_DARWIN7_9_LONG_DOUBLE_FUNCS_FIXIDX,
    AAB_FD_ZERO_ASM_POSIX_TYPES_H_FIXIDX,
    AAB_FD_ZERO_GNU_TYPES_H_FIXIDX,
    AAB_FD_ZERO_SELECTBITS_H_FIXIDX,
    AAB_SOLARIS_SYS_VARARGS_H_FIXIDX,
    AAB_SUN_MEMCPY_FIXIDX,
    AAB_VXWORKS_ASSERT_FIXIDX,
    AAB_VXWORKS_REGS_VXTYPES_FIXIDX,
    AAB_VXWORKS_UNISTD_FIXIDX,
    AIX_ASSERT_FIXIDX,
    AIX_COMPLEX_FIXIDX,
    AIX_EXTERNC_FIXIDX,
    AIX_EXTERNCPP1_FIXIDX,
    AIX_EXTERNCPP2_FIXIDX,
    AIX_MALLOC_FIXIDX,
    AIX_NET_IF_ARP_FIXIDX,
    AIX_NULL_FIXIDX,
    AIX_ONCE_INIT_1_FIXIDX,
    AIX_ONCE_INIT_2_FIXIDX,
    AIX_MUTEX_INITIALIZER_1_FIXIDX,
    AIX_COND_INITIALIZER_1_FIXIDX,
    AIX_RWLOCK_INITIALIZER_1_FIXIDX,
    AIX_PTHREAD_FIXIDX,
    AIX_STDINT_1_FIXIDX,
    AIX_STDINT_2_FIXIDX,
    AIX_STDINT_3_FIXIDX,
    AIX_STDINT_4_FIXIDX,
    AIX_STDINT_5_FIXIDX,
    AIX_STDIO_INLINE_FIXIDX,
    AIX_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,
    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_LONGJMP_NORETURN_FIXIDX,
    DARWIN_OS_TRACE_1_FIXIDX,
    DARWIN_OS_TRACE_2_FIXIDX,
    DARWIN_OS_TRACE_3_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,
    DEC_INTERN_ASM_FIXIDX,
    DJGPP_WCHAR_H_FIXIDX,
    ECD_CURSOR_FIXIDX,
    FERAISEEXCEPT_NOSSE_DIVBYZERO_FIXIDX,
    FERAISEEXCEPT_NOSSE_INVALID_FIXIDX,
    FREEBSD_GCC3_BREAKAGE_FIXIDX,
    FREEBSD_GCC4_BREAKAGE_FIXIDX,
    GLIBC_C99_INLINE_1_FIXIDX,
    GLIBC_C99_INLINE_1A_FIXIDX,
    GLIBC_C99_INLINE_2_FIXIDX,
    GLIBC_C99_INLINE_3_FIXIDX,
    GLIBC_C99_INLINE_4_FIXIDX,
    GLIBC_MUTEX_INIT_FIXIDX,
    GLIBC_STDINT_FIXIDX,
    GLIBC_STRNCPY_FIXIDX,
    GLIBC_TGMATH_FIXIDX,
    GNU_TYPES_FIXIDX,
    HP_INLINE_FIXIDX,
    HP_SYSFILE_FIXIDX,
    HPPA_HPUX_FP_MACROS_FIXIDX,
    HPUX10_CPP_POW_INLINE_FIXIDX,
    HPUX11_CPP_POW_INLINE_FIXIDX,
    HPUX10_CTYPE_DECLARATIONS1_FIXIDX,
    HPUX10_CTYPE_DECLARATIONS2_FIXIDX,
    HPUX10_STDIO_DECLARATIONS_FIXIDX,
    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_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_MKDIR_MACRO_FIXIDX,
    VXWORKS_NEEDS_VXTYPES_FIXIDX,
    VXWORKS_NEEDS_VXWORKS_FIXIDX,
    VXWORKS_REGS_FIXIDX,
    VXWORKS_TIME_FIXIDX,
    VXWORKS_WRITE_CONST_FIXIDX,
    VXWORKS_IOLIB_INCLUDE_UNISTD_FIXIDX,
    X11_CLASS_FIXIDX,
    X11_CLASS_USAGE_FIXIDX,
    X11_NEW_FIXIDX,
    X11_SPRINTF_FIXIDX
} t_fixinc_idx;

tFixDesc fixDescList[ FIX_COUNT ] = {
  {  zAab_Aix_StdioName,    zAab_Aix_StdioList,
     apzAab_Aix_StdioMachs,
     AAB_AIX_STDIO_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAab_Aix_StdioTests,   apzAab_Aix_StdioPatch, 0 },

  {  zAab_Aix_FcntlName,    zAab_Aix_FcntlList,
     apzAab_Aix_FcntlMachs,
     AAB_AIX_FCNTL_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAab_Aix_FcntlTests,   apzAab_Aix_FcntlPatch, 0 },

  {  zAab_Darwin7_9_Long_Double_FuncsName,    zAab_Darwin7_9_Long_Double_FuncsList,
     apzAab_Darwin7_9_Long_Double_FuncsMachs,
     AAB_DARWIN7_9_LONG_DOUBLE_FUNCS_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
     aAab_Darwin7_9_Long_Double_FuncsTests,   apzAab_Darwin7_9_Long_Double_FuncsPatch, 0 },

  {  zAab_Fd_Zero_Asm_Posix_Types_HName,    zAab_Fd_Zero_Asm_Posix_Types_HList,
     apzAab_Fd_Zero_Asm_Posix_Types_HMachs,
     AAB_FD_ZERO_ASM_POSIX_TYPES_H_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
     aAab_Fd_Zero_Asm_Posix_Types_HTests,   apzAab_Fd_Zero_Asm_Posix_Types_HPatch, 0 },

  {  zAab_Fd_Zero_Gnu_Types_HName,    zAab_Fd_Zero_Gnu_Types_HList,
     apzAab_Fd_Zero_Gnu_Types_HMachs,
     AAB_FD_ZERO_GNU_TYPES_H_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
     aAab_Fd_Zero_Gnu_Types_HTests,   apzAab_Fd_Zero_Gnu_Types_HPatch, 0 },

  {  zAab_Fd_Zero_Selectbits_HName,    zAab_Fd_Zero_Selectbits_HList,
     apzAab_Fd_Zero_Selectbits_HMachs,
     AAB_FD_ZERO_SELECTBITS_H_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
     aAab_Fd_Zero_Selectbits_HTests,   apzAab_Fd_Zero_Selectbits_HPatch, 0 },

  {  zAab_Solaris_Sys_Varargs_HName,    zAab_Solaris_Sys_Varargs_HList,
     apzAab_Solaris_Sys_Varargs_HMachs,
     AAB_SOLARIS_SYS_VARARGS_H_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
     aAab_Solaris_Sys_Varargs_HTests,   apzAab_Solaris_Sys_Varargs_HPatch, 0 },

  {  zAab_Sun_MemcpyName,    zAab_Sun_MemcpyList,
     apzAab_Sun_MemcpyMachs,
     AAB_SUN_MEMCPY_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
     aAab_Sun_MemcpyTests,   apzAab_Sun_MemcpyPatch, 0 },

  {  zAab_Vxworks_AssertName,    zAab_Vxworks_AssertList,
     apzAab_Vxworks_AssertMachs,
     AAB_VXWORKS_ASSERT_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
     aAab_Vxworks_AssertTests,   apzAab_Vxworks_AssertPatch, 0 },

  {  zAab_Vxworks_Regs_VxtypesName,    zAab_Vxworks_Regs_VxtypesList,
     apzAab_Vxworks_Regs_VxtypesMachs,
     AAB_VXWORKS_REGS_VXTYPES_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
     aAab_Vxworks_Regs_VxtypesTests,   apzAab_Vxworks_Regs_VxtypesPatch, 0 },

  {  zAab_Vxworks_UnistdName,    zAab_Vxworks_UnistdList,
     apzAab_Vxworks_UnistdMachs,
     AAB_VXWORKS_UNISTD_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
     aAab_Vxworks_UnistdTests,   apzAab_Vxworks_UnistdPatch, 0 },

  {  zAix_AssertName,    zAix_AssertList,
     apzAix_AssertMachs,
     AIX_ASSERT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_AssertTests,   apzAix_AssertPatch, 0 },

  {  zAix_ComplexName,    zAix_ComplexList,
     apzAix_ComplexMachs,
     AIX_COMPLEX_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_ComplexTests,   apzAix_ComplexPatch, 0 },

  {  zAix_ExterncName,    zAix_ExterncList,
     apzAix_ExterncMachs,
     AIX_EXTERNC_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_ExterncTests,   apzAix_ExterncPatch, 0 },

  {  zAix_Externcpp1Name,    zAix_Externcpp1List,
     apzAix_Externcpp1Machs,
     AIX_EXTERNCPP1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_Externcpp1Tests,   apzAix_Externcpp1Patch, 0 },

  {  zAix_Externcpp2Name,    zAix_Externcpp2List,
     apzAix_Externcpp2Machs,
     AIX_EXTERNCPP2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_Externcpp2Tests,   apzAix_Externcpp2Patch, 0 },

  {  zAix_MallocName,    zAix_MallocList,
     apzAix_MallocMachs,
     AIX_MALLOC_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_MallocTests,   apzAix_MallocPatch, 0 },

  {  zAix_Net_If_ArpName,    zAix_Net_If_ArpList,
     apzAix_Net_If_ArpMachs,
     AIX_NET_IF_ARP_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_Net_If_ArpTests,   apzAix_Net_If_ArpPatch, 0 },

  {  zAix_NullName,    zAix_NullList,
     apzAix_NullMachs,
     AIX_NULL_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_NullTests,   apzAix_NullPatch, 0 },

  {  zAix_Once_Init_1Name,    zAix_Once_Init_1List,
     apzAix_Once_Init_1Machs,
     AIX_ONCE_INIT_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_Once_Init_1Tests,   apzAix_Once_Init_1Patch, 0 },

  {  zAix_Once_Init_2Name,    zAix_Once_Init_2List,
     apzAix_Once_Init_2Machs,
     AIX_ONCE_INIT_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_Once_Init_2Tests,   apzAix_Once_Init_2Patch, 0 },

  {  zAix_Mutex_Initializer_1Name,    zAix_Mutex_Initializer_1List,
     apzAix_Mutex_Initializer_1Machs,
     AIX_MUTEX_INITIALIZER_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_Mutex_Initializer_1Tests,   apzAix_Mutex_Initializer_1Patch, 0 },

  {  zAix_Cond_Initializer_1Name,    zAix_Cond_Initializer_1List,
     apzAix_Cond_Initializer_1Machs,
     AIX_COND_INITIALIZER_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_Cond_Initializer_1Tests,   apzAix_Cond_Initializer_1Patch, 0 },

  {  zAix_Rwlock_Initializer_1Name,    zAix_Rwlock_Initializer_1List,
     apzAix_Rwlock_Initializer_1Machs,
     AIX_RWLOCK_INITIALIZER_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_Rwlock_Initializer_1Tests,   apzAix_Rwlock_Initializer_1Patch, 0 },

  {  zAix_PthreadName,    zAix_PthreadList,
     apzAix_PthreadMachs,
     AIX_PTHREAD_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_PthreadTests,   apzAix_PthreadPatch, 0 },

  {  zAix_Stdint_1Name,    zAix_Stdint_1List,
     apzAix_Stdint_1Machs,
     AIX_STDINT_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_Stdint_1Tests,   apzAix_Stdint_1Patch, 0 },

  {  zAix_Stdint_2Name,    zAix_Stdint_2List,
     apzAix_Stdint_2Machs,
     AIX_STDINT_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_Stdint_2Tests,   apzAix_Stdint_2Patch, 0 },

  {  zAix_Stdint_3Name,    zAix_Stdint_3List,
     apzAix_Stdint_3Machs,
     AIX_STDINT_3_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_Stdint_3Tests,   apzAix_Stdint_3Patch, 0 },

  {  zAix_Stdint_4Name,    zAix_Stdint_4List,
     apzAix_Stdint_4Machs,
     AIX_STDINT_4_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_Stdint_4Tests,   apzAix_Stdint_4Patch, 0 },

  {  zAix_Stdint_5Name,    zAix_Stdint_5List,
     apzAix_Stdint_5Machs,
     AIX_STDINT_5_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_Stdint_5Tests,   apzAix_Stdint_5Patch, 0 },

  {  zAix_Stdio_InlineName,    zAix_Stdio_InlineList,
     apzAix_Stdio_InlineMachs,
     AIX_STDIO_INLINE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_Stdio_InlineTests,   apzAix_Stdio_InlinePatch, 0 },

  {  zAix_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 },

  {  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_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_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_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 },

  {  zDec_Intern_AsmName,    zDec_Intern_AsmList,
     apzDec_Intern_AsmMachs,
     DEC_INTERN_ASM_TEST_CT, FD_MACH_ONLY,
     aDec_Intern_AsmTests,   apzDec_Intern_AsmPatch, 0 },

  {  zDjgpp_Wchar_HName,    zDjgpp_Wchar_HList,
     apzDjgpp_Wchar_HMachs,
     DJGPP_WCHAR_H_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aDjgpp_Wchar_HTests,   apzDjgpp_Wchar_HPatch, 0 },

  {  zEcd_CursorName,    zEcd_CursorList,
     apzEcd_CursorMachs,
     ECD_CURSOR_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aEcd_CursorTests,   apzEcd_CursorPatch, 0 },

  {  zFeraiseexcept_Nosse_DivbyzeroName,    zFeraiseexcept_Nosse_DivbyzeroList,
     apzFeraiseexcept_Nosse_DivbyzeroMachs,
     FERAISEEXCEPT_NOSSE_DIVBYZERO_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aFeraiseexcept_Nosse_DivbyzeroTests,   apzFeraiseexcept_Nosse_DivbyzeroPatch, 0 },

  {  zFeraiseexcept_Nosse_InvalidName,    zFeraiseexcept_Nosse_InvalidList,
     apzFeraiseexcept_Nosse_InvalidMachs,
     FERAISEEXCEPT_NOSSE_INVALID_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aFeraiseexcept_Nosse_InvalidTests,   apzFeraiseexcept_Nosse_InvalidPatch, 0 },

  {  zFreebsd_Gcc3_BreakageName,    zFreebsd_Gcc3_BreakageList,
     apzFreebsd_Gcc3_BreakageMachs,
     FREEBSD_GCC3_BREAKAGE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aFreebsd_Gcc3_BreakageTests,   apzFreebsd_Gcc3_BreakagePatch, 0 },

  {  zFreebsd_Gcc4_BreakageName,    zFreebsd_Gcc4_BreakageList,
     apzFreebsd_Gcc4_BreakageMachs,
     FREEBSD_GCC4_BREAKAGE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aFreebsd_Gcc4_BreakageTests,   apzFreebsd_Gcc4_BreakagePatch, 0 },

  {  zGlibc_C99_Inline_1Name,    zGlibc_C99_Inline_1List,
     apzGlibc_C99_Inline_1Machs,
     GLIBC_C99_INLINE_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aGlibc_C99_Inline_1Tests,   apzGlibc_C99_Inline_1Patch, 0 },

  {  zGlibc_C99_Inline_1aName,    zGlibc_C99_Inline_1aList,
     apzGlibc_C99_Inline_1aMachs,
     GLIBC_C99_INLINE_1A_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aGlibc_C99_Inline_1aTests,   apzGlibc_C99_Inline_1aPatch, 0 },

  {  zGlibc_C99_Inline_2Name,    zGlibc_C99_Inline_2List,
     apzGlibc_C99_Inline_2Machs,
     GLIBC_C99_INLINE_2_TEST_CT, FD_MACH_ONLY,
     aGlibc_C99_Inline_2Tests,   apzGlibc_C99_Inline_2Patch, 0 },

  {  zGlibc_C99_Inline_3Name,    zGlibc_C99_Inline_3List,
     apzGlibc_C99_Inline_3Machs,
     GLIBC_C99_INLINE_3_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aGlibc_C99_Inline_3Tests,   apzGlibc_C99_Inline_3Patch, 0 },

  {  zGlibc_C99_Inline_4Name,    zGlibc_C99_Inline_4List,
     apzGlibc_C99_Inline_4Machs,
     GLIBC_C99_INLINE_4_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aGlibc_C99_Inline_4Tests,   apzGlibc_C99_Inline_4Patch, 0 },

  {  zGlibc_Mutex_InitName,    zGlibc_Mutex_InitList,
     apzGlibc_Mutex_InitMachs,
     GLIBC_MUTEX_INIT_TEST_CT, FD_MACH_ONLY,
     aGlibc_Mutex_InitTests,   apzGlibc_Mutex_InitPatch, 0 },

  {  zGlibc_StdintName,    zGlibc_StdintList,
     apzGlibc_StdintMachs,
     GLIBC_STDINT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aGlibc_StdintTests,   apzGlibc_StdintPatch, 0 },

  {  zGlibc_StrncpyName,    zGlibc_StrncpyList,
     apzGlibc_StrncpyMachs,
     GLIBC_STRNCPY_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aGlibc_StrncpyTests,   apzGlibc_StrncpyPatch, 0 },

  {  zGlibc_TgmathName,    zGlibc_TgmathList,
     apzGlibc_TgmathMachs,
     GLIBC_TGMATH_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aGlibc_TgmathTests,   apzGlibc_TgmathPatch, 0 },

  {  zGnu_TypesName,    zGnu_TypesList,
     apzGnu_TypesMachs,
     GNU_TYPES_TEST_CT, FD_MACH_IFNOT | FD_SUBROUTINE,
     aGnu_TypesTests,   apzGnu_TypesPatch, 0 },

  {  zHp_InlineName,    zHp_InlineList,
     apzHp_InlineMachs,
     HP_INLINE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHp_InlineTests,   apzHp_InlinePatch, 0 },

  {  zHp_SysfileName,    zHp_SysfileList,
     apzHp_SysfileMachs,
     HP_SYSFILE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHp_SysfileTests,   apzHp_SysfilePatch, 0 },

  {  zHppa_Hpux_Fp_MacrosName,    zHppa_Hpux_Fp_MacrosList,
     apzHppa_Hpux_Fp_MacrosMachs,
     HPPA_HPUX_FP_MACROS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHppa_Hpux_Fp_MacrosTests,   apzHppa_Hpux_Fp_MacrosPatch, 0 },

  {  zHpux10_Cpp_Pow_InlineName,    zHpux10_Cpp_Pow_InlineList,
     apzHpux10_Cpp_Pow_InlineMachs,
     HPUX10_CPP_POW_INLINE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux10_Cpp_Pow_InlineTests,   apzHpux10_Cpp_Pow_InlinePatch, 0 },

  {  zHpux11_Cpp_Pow_InlineName,    zHpux11_Cpp_Pow_InlineList,
     apzHpux11_Cpp_Pow_InlineMachs,
     HPUX11_CPP_POW_INLINE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux11_Cpp_Pow_InlineTests,   apzHpux11_Cpp_Pow_InlinePatch, 0 },

  {  zHpux10_Ctype_Declarations1Name,    zHpux10_Ctype_Declarations1List,
     apzHpux10_Ctype_Declarations1Machs,
     HPUX10_CTYPE_DECLARATIONS1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux10_Ctype_Declarations1Tests,   apzHpux10_Ctype_Declarations1Patch, 0 },

  {  zHpux10_Ctype_Declarations2Name,    zHpux10_Ctype_Declarations2List,
     apzHpux10_Ctype_Declarations2Machs,
     HPUX10_CTYPE_DECLARATIONS2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux10_Ctype_Declarations2Tests,   apzHpux10_Ctype_Declarations2Patch, 0 },

  {  zHpux10_Stdio_DeclarationsName,    zHpux10_Stdio_DeclarationsList,
     apzHpux10_Stdio_DeclarationsMachs,
     HPUX10_STDIO_DECLARATIONS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux10_Stdio_DeclarationsTests,   apzHpux10_Stdio_DeclarationsPatch, 0 },

  {  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_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_Mkdir_MacroName,    zVxworks_Mkdir_MacroList,
     apzVxworks_Mkdir_MacroMachs,
     VXWORKS_MKDIR_MACRO_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aVxworks_Mkdir_MacroTests,   apzVxworks_Mkdir_MacroPatch, 0 },

  {  zVxworks_Needs_VxtypesName,    zVxworks_Needs_VxtypesList,
     apzVxworks_Needs_VxtypesMachs,
     VXWORKS_NEEDS_VXTYPES_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aVxworks_Needs_VxtypesTests,   apzVxworks_Needs_VxtypesPatch, 0 },

  {  zVxworks_Needs_VxworksName,    zVxworks_Needs_VxworksList,
     apzVxworks_Needs_VxworksMachs,
     VXWORKS_NEEDS_VXWORKS_TEST_CT, FD_MACH_ONLY,
     aVxworks_Needs_VxworksTests,   apzVxworks_Needs_VxworksPatch, 0 },

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

  {  zVxworks_TimeName,    zVxworks_TimeList,
     apzVxworks_TimeMachs,
     VXWORKS_TIME_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aVxworks_TimeTests,   apzVxworks_TimePatch, 0 },

  {  zVxworks_Write_ConstName,    zVxworks_Write_ConstList,
     apzVxworks_Write_ConstMachs,
     VXWORKS_WRITE_CONST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aVxworks_Write_ConstTests,   apzVxworks_Write_ConstPatch, 0 },

  {  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 },

  {  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 }
};
