OSDN Git Service

emit initial value for all fields
[pf3gnuchains/gcc-fork.git] / gcc / fixinc / fixincl.tpl
index afdd131..5b6e054 100644 (file)
@@ -1,5 +1,5 @@
 [= autogen template -*- Mode: C -*-
-x =]
+x=fixincl.x =]
 /*
  *  DO NOT EDIT THIS FILE - it has been generated
  *
@@ -11,18 +11,27 @@ x =]
  *
  * See README-fixinc for more information.
  *
- *  inclhack copyright (c) [=_eval "date +%Y" _shell
                               =] The Free Software Foundation, Inc.
+ *  inclhack copyright (c) 1998, 1999, 2000
 The Free Software Foundation, Inc.
  *
 [=_eval inclhack "# *  " _gpl=]
- *[=_EVAL "re_ct=0" _shell=][=
+ */
+[= _SETENV re_ct 0 =][= _SETENV max_mach 0 =][=
 
 _FOR fix =]
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
  *
- *  Description [=_eval _index 1 + "#%3d -" _printf=] [=hackname _Cap=] fix
- */
+ *  Description of [=hackname _cap=] fix
+ */[=
+
+# Note that this is not just for debugging purposes, but in case
+  some C fix wishes to refer to the regexps it is paired with.
+  See commentary at the top of fixfixes.c.
+=]
+#define [=hackname _up #_FIXIDX + #%-32s _printf=] [=_eval _index=]
 tSCC z[=hackname _cap=]Name[] =
-     [=hackname _cap _krstr=];
+     [=hackname _krstr=];
+
 /*
  *  File name selection pattern
  */[=
@@ -40,28 +49,21 @@ tSCC z[=hackname _cap=]List[] =
 
   _IF mach _exist=]
 tSCC* apz[=hackname _cap=]Machs[] = {[=
+    _SETENV this_mach 0 =][=
+
     _FOR mach =]
         [=mach _krstr=],[=
-    /mach=]
+      _SETENV this_mach mach _len this_mach _env _val 5 + +
+      =][= /mach=]
         (const char*)NULL };[=
 
+    _SETENV max_mach _mark this_mach _env _val max_mach _env _val _max =][=
+
   _ELSE =]
 #define apz[=hackname _cap=]Machs (const char**)NULL[=
   _ENDIF "files _exist" =][=
 
-  _IF exesel _exist=]
-
-/*
- *  content selection pattern - do fix if pattern found
- *  This is a special pattern that not all egrep commands
- *  are capable of coping with.  We use the GNU library, tho :)
- */[=
-    _FOR exesel =]
-tSCC z[=hackname _cap=]Select[=_eval _index=][] =
-       [=exesel _krstr=];[=
-    /exesel =][=
-
-  _ELIF select _exist=]
+  _IF select _exist=]
 
 /*
  *  content selection pattern - do fix if pattern found
@@ -94,95 +96,110 @@ tSCC z[=hackname _cap=]Test[=_eval _index=][] =
     /test =][=
   _ENDIF =][=
 
+  _IF c_test _exist=]
+
+/*
+ *  perform the C function call test
+ */[=
+    _FOR c_test =]
+tSCC z[=hackname _cap=]FTst[=_eval _index=][] = "[=c_test=]";[=
+    /c_test =][=
+  _ENDIF =][=
+
 
 #  Build the array of test descriptions for this fix: =][=
 
-  _IF exesel       _exist
-      select       _exist |
-      bypass       _exist |
-      test         _exist |
+  _IF select  _exist
+      bypass  _exist |
+      test    _exist |
+      c_test  _exist |
 =]
 
 #define    [=hackname _up =]_TEST_CT  [=
-    _IF exesel _exist =][=
-       _eval exesel       _count
-            bypass       _count +
-            test         _count + =][=
-    _ELSE =][=
        _eval select       _count
-            bypass       _count +
-            test         _count + =][=
-    _ENDIF =]
-#define    [=hackname _up =]_RE_CT    [=
-    _IF exesel _exist =][=
-       _eval exesel _count bypass _count
-             "#2$ct=`expr %d + %d` ; re_ct=`expr $ct + $re_ct` ; echo $ct"
-             _printf _shell =][=
-    _ELSE =][=
-       _eval select _count bypass _count
-             "#2$ct=`expr %d + %d` ; re_ct=`expr $ct + $re_ct` ; echo $ct"
-             _printf _shell =][=
-    _ENDIF =]
-tTestDesc a[=hackname _cap=]Tests[] = {[=
+             bypass       _count +
+             test         _count + 
+             c_test       _count + =][=
+_SETENV re_ct
+       re_ct _env _val
+       select _count +
+       bypass _count + =]
+static tTestDesc a[=hackname _cap=]Tests[] = {[=
 
     _FOR test =]
-  { TT_TEST,   z[=hackname _cap=]Test[=_eval _index=],     0 /* unused */ },[=
+  { TT_TEST,     z[=hackname _cap=]Test[=_eval _index=],   0 /* unused */ },[=
     /test =][=
 
+    _FOR c_test =]
+  { TT_FUNCTION, z[=hackname _cap=]FTst[=_eval _index=],   0 /* unused */ },[=
+    /c_test =][=
+
     _FOR bypass =]
-  { TT_NEGREP, z[=hackname _cap=]Bypass[=_eval _index=],   (regex_t*)NULL },[=
+  { TT_NEGREP,   z[=hackname _cap=]Bypass[=_eval _index=], (regex_t*)NULL },[=
     /bypass =][=
 
-    #  IF there is an exesel, then use that (those) selection
-          expressions, instead of the regular select expressions
-    =][=
-    _IF exesel _exist =][=
-      _FOR exesel =]
-  { TT_EGREP,  z[=hackname _cap=]Select[=_eval _index=],   (regex_t*)NULL },[=
-      /exesel =][=
-
-    _ELSE =][=
       _FOR select =]
-  { TT_EGREP,  z[=hackname _cap=]Select[=_eval _index=],   (regex_t*)NULL },[=
-      /select =][=
-    _ENDIF =] };[=
+  { TT_EGREP,    z[=hackname _cap=]Select[=_eval _index=], (regex_t*)NULL },[=
+      /select =] };[=
   _ELSE =]
 #define [=hackname _up=]_TEST_CT  0
-#define [=hackname _up=]_RE_CT    0
 #define a[=hackname _cap=]Tests   (tTestDesc*)NULL[=
   _ENDIF =]
 
 /*
  *  Fix Command Arguments for [=hackname _cap=]
  */
-const char* apz[=hackname _cap=]Patch[] = {[=
-    _IF   sed         _exist =] "sed"[=_FOR sed=],
-    "-e", [=sed _krstr=][=/sed=][=
+static const char* apz[=hackname _cap=]Patch[] = {[=
+    _IF   sed         _exist =] "sed"[=
+      _FOR sed=],
+    "-e", [=sed _krstr=][=
+      /sed=],[=
+
     _ELIF shell       _exist =] "sh", "-c",
-    [=shell _krstr=][=
-    _ENDIF=],
+    [=shell _krstr=],[=
+
+    _ELIF c_fix _exist =]
+    [=
+      c_fix _krstr=],[=
+
+      _FOR c_fix_arg =]
+    [=c_fix_arg _krstr=],[=
+      /c_fix_arg =][=
+
+    _ELIF replace _len =]
+[=replace _krstr=],[=
+
+    _ENDIF=]
     (char*)NULL };
+[=/fix=]
 
-/* * * * * * * * * * * * * * * * * * * * * * * * * *[=
-/fix=]
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
  *
  *  List of all fixes
- */
-#define  REGEX_COUNT  [=_eval "echo $re_ct" _shell =]
-#define  FIX_COUNT    [=_eval fix _count =]
+ */[=
+#  as of this writing, 49 bytes are needed by the case statement format.
+   We also must allow for the size of the target machine machine name.
+   This allows for a 79 byte machine name.  Better be enough.
+=]
+#define REGEX_COUNT          [= _eval re_ct _env =]
+#define MACH_LIST_SIZE_LIMIT [= _eval max_mach _env _val 128 + =]
+#define FIX_COUNT            [= _eval fix _count =]
+
 tFixDesc fixDescList[ FIX_COUNT ] = {[=
 
 
 _FOR fix ",\n" =]
   {  z[=hackname _cap=]Name,    z[=hackname _cap=]List,
-     apz[=hackname _cap=]Machs, (regex_t*)NULL,
+     apz[=hackname _cap=]Machs,
      [=hackname  _up=]_TEST_CT, [=
        _IF not_machine _exist =]FD_MACH_IFNOT[=
        _ELSE                  =]FD_MACH_ONLY[=
        _ENDIF =][=
-       _IF shell       _exist =] | FD_SHELL_SCRIPT[=
+       _IF    shell    _exist =] | FD_SHELL_SCRIPT[=
+       _ELIF  c_fix    _exist =] | FD_SUBROUTINE[=
+       _ELIF  replace  _exist =] | FD_REPLACEMENT[=
        _ENDIF =],
-     a[=hackname _cap=]Tests,   apz[=hackname _cap=]Patch }[=
+     a[=hackname _cap=]Tests,   apz[=hackname _cap=]Patch, 0 }[=
 
 /fix=]
 };