Subject: Re: bug#13448: Cannot build Emacs 24.2.92
From: Paul Eggert <[email-masked]>
To: Xue Fuqiao <[email-masked]>
Cc: Glenn Morris <[email-masked]>, Andreas Schwab <[email-masked]>, [email-masked]
Date: Tue, 15 Jan 2013 13:30:21 -0800
List-Id: <debbugs-submit.debbugs.gnu.org>

Enabling link time optimization is a common enough need and
there's a simple fix that I think makes Emacs a bit clearer,
so I pushed the following patch to the trunk as bzr 111533
and I'm marking this as done.

The original problem feels like it might be a GCC problem --
GCC shouldn't be dumber (and presumably generate worse code)
merely because link-time optimization is enabled.  Do you
have the time to file a GCC bug report?

=== modified file 'lib-src/ChangeLog'
--- lib-src/ChangeLog	2013-01-02 16:13:04 +0000
+++ lib-src/ChangeLog	2013-01-15 21:24:53 +0000
@@ -1,3 +1,9 @@
+2013-01-15  Paul Eggert  <[email-masked]>
+
+	* make-docfile.c (write_globals): Make it a bit clearer (Bug#13448).
+	This pacifies GCC 4.7.2 when Emacs is configured with
+	--enable-link-time-optimization and --enable-gcc-warnings.
+
 2013-01-01  Juanma Barranquero  <[email-masked]>
 
 	* makefile.w32-in (lisp1): Add macroexp.elc (bug#13320).

=== modified file 'lib-src/make-docfile.c'
--- lib-src/make-docfile.c	2013-01-01 09:11:05 +0000
+++ lib-src/make-docfile.c	2013-01-15 21:23:34 +0000
@@ -624,7 +624,7 @@
   qsort (globals, num_globals, sizeof (struct global), compare_globals);
   for (i = 0; i < num_globals; ++i)
     {
-      char const *type;
+      char const *type = 0;
 
       switch (globals[i].type)
 	{
@@ -649,7 +649,7 @@
 	  fatal ("not a recognized DEFVAR_", 0);
 	}
 
-      if (globals[i].type != FUNCTION)
+      if (type)
 	{
 	  fprintf (outfile, "  %s f_%s;\n", type, globals[i].name);
 	  fprintf (outfile, "#define %s globals.f_%s\n",