/gas:
[deliverable/binutils-gdb.git] / gas / symbols.c
index 480e3e3507e021b3fcf070dbaea271300d03a3f1..252cfcef4eca8a5c39c25c9d08a763fd181090e3 100644 (file)
@@ -2184,6 +2184,12 @@ S_SET_EXTERNAL (symbolS *s)
                     _("section symbols are already global"));
       return;
     }
+  if (S_GET_SEGMENT (s) == reg_section)
+    {
+      as_bad ("can't make register symbol `%s' global",
+             S_GET_NAME (s));
+      return;
+    }
   s->bsym->flags |= BSF_GLOBAL;
   s->bsym->flags &= ~(BSF_LOCAL | BSF_WEAK);
 
@@ -2728,14 +2734,20 @@ print_symbol_value_1 (FILE *file, symbolS *sym)
   const char *name = S_GET_NAME (sym);
   if (!name || !name[0])
     name = "(unnamed)";
-  fprintf (file, "sym %lx %s", (unsigned long) sym, name);
+  fprintf (file, "sym ");
+  fprintf_vma (file, (bfd_vma) ((bfd_hostptr_t) sym));
+  fprintf (file, " %s", name);
 
   if (LOCAL_SYMBOL_CHECK (sym))
     {
       struct local_symbol *locsym = (struct local_symbol *) sym;
-      if (local_symbol_get_frag (locsym) != &zero_address_frag
+
+      if (local_symbol_get_frag (locsym) != & zero_address_frag
          && local_symbol_get_frag (locsym) != NULL)
-       fprintf (file, " frag %lx", (long) local_symbol_get_frag (locsym));
+       {
+         fprintf (file, " frag ");
+         fprintf_vma (file, (bfd_vma) ((bfd_hostptr_t) local_symbol_get_frag (locsym)));
+        }
       if (local_symbol_resolved_p (locsym))
        fprintf (file, " resolved");
       fprintf (file, " local");
@@ -2743,7 +2755,10 @@ print_symbol_value_1 (FILE *file, symbolS *sym)
   else
     {
       if (sym->sy_frag != &zero_address_frag)
-       fprintf (file, " frag %lx", (long) sym->sy_frag);
+       {
+         fprintf (file, " frag ");
+         fprintf_vma (file, (bfd_vma) ((bfd_hostptr_t) sym->sy_frag));
+       }
       if (sym->written)
        fprintf (file, " written");
       if (sym->sy_resolved)
@@ -2817,7 +2832,9 @@ print_binary (FILE *file, const char *name, expressionS *exp)
 void
 print_expr_1 (FILE *file, expressionS *exp)
 {
-  fprintf (file, "expr %lx ", (long) exp);
+  fprintf (file, "expr ");
+  fprintf_vma (file, (bfd_vma) ((bfd_hostptr_t) exp));
+  fprintf (file, " ");
   switch (exp->X_op)
     {
     case O_illegal:
@@ -3004,7 +3021,7 @@ symbol_relc_make_value (offsetT val)
   char * terminal = xmalloc (28);  /* Enough for long long.  */
 
   terminal[0] = '#';
-  sprintf_vma (& terminal[1], val);
+  bfd_sprintf_vma (stdoutput, terminal + 1, val);
   return terminal;
 }
 
This page took 0.023906 seconds and 4 git commands to generate.