bfd/
[deliverable/binutils-gdb.git] / gas / symbols.c
index 8943af3c11701de7c5e8ddc6f91a4a10ccd353da..816395ff22d935a89acee937e863d10e826b2a7b 100644 (file)
@@ -1,6 +1,6 @@
 /* symbols.c -symbol table-
    Copyright 1987, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
    Free Software Foundation, Inc.
 
    This file is part of GAS, the GNU Assembler.
@@ -563,8 +563,6 @@ symbol_clone (symbolS *orgsymP, int replace)
     orgsymP = local_symbol_convert ((struct local_symbol *) orgsymP);
   bsymorg = orgsymP->bsym;
 
-  know (S_IS_DEFINED (orgsymP));
-
   newsymP = obstack_alloc (&notes, sizeof (*newsymP));
   *newsymP = *orgsymP;
   bsymnew = bfd_make_empty_symbol (bfd_asymbol_bfd (bsymorg));
@@ -1123,6 +1121,9 @@ resolve_symbol_value (symbolS *symp)
          final_val += symp->sy_frag->fr_address / OCTETS_PER_BYTE;
          if (final_seg == expr_section)
            final_seg = absolute_section;
+         /* Fall through.  */
+
+       case O_register:
          resolved = 1;
          break;
 
@@ -1400,7 +1401,6 @@ resolve_symbol_value (symbolS *symp)
                      && symbol_resolved_p (op_symbol));
          break;
 
-       case O_register:
        case O_big:
        case O_illegal:
          /* Give an error (below) if not in expr_section.  We don't
@@ -1947,6 +1947,10 @@ copy_symbol_attributes (symbolS *dest, symbolS *src)
 #ifdef OBJ_COPY_SYMBOL_ATTRIBUTES
   OBJ_COPY_SYMBOL_ATTRIBUTES (dest, src);
 #endif
+
+#ifdef TC_COPY_SYMBOL_ATTRIBUTES
+  TC_COPY_SYMBOL_ATTRIBUTES (dest, src);
+#endif
 }
 
 int
@@ -2941,10 +2945,10 @@ symbol_print_statistics (FILE *file)
 #ifdef OBJ_COMPLEX_RELC
 
 /* Convert given symbol to a new complex-relocation symbol name.  This
-   may bee a recursive function, since it might be called for non-leaf
+   may be a recursive function, since it might be called for non-leaf
    nodes (plain symbols) in the expression tree.  The caller owns the
-   returning string, so should free() it eventually.  Errors are
-   indicated via as_bad() and a NULL return value.  The given symbol
+   returning string, so should free it eventually.  Errors are
+   indicated via as_bad and a NULL return value.  The given symbol
    is marked with sy_used_in_reloc.  */
 
 char *
This page took 0.024378 seconds and 4 git commands to generate.