Don't merge labels. Don't merge if the symbol isn't constant. Don't call
authorNick Clifton <nickc@redhat.com>
Mon, 17 Jul 2000 23:27:31 +0000 (23:27 +0000)
committerNick Clifton <nickc@redhat.com>
Mon, 17 Jul 2000 23:27:31 +0000 (23:27 +0000)
S_SET_EXTERNAL if the storage class is already set.

gas/ChangeLog
gas/config/obj-coff.c

index c15d543858f369a282896c2750d7943625360ca7..8ea090b2c1b42b658085dd27d908f529322718a8 100644 (file)
@@ -1,3 +1,9 @@
+2000-07-17  Mark Elbrecht  <snowball3@bigfoot.com>
+
+       * config/obj-coff.c (obj_frob_symbol): Don't merge labels. Don't
+       merge if the symbol isn't constant. Don't call S_SET_EXTERNAL if
+       the storage class is already set.
+
 2000-07-17  Kazu Hirata  <kazu@hxi.com>
 
        * config/tc-w65.c: Fix formatting.
index 41fc595eaf4a8d4cb6adc613043a5185a2cf0844..6da61187d8965c64f888f3e82469f4c4d3bb2be5 100644 (file)
@@ -1139,24 +1139,30 @@ coff_frob_symbol (symp, punt)
       symbolS *real;
       if (!SF_GET_LOCAL (symp)
          && !SF_GET_STATICS (symp)
+         && S_GET_STORAGE_CLASS (symp) != C_LABEL
+         && symbol_constant_p(symp)
          && (real = symbol_find_base (S_GET_NAME (symp), DO_NOT_STRIP))
          && real != symp)
        {
          c_symbol_merge (symp, real);
          *punt = 1;
        }
-      if (!S_IS_DEFINED (symp) && !SF_GET_LOCAL (symp))
+       if (S_GET_STORAGE_CLASS (symp) == C_NULL)
        {
-         assert (S_GET_VALUE (symp) == 0);
-         S_SET_EXTERNAL (symp);
-       }
-      else if (S_GET_STORAGE_CLASS (symp) == C_NULL)
-       {
-         if (S_GET_SEGMENT (symp) == text_section
-             && symp != seg_info (text_section)->sym)
-           S_SET_STORAGE_CLASS (symp, C_LABEL);
+         if (!S_IS_DEFINED (symp) && !SF_GET_LOCAL (symp))
+           {
+             assert (S_GET_VALUE (symp) == 0);
+             S_SET_EXTERNAL (symp);
+           }
+         else if (S_GET_SEGMENT (symp) == text_section
+                  && symp != seg_info (text_section)->sym)
+           {
+             S_SET_STORAGE_CLASS (symp, C_LABEL);
+           }
          else
-           S_SET_STORAGE_CLASS (symp, C_STAT);
+           {
+             S_SET_STORAGE_CLASS (symp, C_STAT);
+           }
        }
       if (SF_GET_PROCESS (symp))
        {