aboutsummaryrefslogtreecommitdiff
path: root/gdb/partial-stab.h
diff options
context:
space:
mode:
authorJohn Gilmore <gnu@cygnus>1992-06-14 18:10:10 +0000
committerJohn Gilmore <gnu@cygnus>1992-06-14 18:10:10 +0000
commitbcbf95597c9ce57a9899705d2242e6a1714f6301 (patch)
tree09c39246248380226458fd4244bf8a8f4687adb1 /gdb/partial-stab.h
parentc3c93fda326ef5fcbb528dc35004c6a11e0c574f (diff)
downloadgdb-bcbf95597c9ce57a9899705d2242e6a1714f6301.zip
gdb-bcbf95597c9ce57a9899705d2242e6a1714f6301.tar.gz
gdb-bcbf95597c9ce57a9899705d2242e6a1714f6301.tar.bz2
* dbxread.c (end_psymtab): Only reset texthigh if it's not already
set. Don't reset our own texthigh, or dependency-only pst's, in scanning all the rest of the psymtabs. (process_one_symbol): Fix comments around N_OBJ, N_OPT, N_UNDF. * buildsym.h (N_UNDF): Improve comments. (N_LSYM, etc): Skip types without names (":T(0,3)=sfoob...").
Diffstat (limited to 'gdb/partial-stab.h')
-rw-r--r--gdb/partial-stab.h33
1 files changed, 21 insertions, 12 deletions
diff --git a/gdb/partial-stab.h b/gdb/partial-stab.h
index d9d757f..9686301 100644
--- a/gdb/partial-stab.h
+++ b/gdb/partial-stab.h
@@ -137,8 +137,11 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
case N_UNDF:
#ifdef DBXREAD_ONLY
if (processing_acc_compilation && bufp->n_strx == 1) {
- /* deal with relative offsets in the string table
- used in ELF+STAB under Solaris */
+ /* Deal with relative offsets in the string table
+ used in ELF+STAB under Solaris. If we want to use the
+ n_strx field, which contains the name of the file,
+ we must adjust file_string_table_offset *before* calling
+ SET_NAMESTRING(). */
past_first_source_file = 1;
file_string_table_offset = next_file_string_table_offset;
next_file_string_table_offset =
@@ -315,22 +318,28 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
switch (p[1])
{
case 'T':
- ADD_PSYMBOL_TO_LIST (namestring, p - namestring,
- STRUCT_NAMESPACE, LOC_TYPEDEF,
- objfile->static_psymbols, CUR_SYMBOL_VALUE);
- if (p[2] == 't')
+ if (p != namestring) /* a name is there, not just :T... */
{
- /* Also a typedef with the same name. */
ADD_PSYMBOL_TO_LIST (namestring, p - namestring,
- VAR_NAMESPACE, LOC_TYPEDEF,
+ STRUCT_NAMESPACE, LOC_TYPEDEF,
objfile->static_psymbols, CUR_SYMBOL_VALUE);
- p += 1;
+ if (p[2] == 't')
+ {
+ /* Also a typedef with the same name. */
+ ADD_PSYMBOL_TO_LIST (namestring, p - namestring,
+ VAR_NAMESPACE, LOC_TYPEDEF,
+ objfile->static_psymbols, CUR_SYMBOL_VALUE);
+ p += 1;
+ }
}
goto check_enum;
case 't':
- ADD_PSYMBOL_TO_LIST (namestring, p - namestring,
- VAR_NAMESPACE, LOC_TYPEDEF,
- objfile->static_psymbols, CUR_SYMBOL_VALUE);
+ if (p != namestring) /* a name is there, not just :T... */
+ {
+ ADD_PSYMBOL_TO_LIST (namestring, p - namestring,
+ VAR_NAMESPACE, LOC_TYPEDEF,
+ objfile->static_psymbols, CUR_SYMBOL_VALUE);
+ }
check_enum:
/* If this is an enumerated type, we need to
add all the enum constants to the partial symbol