Home | History | Annotate | Line # | Download | only in gdb
      1 /* Symbol domains  -*- c++ -*-
      2 
      3    Copyright (C) 2023 Free Software Foundation, Inc.
      4 
      5    This file is part of GDB.
      6 
      7    This program is free software; you can redistribute it and/or modify
      8    it under the terms of the GNU General Public License as published by
      9    the Free Software Foundation; either version 3 of the License, or
     10    (at your option) any later version.
     11 
     12    This program is distributed in the hope that it will be useful,
     13    but WITHOUT ANY WARRANTY; without even the implied warranty of
     14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     15    GNU General Public License for more details.
     16 
     17    You should have received a copy of the GNU General Public License
     18    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
     19 
     20 /* UNDEF_DOMAIN is used when a domain has not been discovered or
     21    none of the following apply.  This usually indicates an error either
     22    in the symbol information or in gdb's handling of symbols.  */
     23 
     24 SYM_DOMAIN (UNDEF)
     25 
     26 /* VAR_DOMAIN is the usual domain.  In C, this contains variables,
     27    function names, typedef names and enum type values.  */
     28 
     29 SYM_DOMAIN (VAR)
     30 
     31 /* STRUCT_DOMAIN is used in C to hold struct, union and enum type names.
     32    Thus, if `struct foo' is used in a C program, it produces a symbol named
     33    `foo' in the STRUCT_DOMAIN.  */
     34 
     35 SYM_DOMAIN (STRUCT)
     36 
     37 /* MODULE_DOMAIN is used in Fortran to hold module type names.  */
     38 
     39 SYM_DOMAIN (MODULE)
     40 
     41 /* LABEL_DOMAIN may be used for names of labels (for gotos).  */
     42 
     43 SYM_DOMAIN (LABEL)
     44 
     45 /* Fortran common blocks.  Their naming must be separate from VAR_DOMAIN.
     46    They also always use LOC_COMMON_BLOCK.  */
     47 SYM_DOMAIN (COMMON_BLOCK)
     48 
     49 /* TYPE_DOMAIN is for types and typedefs.  Note that tags are not
     50    found here, see STRUCT_DOMAIN above.  If a language does not have a
     51    tag namespace, then all types (including structures, etc) are
     52    here.  */
     53 
     54 SYM_DOMAIN (TYPE)
     55 
     56 /* FUNCTION_DOMAIN is for functions and methods.  */
     57 
     58 SYM_DOMAIN (FUNCTION)
     59