This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Fix PR gas/827


I somehow managed to post and commit an untested patch, thinking I'd
tested the patch last night.  It didn't even compile.  :-(

Since geoffk had the repo locked when I first tried to commit this fix,
I've probably broken the gcc bootstrap tester.  Sorry.

	* read.c (assign_symbol): Remove const from parm.  Fix xcalloc
	call.  Don't do the COFF hacks for multi-emulation gas.  Move
	demand_empty_rest_of_line back to caller.
	(s_set, equals): demand_empty_rest_of_line here.

Index: gas/read.c
===================================================================
RCS file: /cvs/src/src/gas/read.c,v
retrieving revision 1.95
diff -u -p -r1.95 read.c
--- gas/read.c	9 Apr 2005 03:48:09 -0000	1.95
+++ gas/read.c	9 Apr 2005 06:15:13 -0000
@@ -2748,7 +2748,7 @@ end_repeat (int extra)
 }
 
 static void
-assign_symbol (const char *name, int no_reassign)
+assign_symbol (char *name, int no_reassign)
 {
   symbolS *symbolP;
 
@@ -2777,18 +2777,15 @@ assign_symbol (const char *name, int no_
       if (listing & LISTING_SYMBOLS)
 	{
 	  extern struct list_info_struct *listing_tail;
-	  fragS *dummy_frag = (fragS *) xcalloc (sizeof (fragS));
+	  fragS *dummy_frag = (fragS *) xcalloc (1, sizeof (fragS));
 	  dummy_frag->line = listing_tail;
 	  dummy_frag->fr_symbol = symbolP;
 	  symbol_set_frag (symbolP, dummy_frag);
 	}
 #endif
-#if defined (OBJ_COFF) || defined (OBJ_MAYBE_COFF)
-#if defined (BFD_ASSEMBLER) && defined (OBJ_MAYBE_COFF)
-      if (OUTPUT_FLAVOR == bfd_target_coff_flavour)
-#endif
-	/* "set" symbols are local unless otherwise specified.  */
-	SF_SET_LOCAL (symbolP);
+#ifdef OBJ_COFF
+      /* "set" symbols are local unless otherwise specified.  */
+      SF_SET_LOCAL (symbolP);
 #endif
     }
 
@@ -2799,8 +2796,6 @@ assign_symbol (const char *name, int no_
     as_bad (_("symbol `%s' is already defined"), name);
 
   pseudo_set (symbolP);
-
-  demand_empty_rest_of_line ();
 }
 
 /* Handle the .equ, .equiv and .set directives.  If EQUIV is 1, then
@@ -2845,6 +2840,8 @@ s_set (int equiv)
 
   assign_symbol (name, equiv);
   *end_name = delim;
+
+  demand_empty_rest_of_line ();
 }
 
 void
@@ -4923,7 +4920,10 @@ equals (char *sym_name, int reassign)
   assign_symbol (sym_name, !reassign);
 
   if (flag_mri)
-    mri_comment_end (stop, stopc);
+    {
+      demand_empty_rest_of_line ();
+      mri_comment_end (stop, stopc);
+    }
 }
 
 /* .incbin -- include a file verbatim at the current location.  */

-- 
Alan Modra
IBM OzLabs - Linux Technology Centre


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]