/*  -*- buffer-read-only: t -*- vi: set ro:
 *
 * DO NOT EDIT THIS FILE   (fixincl.x)
 *
 * It has been AutoGen-ed  May 11, 2019 at 03:09:50 PM by AutoGen 5.17.4
 * From the definitions    inclhack.def
 * and the template file   fixincl
 */
/* DO NOT SVN-MERGE THIS FILE, EITHER Sat May 11 15:09:50 BST 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 }
};
