* config/tc-hppa.c (pa_import): Correctly handle importing of an

already defined symbol.
This commit is contained in:
Jeff Law
1994-03-17 21:37:42 +00:00
parent 06459c063e
commit 49ccc55510
2 changed files with 36 additions and 17 deletions

View File

@ -1,3 +1,8 @@
Thu Mar 17 13:36:09 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
* config/tc-hppa.c (pa_import): Correctly handle importing of an
already defined symbol.
Wed Mar 16 17:11:37 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
* config/tc-mips.c (mips_ip): Only accept overly large values for

View File

@ -4758,6 +4758,12 @@ pa_import (unused)
name = input_line_pointer;
c = get_symbol_end ();
symbol = symbol_find (name);
/* Ugh. We might be importing a symbol defined earlier in the file,
in which case all the code below will really screw things up
(set the wrong segment, symbol flags & type, etc). */
if (symbol == NULL || !S_IS_DEFINED (symbol))
{
symbol = symbol_find_or_make (name);
p = input_line_pointer;
*p = c;
@ -4772,7 +4778,7 @@ pa_import (unused)
/* Sigh. To be compatable with the HP assembler and to help
poorly written assembly code, we assign a type based on
the the current segment. Note only BSF_FUNCTION really
matters, we do not need to set the full SYMBOL_TYPE_* info here. */
matters, we do not need to set the full SYMBOL_TYPE_* info. */
if (now_seg == text_section)
symbol->bsym->flags |= BSF_FUNCTION;
@ -4780,6 +4786,14 @@ pa_import (unused)
Since this is an import, leave the section undefined. */
S_SET_SEGMENT (symbol, &bfd_und_section);
}
}
else
{
/* The symbol was already defined. Just eat everything up to
the end of the current statement. */
while (!is_end_of_statement ())
input_line_pointer++;
}
demand_empty_rest_of_line ();
}