aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gas/ChangeLog3
-rw-r--r--gas/symbols.c35
2 files changed, 25 insertions, 13 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index d8eb36a..be540ea 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,8 @@
Wed Jul 7 10:21:24 1993 Ian Lance Taylor (ian@cygnus.com)
+ * symbols.c (fb_label_instance, fb_label_instance_inc): Don't dump
+ core just because somebody uses a label before it is defined.
+
* config/mips-opcode.h: Moved to opcode/mips.h.
* config/tc-mips.c: Include opcode/mips.h rather than
mips-opcode.h.
diff --git a/gas/symbols.c b/gas/symbols.c
index ade2aa5..e39e50c 100644
--- a/gas/symbols.c
+++ b/gas/symbols.c
@@ -771,14 +771,18 @@ fb_label_instance_inc (label)
return;
}
- for (i = fb_labels + FB_LABEL_SPECIAL; i < fb_labels + fb_label_count; ++i)
+ if (fb_labels != NULL)
{
- if (*i == label)
+ for (i = fb_labels + FB_LABEL_SPECIAL;
+ i < fb_labels + fb_label_count; ++i)
{
- ++fb_label_instances[i - fb_labels];
- return;
- } /* if we find it */
- } /* for each existing label */
+ if (*i == label)
+ {
+ ++fb_label_instances[i - fb_labels];
+ return;
+ } /* if we find it */
+ } /* for each existing label */
+ }
/* if we get to here, we don't have label listed yet. */
@@ -816,16 +820,21 @@ fb_label_instance (label)
return (fb_low_counter[label]);
}
- for (i = fb_labels + FB_LABEL_SPECIAL; i < fb_labels + fb_label_count; ++i)
+ if (fb_labels != NULL)
{
- if (*i == label)
+ for (i = fb_labels + FB_LABEL_SPECIAL;
+ i < fb_labels + fb_label_count; ++i)
{
- return (fb_label_instances[i - fb_labels]);
- } /* if we find it */
- } /* for each existing label */
+ if (*i == label)
+ {
+ return (fb_label_instances[i - fb_labels]);
+ } /* if we find it */
+ } /* for each existing label */
+ }
- /* NOTREACHED */
- abort ();
+ /* We didn't find the label, so this must be a reference to the
+ first instance. */
+ return 0;
}
/*