* stabsread.c (define_symbol): If we choose not to combine

two symbols, don't just ignore the second (LOC_REGISTER) one.
	* printcmd.c (print_frame_args): If we have a LOC_ARG and a
	LOC_REGISTER, use the LOC_ARG not the LOC_REGISTER.
This commit is contained in:
Jim Kingdon 1993-12-29 18:42:52 +00:00
parent 6c06a518bf
commit 4bfe9e81cd
2 changed files with 15 additions and 9 deletions

View File

@ -1,3 +1,10 @@
Wed Dec 29 12:32:08 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
* stabsread.c (define_symbol): If we choose not to combine
two symbols, don't just ignore the second (LOC_REGISTER) one.
* printcmd.c (print_frame_args): If we have a LOC_ARG and a
LOC_REGISTER, use the LOC_ARG not the LOC_REGISTER.
Tue Dec 28 15:08:00 1993 Fred Fish (fnf@deneb.cygnus.com)
* solib.c (DEBUG_BASE): Remove macro and all references.

View File

@ -929,10 +929,7 @@ define_symbol (valu, string, desc, type, objfile)
SYMBOL_VALUE (sym) = SP_REGNUM; /* Known safe, though useless */
}
SYMBOL_NAMESPACE (sym) = VAR_NAMESPACE;
if (within_function
&& REG_STRUCT_HAS_ADDR (processing_gcc_compilation)
&& (TYPE_CODE (SYMBOL_TYPE (sym)) == TYPE_CODE_STRUCT
|| TYPE_CODE (SYMBOL_TYPE (sym)) == TYPE_CODE_UNION))
if (within_function)
{
/* Sun cc uses a pair of symbols, one 'p' and one 'r' with the same
name to represent an argument passed in a register.
@ -941,17 +938,19 @@ define_symbol (valu, string, desc, type, objfile)
But we only do this in the REG_STRUCT_HAS_ADDR case, so that
we can still get information about what is going on with the
stack (VAX for computing args_printed, possible future changes
to use stack slots instead of saved registers in backtraces,
etc.).
stack (VAX for computing args_printed, using stack slots instead
of saved registers in backtraces, etc.).
Note that this code illegally combines
main(argc) struct foo argc; { register struct foo argc; }
but this case is considered pathological and causes a warning
from a decent compiler. */
if (local_symbols
&& local_symbols->nsyms > 0)
&& local_symbols->nsyms > 0
&& REG_STRUCT_HAS_ADDR (processing_gcc_compilation)
&& (TYPE_CODE (SYMBOL_TYPE (sym)) == TYPE_CODE_STRUCT
|| TYPE_CODE (SYMBOL_TYPE (sym)) == TYPE_CODE_UNION))
{
struct symbol *prev_sym;
prev_sym = local_symbols->symbol[local_symbols->nsyms - 1];