From 49d97c60774b43c52db48073e7e8e2d38be18d3c Mon Sep 17 00:00:00 2001 From: Elena Zannoni Date: Thu, 26 Oct 2000 16:08:20 +0000 Subject: [PATCH] 2000-10-26 Elena Zannoni * stabsread.c (define_symbol): Update comment. 2000-10-26 Pierre Muller * stabsread.c (define_symbol): Set the type_name of the type of the new symbol to the symbol name for type symbol, if the language is Pascal. --- gdb/ChangeLog | 10 ++++++++++ gdb/stabsread.c | 21 +++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 959e04ac405..24e55bf3b2f 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,13 @@ +2000-10-26 Elena Zannoni + + * stabsread.c (define_symbol): Update comment. + +2000-10-26 Pierre Muller + + * stabsread.c (define_symbol): Set the type_name of the type + of the new symbol to the symbol name for type symbol, if the + language is Pascal. + 2000-10-26 Peter Schauer * arch-utils.c, arch-utils.h (default_convert_from_func_ptr_addr): diff --git a/gdb/stabsread.c b/gdb/stabsread.c index 7c374af9502..fb1a1843db2 100644 --- a/gdb/stabsread.c +++ b/gdb/stabsread.c @@ -1953,6 +1953,27 @@ define_symbol (CORE_ADDR valu, char *string, int desc, int type, Fortunately, this check seems not to be necessary for anything except pointers or functions. */ + /* ezannoni: 2000-10-26. This seems to apply for + versions of gcc older than 2.8. This was the original + problem: with the following code gdb would tell that + the type for name1 is caddr_t, and func is char() + typedef char *caddr_t; + char *name2; + struct x + { + char *name1; + } xx; + char *func() + { + } + main () {} + */ + + /* Pascal accepts names for pointer types. */ + if (current_subfile->language == language_pascal) + { + TYPE_NAME (SYMBOL_TYPE (sym)) = SYMBOL_NAME (sym); + } } else TYPE_NAME (SYMBOL_TYPE (sym)) = SYMBOL_NAME (sym); -- 2.30.2