diff options
-rw-r--r-- | gas/ChangeLog | 3 | ||||
-rw-r--r-- | gas/symbols.c | 35 |
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; } /* |