blob: dd5b1b6bc5ae57e5e39fb72796b1889c75d00a56 [file] [log] [blame]
/* Symbol domains -*- c++ -*-
Copyright (C) 2023 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 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
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, see <http://www.gnu.org/licenses/>. */
/* UNDEF_DOMAIN is used when a domain has not been discovered or
none of the following apply. This usually indicates an error either
in the symbol information or in gdb's handling of symbols. */
SYM_DOMAIN (UNDEF)
/* VAR_DOMAIN is the usual domain. In C, this contains variables,
function names, typedef names and enum type values. */
SYM_DOMAIN (VAR)
/* STRUCT_DOMAIN is used in C to hold struct, union and enum type names.
Thus, if `struct foo' is used in a C program, it produces a symbol named
`foo' in the STRUCT_DOMAIN. */
SYM_DOMAIN (STRUCT)
/* MODULE_DOMAIN is used in Fortran to hold module type names. */
SYM_DOMAIN (MODULE)
/* LABEL_DOMAIN may be used for names of labels (for gotos). */
SYM_DOMAIN (LABEL)
/* Fortran common blocks. Their naming must be separate from VAR_DOMAIN.
They also always use LOC_COMMON_BLOCK. */
SYM_DOMAIN (COMMON_BLOCK)
/* TYPE_DOMAIN is for types and typedefs. Note that tags are not
found here, see STRUCT_DOMAIN above. If a language does not have a
tag namespace, then all types (including structures, etc) are
here. */
SYM_DOMAIN (TYPE)
/* FUNCTION_DOMAIN is for functions and methods. */
SYM_DOMAIN (FUNCTION)