Patchwork fix PR bootstrap/48471

login
register
mail settings
Submitter Nathan Froyd
Date April 6, 2011, 1:06 a.m.
Message ID <20110406010648.GA12247@nightcrawler>
Download mbox | patch
Permalink /patch/89977/
State New
Headers show

Comments

Nathan Froyd - April 6, 2011, 1:06 a.m.
My changes that moved bits of final.c to dbxout.c caused compilation
failures on targets that *didn't* enable DBX_DEBUGGING_INFO, since some
now-static symbols could be unused.  To fix this, the patch below moves
all the new static variables and two macros that use some of said
variables below an #ifdef DBX_DEBUGGING_INFO.  Steve Ellcey verified
that the patch fixes the problems on ia64-hp-hpux11.23 (thanks Steve!)
and I verified that the changes still bootstrap on
x86_64-unknown-linux-gnu.

Committed as obvious.  Sorry about all the build breakage today, not one
of my better cleanup days...

-Nathan

	PR bootstrap/48471
	* dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
	Move these...
	(symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
	(DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
	#ifdef DBX_DEBUGGING_INFO.

Patch

Index: dbxout.c
===================================================================
--- dbxout.c	(revision 172015)
+++ dbxout.c	(working copy)
@@ -96,27 +96,6 @@  along with GCC; see the file COPYING3.  
 #include "xcoffout.h"
 #endif
 
-/* When -gused is used, emit debug info for only used symbols. But in
-   addition to the standard intercepted debug_hooks there are some
-   direct calls into this file, i.e., dbxout_symbol, dbxout_parms, and
-   dbxout_reg_params.  Those routines may also be called from a higher
-   level intercepted routine. So to prevent recording data for an inner
-   call to one of these for an intercept, we maintain an intercept
-   nesting counter (debug_nesting). We only save the intercepted
-   arguments if the nesting is 1.  */
-static int debug_nesting = 0;
-
-static tree *symbol_queue;
-static int symbol_queue_index = 0;
-static int symbol_queue_size = 0;
-
-#define DBXOUT_DECR_NESTING \
-  if (--debug_nesting == 0 && symbol_queue_index > 0) \
-    { emit_pending_bincls_if_required (); debug_flush_symbol_queue (); }
-
-#define DBXOUT_DECR_NESTING_AND_RETURN(x) \
-  do {--debug_nesting; return (x);} while (0)
-
 #ifndef ASM_STABS_OP
 # ifdef XCOFF_DEBUGGING_INFO
 #  define ASM_STABS_OP "\t.stabx\t"
@@ -926,6 +905,27 @@  dbxout_finish_complex_stabs (tree sym, s
 
 #if defined (DBX_DEBUGGING_INFO)
 
+/* When -gused is used, emit debug info for only used symbols. But in
+   addition to the standard intercepted debug_hooks there are some
+   direct calls into this file, i.e., dbxout_symbol, dbxout_parms, and
+   dbxout_reg_params.  Those routines may also be called from a higher
+   level intercepted routine. So to prevent recording data for an inner
+   call to one of these for an intercept, we maintain an intercept
+   nesting counter (debug_nesting). We only save the intercepted
+   arguments if the nesting is 1.  */
+static int debug_nesting = 0;
+
+static tree *symbol_queue;
+static int symbol_queue_index = 0;
+static int symbol_queue_size = 0;
+
+#define DBXOUT_DECR_NESTING \
+  if (--debug_nesting == 0 && symbol_queue_index > 0) \
+    { emit_pending_bincls_if_required (); debug_flush_symbol_queue (); }
+
+#define DBXOUT_DECR_NESTING_AND_RETURN(x) \
+  do {--debug_nesting; return (x);} while (0)
+
 static void
 dbxout_function_end (tree decl ATTRIBUTE_UNUSED)
 {