gas/
authorJan Beulich <jbeulich@novell.com>
Tue, 10 May 2005 07:45:11 +0000 (07:45 +0000)
committerJan Beulich <jbeulich@novell.com>
Tue, 10 May 2005 07:45:11 +0000 (07:45 +0000)
2005-05-10  Jan Beulich  <jbeulich@novell.com>

* read.c (s_macro): Move local variable 'local' to smaller scope.
Call sb_kill on it when done.

gas/ChangeLog
gas/read.c

index a8efca8a82e08d1bfa18fad81133ad5f9b7e0482..1825b4a5f62f768d8695a1fc3fd14e6503d0ea78 100644 (file)
@@ -1,3 +1,8 @@
+2005-05-10  Jan Beulich  <jbeulich@novell.com>
+
+       * read.c (s_macro): Move local variable 'local' to smaller scope.
+       Call sb_kill on it when done.
+
 2005-05-09  Jan Beulich  <jbeulich@novell.com>
 
        * config/tc-i386.c (optimize_disp): Discard displacement entirely when zero and
index 2165edf666a6b9ec14cfe1212d4c2cd44c821cb9..fa31f4a54567470bea4568a353fc1e000debf2b2 100644 (file)
@@ -2348,7 +2348,6 @@ s_macro (int ignore ATTRIBUTE_UNUSED)
   char *file;
   unsigned int line;
   sb s;
-  sb label;
   const char *err;
   const char *name;
 
@@ -2358,11 +2357,17 @@ s_macro (int ignore ATTRIBUTE_UNUSED)
   while (!is_end_of_line[(unsigned char) *input_line_pointer])
     sb_add_char (&s, *input_line_pointer++);
 
-  sb_new (&label);
   if (line_label != NULL)
-    sb_add_string (&label, S_GET_NAME (line_label));
+    {
+      sb label;
 
-  err = define_macro (0, &s, &label, get_line_sb, file, line, &name);
+      sb_new (&label);
+      sb_add_string (&label, S_GET_NAME (line_label));
+      err = define_macro (0, &s, &label, get_line_sb, file, line, &name);
+      sb_kill (&label);
+    }
+  else
+    err = define_macro (0, &s, NULL, get_line_sb, file, line, &name);
   if (err != NULL)
     as_bad_where (file, line, err, name);
   else