From 7b5d965008fee110409d054a787a7d825bc44436 Mon Sep 17 00:00:00 2001 From: Fred Fish Date: Wed, 12 Aug 1992 18:17:48 +0000 Subject: * buildsym.c (end_symtab): Document that end_symtab can return NULL under non-error conditions. * dwarfread.c (read_file_scope): Guard against dereferencing NULL returned from end_symtab for empty compilation units. --- gdb/buildsym.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'gdb/buildsym.c') diff --git a/gdb/buildsym.c b/gdb/buildsym.c index e0f69cd..566a66f 100644 --- a/gdb/buildsym.c +++ b/gdb/buildsym.c @@ -549,7 +549,14 @@ start_symtab (name, dirname, start_addr) (creating struct block's for them), then make the struct symtab for that file and put it in the list of all such. - END_ADDR is the address of the end of the file's text. */ + END_ADDR is the address of the end of the file's text. + + Note that it is possible for end_symtab() to return NULL. In particular, + for the DWARF case at least, it will return NULL when it finds a + compilation unit that has exactly one DIE, a TAG_compile_unit DIE. This + can happen when we link in an object file that was compiled from an empty + source file. Returning NULL is probably not the correct thing to do, + because then gdb will never know about this empty file (FIXME). */ struct symtab * end_symtab (end_addr, sort_pending, sort_linevec, objfile) -- cgit v1.1