This is the mail archive of the binutils@sourceware.org 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]

PATCH: Combine obj_elf_local and obj_elf_weak


Hi,

This patch combines obj_elf_local and obj_elf_weak into obj_elf_op.  OK
to install?

Thanks.

H.J.
---
	* config/obj-elf.c (obj_elf_op): New.
	(obj_elf_local): Use it.
	(obj_elf_weak): Likewise.

diff --git a/gas/config/obj-elf.c b/gas/config/obj-elf.c
index ffee6f6..e73ee45 100644
--- a/gas/config/obj-elf.c
+++ b/gas/config/obj-elf.c
@@ -413,7 +413,7 @@ get_sym_from_input_line_and_check (void)
 }
 
 static void
-obj_elf_local (int ignore ATTRIBUTE_UNUSED)
+obj_elf_op (void (*op) (symbolS *))
 {
   int c;
   symbolS *symbolP;
@@ -422,7 +422,7 @@ obj_elf_local (int ignore ATTRIBUTE_UNUSED)
     {
       symbolP = get_sym_from_input_line_and_check ();
       c = *input_line_pointer;
-      S_CLEAR_EXTERNAL (symbolP);
+      op (symbolP);
       symbol_get_obj (symbolP)->local = 1;
       if (c == ',')
 	{
@@ -437,27 +437,15 @@ obj_elf_local (int ignore ATTRIBUTE_UNUSED)
 }
 
 static void
-obj_elf_weak (int ignore ATTRIBUTE_UNUSED)
+obj_elf_local (int ignore ATTRIBUTE_UNUSED)
 {
-  int c;
-  symbolS *symbolP;
+  obj_elf_op (S_CLEAR_EXTERNAL);
+}
 
-  do
-    {
-      symbolP = get_sym_from_input_line_and_check ();
-      c = *input_line_pointer;
-      S_SET_WEAK (symbolP);
-      symbol_get_obj (symbolP)->local = 1;
-      if (c == ',')
-	{
-	  input_line_pointer++;
-	  SKIP_WHITESPACE ();
-	  if (*input_line_pointer == '\n')
-	    c = '\n';
-	}
-    }
-  while (c == ',');
-  demand_empty_rest_of_line ();
+static void
+obj_elf_weak (int ignore ATTRIBUTE_UNUSED)
+{
+  obj_elf_op (S_SET_WEAK);
 }
 
 static void


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