X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;ds=sidebyside;f=gdb%2Fbuildsym.h;h=6f8b09f4e0d206ac7f80db691725eed8e4dc4b6c;hb=09d559e4e07c6f766fafbfddbf9212e9d9e7b777;hp=e80d8c6743ea0ad0b9cf791e5e9772d2649b4d70;hpb=da3331ec167849ef6216f35565ba014bbae55ee3;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/buildsym.h b/gdb/buildsym.h index e80d8c6743..6f8b09f4e0 100644 --- a/gdb/buildsym.h +++ b/gdb/buildsym.h @@ -1,12 +1,13 @@ /* Build symbol tables in GDB's internal format. - Copyright 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1995, 1996, - 1997, 1998, 1999, 2000, 2002, 2003 Free Software Foundation, Inc. + Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1995, 1996, + 1997, 1998, 1999, 2000, 2002, 2003, 2007, 2008, 2009 + Free Software Foundation, Inc. This file is part of GDB. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or + the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -15,15 +16,14 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ + along with this program. If not, see . */ #if !defined (BUILDSYM_H) #define BUILDSYM_H 1 struct objfile; struct symbol; +struct addrmap; /* This module provides definitions used for creating and adding to the symbol table. These routines are called from various symbol- @@ -47,12 +47,14 @@ struct block; hashname() */ /* Name of source file whose symbol data we are now processing. This - comes from a symbol of type N_SO. */ + comes from a symbol of type N_SO for stabs. For Dwarf it comes from the + DW_AT_name attribute of a DW_TAG_compile_unit DIE. */ EXTERN char *last_source_file; /* Core address of start of text of current source file. This too - comes from the N_SO symbol. */ + comes from the N_SO symbol. For Dwarf it typically comes from the + DW_AT_low_pc attribute of a DW_TAG_compile_unit DIE. */ EXTERN CORE_ADDR last_source_start_addr; @@ -68,11 +70,11 @@ struct subfile struct linetable *line_vector; int line_vector_length; enum language language; + char *producer; char *debugformat; + struct symtab *symtab; }; -EXTERN struct subfile *subfiles; - EXTERN struct subfile *current_subfile; /* Global variable which, when set, indicates that we are processing a @@ -123,6 +125,10 @@ EXTERN struct pending *local_symbols; EXTERN struct pending *param_symbols; +/* "using" directives local to lexical context. */ + +EXTERN struct using_direct *using_directives; + /* Stack representing unclosed lexical contexts (that will become blocks, eventually). */ @@ -136,6 +142,10 @@ struct context_stack struct pending *params; + /* Pending using directives at the time we entered. */ + + struct using_direct *using_directives; + /* Pointer into blocklist as of entry */ struct pending_block *old_blocks; @@ -232,11 +242,14 @@ extern void add_symbol_to_list (struct symbol *symbol, extern struct symbol *find_symbol_in_list (struct pending *list, char *name, int length); -extern void finish_block (struct symbol *symbol, - struct pending **listhead, - struct pending_block *old_blocks, - CORE_ADDR start, CORE_ADDR end, - struct objfile *objfile); +extern struct block *finish_block (struct symbol *symbol, + struct pending **listhead, + struct pending_block *old_blocks, + CORE_ADDR start, CORE_ADDR end, + struct objfile *objfile); + +extern void record_block_range (struct block *, + CORE_ADDR start, CORE_ADDR end_inclusive); extern void really_free_pendings (void *dummy); @@ -281,6 +294,8 @@ extern void record_pending_block (struct objfile *objfile, extern void record_debugformat (char *format); +extern void record_producer (const char *producer); + extern void merge_symbol_lists (struct pending **srclist, struct pending **targetlist);