* symbols.c (S_SET_EXTERNAL): Change as_warn to as_bad.
authorIan Lance Taylor <ian@airs.com>
Fri, 5 Jul 1996 15:23:59 +0000 (15:23 +0000)
committerIan Lance Taylor <ian@airs.com>
Fri, 5 Jul 1996 15:23:59 +0000 (15:23 +0000)
(S_CLEAR_EXTERNAL, S_SET_WEAK): Likewise.

gas/ChangeLog
gas/symbols.c

index 0e76c6db768ad81ee5e078b318d698ef5f355f53..c72031fac0da4345b999e7b9faf981f859a1fbe3 100644 (file)
@@ -1,3 +1,8 @@
+Fri Jul  5 11:07:24 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+       * symbols.c (S_SET_EXTERNAL): Change as_warn to as_bad.
+       (S_CLEAR_EXTERNAL, S_SET_WEAK): Likewise.
+
 Thu Jul  4 11:59:46 1996  Ian Lance Taylor  <ian@cygnus.com>
 
        * Makefile.in (VERSION): Set to cygnus-2.7.1.
index dde84f4ecdb843a50029fc50391bc8fa9f413e76..da83e9933c53e33d47c13b3c70d49b3933e7db59 100644 (file)
@@ -766,13 +766,33 @@ resolve_symbol_value (symp)
          if (seg_left != seg_right
              && seg_left != undefined_section
              && seg_right != undefined_section)
-           as_bad ("%s is operation on symbols in different sections",
-                   S_GET_NAME (symp));
+           {
+             char *file;
+             unsigned int line;
+
+             if (expr_symbol_where (symp, &file, &line))
+               as_bad_where
+                 (file, line,
+                  "illegal operation on symbols in different sections");
+             else
+               as_bad
+                 ("%s set to illegal operation on symbols in different sections",
+                  S_GET_NAME (symp));
+           }
          if ((S_GET_SEGMENT (symp->sy_value.X_add_symbol)
               != absolute_section)
              && symp->sy_value.X_op != O_subtract)
-           as_bad ("%s is illegal operation on non-absolute symbols",
-                   S_GET_NAME (symp));
+           {
+             char *file;
+             unsigned int line;
+
+             if (expr_symbol_where (symp, &file, &line))
+               as_bad_where (file, line,
+                             "illegal operation on non-absolute symbols");
+             else
+               as_bad ("%s set to illegal operation on non-absolute symbols",
+                       S_GET_NAME (symp));
+           }
          left = S_GET_VALUE (symp->sy_value.X_add_symbol);
          right = S_GET_VALUE (symp->sy_value.X_op_symbol);
          switch (symp->sy_value.X_op)
@@ -1358,7 +1378,10 @@ S_SET_EXTERNAL (s)
      symbolS *s;
 {
   if ((s->bsym->flags & BSF_WEAK) != 0)
-    as_warn ("%s already declared as weak", S_GET_NAME (s));
+    {
+      as_bad ("%s already declared as weak", S_GET_NAME (s));
+      return;
+    }
   s->bsym->flags |= BSF_GLOBAL;
   s->bsym->flags &= ~(BSF_LOCAL|BSF_WEAK);
 }
@@ -1368,7 +1391,10 @@ S_CLEAR_EXTERNAL (s)
      symbolS *s;
 {
   if ((s->bsym->flags & BSF_WEAK) != 0)
-    as_warn ("%s already declared as weak", S_GET_NAME (s));
+    {
+      as_bad ("%s already declared as weak", S_GET_NAME (s));
+      return;
+    }
   s->bsym->flags |= BSF_LOCAL;
   s->bsym->flags &= ~(BSF_GLOBAL|BSF_WEAK);
 }
@@ -1378,7 +1404,10 @@ S_SET_WEAK (s)
      symbolS *s;
 {
   if ((s->bsym->flags & BSF_GLOBAL) != 0)
-    as_warn ("%s already declared as global", S_GET_NAME (s));
+    {
+      as_bad ("%s already declared as global", S_GET_NAME (s));
+      return;
+    }
   s->bsym->flags |= BSF_WEAK;
   s->bsym->flags &= ~(BSF_GLOBAL|BSF_LOCAL);
 }