aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorSteve Chamberlain <sac@cygnus>1992-06-08 17:09:40 +0000
committerSteve Chamberlain <sac@cygnus>1992-06-08 17:09:40 +0000
commitee4af9e83927dfa2b52dcde9a50db77abcf65729 (patch)
tree22c491389fb5012d841560597337ff1818bcf89a /ld
parent6ba70f641e7f917da1a02235b8728ab425ee5905 (diff)
downloadgdb-ee4af9e83927dfa2b52dcde9a50db77abcf65729.zip
gdb-ee4af9e83927dfa2b52dcde9a50db77abcf65729.tar.gz
gdb-ee4af9e83927dfa2b52dcde9a50db77abcf65729.tar.bz2
don't crash when provided empty symbol table
Diffstat (limited to 'ld')
-rw-r--r--ld/ldlang.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/ld/ldlang.c b/ld/ldlang.c
index 66c8fbb..8984eb3 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -251,6 +251,7 @@ DEFUN(new_afile, (name, file_type, target),
stat_ptr);
lang_has_input_file = true;
p->target = target;
+ p->complained = false;
switch (file_type) {
case lang_input_file_is_symbols_only_enum:
p->filename = name;
@@ -833,7 +834,7 @@ DEFUN_VOID(lang_place_undefineds)
*def_ptr= def;
def->name = ptr->name;
def->section = &bfd_und_section;
- Q_enter_global_ref(def_ptr);
+ Q_enter_global_ref(def_ptr, ptr->name);
ptr = ptr->next;
}
}
@@ -1080,6 +1081,7 @@ DEFUN(print_input_section,(in),
print_nl();
/* Find all the symbols in this file defined in this section */
+if (in->ifile->symbol_count)
{
asymbol **p;
for (p = in->ifile->asymbols; *p; p++) {
@@ -1372,7 +1374,7 @@ DEFUN(lang_size_sections,(s, output_section_statement, prev, fill,
case lang_output_section_statement_enum:
{
bfd_vma after;
- lang_output_section_statement_type *os =&(s->output_section_statement);
+ lang_output_section_statement_type *os = &s->output_section_statement;
if (os->bfd_section == &bfd_abs_section)
{
@@ -1506,8 +1508,7 @@ DEFUN(lang_size_sections,(s, output_section_statement, prev, fill,
{
relaxing = true;
-
- had_relax |= relax_section(prev);
+ had_relax = had_relax || relax_section(prev);
relaxing = false;
}
@@ -2123,7 +2124,7 @@ DEFUN(create_symbol,(name, flags, section),
def->section = section;
*def_ptr = def;
- Q_enter_global_ref(def_ptr);
+ Q_enter_global_ref(def_ptr, name);
return def;
}