squelch 120+ complaints about missing initializers

Zack Weinberg zackw@stanford.edu
Tue Feb 27 22:21:00 GMT 2001


Someone added a field to struct compiler and didn't add the
initializers for it, hence you got about 120 instances of

gcc.c:733: warning: missing initializer
gcc.c:733: warning: (near initialization for `default_compilers[23].cpp_spec')

This patch simply adds 120 zeros to the initializer, silencing the
warnings.

Why do we use that convoluted phrasing for this warning?  We know
exactly which data element needs an initializer.

zw

	* gcc.c, cp/lang-specs.h, f/lang-specs.h, java/lang-specs.h,
	objc/lang-specs.h: Add zero initializer for cpp_spec field to
	all array elements.
	* cp/lang-specs.h: Don't put an #ifdef inside the initializer
	list; set a default for CPLUSPLUS_CPP_SPEC and use it.

===================================================================
Index: gcc.c
--- gcc.c	2001/02/24 03:20:17	1.210
+++ gcc.c	2001/02/28 06:19:37
@@ -766,19 +766,20 @@ static struct compiler default_compilers
      were not present when we built the driver, we will hit these copies
      and be given a more meaningful error than "file not used since
      linking is not done".  */
-  {".m",  "#Objective-C"}, {".mi",  "#Objective-C"},
-  {".cc", "#C++"}, {".cxx", "#C++"}, {".cpp", "#C++"}, {".cp", "#C++"},
-  {".c++", "#C++"}, {".C", "#C++"}, {".ii", "#C++"},
-  {".ads", "#Ada"}, {".adb", "#Ada"}, {".ada", "#Ada"},
-  {".f", "#Fortran"}, {".for", "#Fortran"}, {".fpp", "#Fortran"},
-  {".F", "#Fortran"}, {".FOR", "#Fortran"}, {".FPP", "#Fortran"},
-  {".r", "#Ratfor"},
-  {".p", "#Pascal"}, {".pas", "#Pascal"},
-  {".ch", "#Chill"}, {".chi", "#Chill"},
-  {".java", "#Java"}, {".class", "#Java"},
-  {".zip", "#Java"}, {".jar", "#Java"},
+  {".m",  "#Objective-C", 0}, {".mi",  "#Objective-C", 0},
+  {".cc", "#C++", 0}, {".cxx", "#C++", 0}, {".cpp", "#C++", 0},
+  {".cp", "#C++", 0}, {".c++", "#C++", 0}, {".C", "#C++", 0},
+  {".ii", "#C++", 0},
+  {".ads", "#Ada", 0}, {".adb", "#Ada", 0}, {".ada", "#Ada", 0},
+  {".f", "#Fortran", 0}, {".for", "#Fortran", 0}, {".fpp", "#Fortran", 0},
+  {".F", "#Fortran", 0}, {".FOR", "#Fortran", 0}, {".FPP", "#Fortran", 0},
+  {".r", "#Ratfor", 0},
+  {".p", "#Pascal", 0}, {".pas", "#Pascal", 0},
+  {".ch", "#Chill", 0}, {".chi", "#Chill", 0},
+  {".java", "#Java", 0}, {".class", "#Java", 0},
+  {".zip", "#Java", 0}, {".jar", "#Java", 0},
   /* Next come the entries for C.  */
-  {".c", "@c"},
+  {".c", "@c", 0},
   {"@c",
    /* cc1 has an integrated ISO C preprocessor.  We should invoke the
       external preprocessor if -save-temps or -traditional is given.  */
@@ -793,27 +794,27 @@ static struct compiler default_compilers
 		    cc1 -fpreprocessed %{!pipe:%g.i} %(cc1_options)}\
 	    %{!traditional:%{!ftraditional:%{!traditional-cpp:\
 		cc1 -lang-c %{ansi:-std=c89} %(cpp_options) %(cc1_options)}}}}\
-        %{!fsyntax-only:%(invoke_as)}}}}"},
+        %{!fsyntax-only:%(invoke_as)}}}}", 0},
   {"-",
    "%{!E:%e-E required when input is from standard input}\
-    %(trad_capable_cpp) -lang-c %{ansi:-std=c89} %(cpp_options)"},
-  {".h", "@c-header"},
+    %(trad_capable_cpp) -lang-c %{ansi:-std=c89} %(cpp_options)", 0},
+  {".h", "@c-header", 0},
   {"@c-header",
    "%{!E:%eCompilation of header file requested} \
-    %(trad_capable_cpp) -lang-c %{ansi:-std=c89} %(cpp_options)"},
-  {".i", "@cpp-output"},
+    %(trad_capable_cpp) -lang-c %{ansi:-std=c89} %(cpp_options)", 0},
+  {".i", "@cpp-output", 0},
   {"@cpp-output",
-   "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %(cc1_options) %{!fsyntax-only:%(invoke_as)}}}}"},
-  {".s", "@assembler"},
+   "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %(cc1_options) %{!fsyntax-only:%(invoke_as)}}}}", 0},
+  {".s", "@assembler", 0},
   {"@assembler",
-   "%{!M:%{!MM:%{!E:%{!S:as %(asm_options) %i %A }}}}"},
-  {".S", "@assembler-with-cpp"},
+   "%{!M:%{!MM:%{!E:%{!S:as %(asm_options) %i %A }}}}", 0},
+  {".S", "@assembler-with-cpp", 0},
   {"@assembler-with-cpp",
    "%(trad_capable_cpp) -lang-asm %(cpp_options)\
-	%{!M:%{!MM:%{!E:%(invoke_as)}}}"},
+	%{!M:%{!MM:%{!E:%(invoke_as)}}}", 0},
 #include "specs.h"
   /* Mark end of table */
-  {0, 0}
+  {0, 0, 0}
 };
 
 /* Number of elements in default_compilers, not counting the terminator.  */
===================================================================
Index: cp/lang-specs.h
--- cp/lang-specs.h	2001/02/13 13:11:40	1.40
+++ cp/lang-specs.h	2001/02/28 06:19:37
@@ -22,12 +22,16 @@ Boston, MA 02111-1307, USA.  */
 /* This is the contribution to the `default_compilers' array in gcc.c for
    g++.  */
 
-  {".cc",  "@c++"},
-  {".cp",  "@c++"},
-  {".cxx", "@c++"},
-  {".cpp", "@c++"},
-  {".c++", "@c++"},
-  {".C",   "@c++"},
+#ifndef CPLUSPLUS_CPP_SPEC
+#define CPLUSPLUS_CPP_SPEC 0
+#endif
+
+  {".cc",  "@c++", 0},
+  {".cp",  "@c++", 0},
+  {".cxx", "@c++", 0},
+  {".cpp", "@c++", 0},
+  {".c++", "@c++", 0},
+  {".C",   "@c++", 0},
   {"@c++",
    /* cc1plus has an integrated ISO C preprocessor.  We should invoke
       the external preprocessor if -save-temps is given.  */
@@ -50,13 +54,10 @@ Boston, MA 02111-1307, USA.  */
 			    %{ansi:-D__STRICT_ANSI__}}\
        %{ansi:-trigraphs -$}\
        %(cc1_options) %2 %{+e1*}\
-       %{!fsyntax-only:%(invoke_as)}}}}"
-#ifdef CPLUSPLUS_CPP_SPEC
-     , CPLUSPLUS_CPP_SPEC
-#endif
-     },
-  {".ii", "@c++-cpp-output"},
+       %{!fsyntax-only:%(invoke_as)}}}}",
+     CPLUSPLUS_CPP_SPEC},
+  {".ii", "@c++-cpp-output", 0},
   {"@c++-cpp-output",
    "%{!M:%{!MM:%{!E:\
     cc1plus -fpreprocessed %i %(cc1_options) %2 %{+e*}\
-    %{!fsyntax-only:%(invoke_as)}}}}"},
+    %{!fsyntax-only:%(invoke_as)}}}}", 0},
===================================================================
Index: f/lang-specs.h
--- f/lang-specs.h	2000/09/26 17:28:07	1.27
+++ f/lang-specs.h	2001/02/28 06:19:37
@@ -24,23 +24,23 @@ the Free Software Foundation, 59 Temple 
 /* This is the contribution to the `default_compilers' array in gcc.c for
    g77.  */
 
-  {".F",   "@f77-cpp-input"},
-  {".fpp", "@f77-cpp-input"},
-  {".FPP", "@f77-cpp-input"},
+  {".F",   "@f77-cpp-input", 0},
+  {".fpp", "@f77-cpp-input", 0},
+  {".FPP", "@f77-cpp-input", 0},
   {"@f77-cpp-input",
    "tradcpp0 -lang-fortran %(cpp_options) %{!M:%{!MM:%{!E:%{!pipe:%g.f |\n\
-    f771 %{!pipe:%g.f} %(cc1_options) %{I*} %{!fsyntax-only:%(invoke_as)}}}}}"},
-  {".r", "@ratfor"},
+    f771 %{!pipe:%g.f} %(cc1_options) %{I*} %{!fsyntax-only:%(invoke_as)}}}}}", 0},
+  {".r", "@ratfor", 0},
   {"@ratfor",
    "%{C:%{!E:%eGNU C does not support -C without using -E}}\
     ratfor %{C} %{v} %i %{E:%W{o*}} %{!E: %{!pipe:-o %g.f} |\n\
-    f771 %{!pipe:%g.f} %(cc1_options) %{I*} %{!fsyntax-only:%(invoke_as)}}"},
-  {".f",   "@f77"},
-  {".for", "@f77"},
-  {".FOR", "@f77"},
+    f771 %{!pipe:%g.f} %(cc1_options) %{I*} %{!fsyntax-only:%(invoke_as)}}", 0},
+  {".f",   "@f77", 0},
+  {".for", "@f77", 0},
+  {".FOR", "@f77", 0},
   {"@f77",
    "%{!M:%{!MM:%{!E:f771 %i %(cc1_options) %{I*}\
-	%{!fsyntax-only:%(invoke_as)}}}}"},
+	%{!fsyntax-only:%(invoke_as)}}}}", 0},
   /* XXX This is perverse and should not be necessary.  */
   {"@f77-version",
    "tradcpp0 -lang-fortran %(cpp_options) %j \n\
@@ -56,4 +56,4 @@ the Free Software Foundation, 59 Temple 
       %{!nostdlib:%{!nodefaultlibs:%G %L %G}} \
       %{!A:%{!nostdlib:%{!nostartfiles:%E}}} \
       %{T*} \n\
-     %g \n"},
+     %g \n", 0},
===================================================================
Index: java/lang-specs.h
--- java/lang-specs.h	2000/10/20 21:19:29	1.18
+++ java/lang-specs.h	2001/02/28 06:19:37
@@ -25,14 +25,14 @@ The Free Software Foundation is independ
 /* This is the contribution to the `default_compilers' array in gcc.c for
    Java.  */
 
-  {".java",   "@java" },
-  {".class",  "@java" },
-  {".zip",    "@java" },
-  {".jar",    "@java" },
+  {".java",   "@java" , 0},
+  {".class",  "@java" , 0},
+  {".zip",    "@java" , 0},
+  {".jar",    "@java" , 0},
   {"@java",
    "%{fjni:%{femit-class-files:%e-fjni and -femit-class-files are incompatible}}\
     %{fjni:%{femit-class-file:%e-fjni and -femit-class-file are incompatible}}\
     %{!E:jc1 %i %(jc1) %(cc1_options) %{+e*} %{I*}\
              %{MD} %{MMD} %{M} %{MM} %{MA} %{MT*} %{MF*}\
-             %{!fsyntax-only:%(invoke_as)}}"},
+             %{!fsyntax-only:%(invoke_as)}}", 0},
 
===================================================================
Index: objc/lang-specs.h
--- objc/lang-specs.h	2000/11/29 22:19:28	1.19
+++ objc/lang-specs.h	2001/02/28 06:19:37
@@ -21,7 +21,7 @@ Boston, MA 02111-1307, USA.  */
 /* This is the contribution to the `default_compilers' array in gcc.c for
    objc.  */
 
-  {".m", "@objective-c"},
+  {".m", "@objective-c", 0},
   {"@objective-c",
    /* cc1obj has an integrated ISO C preprocessor.  We should invoke the
       external preprocessor if -save-temps or -traditional is given.  */
@@ -36,8 +36,8 @@ Boston, MA 02111-1307, USA.  */
 	    cc1obj -fpreprocessed %{!pipe:%g.mi} %(cc1_options) %{gen-decls}}\
 	  %{!traditional:%{!ftraditional:%{!traditional-cpp:\
 	    cc1obj %{ansi:-std=c89} %(cpp_options) %(cc1_options) %{gen-decls}}}}}\
-        %{!fsyntax-only:%(invoke_as)}}}}"},
-  {".mi", "@objc-cpp-output"},
+        %{!fsyntax-only:%(invoke_as)}}}}", 0},
+  {".mi", "@objc-cpp-output", 0},
   {"@objc-cpp-output",
      "%{!M:%{!MM:%{!E:cc1obj -fpreprocessed %i %(cc1_options) %{gen-decls}\
-			     %{!fsyntax-only:%(invoke_as)}}}}"},
+			     %{!fsyntax-only:%(invoke_as)}}}}", 0},






More information about the Gcc-patches mailing list