* source.c (openp): Squelch warning about "filename".
[deliverable/binutils-gdb.git] / gdb / symtab.h
index 38637475c04aa1bf8b11a297cbce87ca332c5272..1d44aceb9a315cd9e2f467a67ec83f99259cf91b 100644 (file)
@@ -94,13 +94,6 @@ struct general_symbol_info
       char *demangled_name;
     }
     objc_specific;
-#if 0
-/* OBSOLETE struct chill_specific        *//* For Chill */
-    /* OBSOLETE   { */
-    /* OBSOLETE     char *demangled_name; */
-    /* OBSOLETE   } */
-    /* OBSOLETE chill_specific; */
-#endif
   }
   language_specific;
 
@@ -126,6 +119,14 @@ struct general_symbol_info
 
 extern CORE_ADDR symbol_overlayed_address (CORE_ADDR, asection *);
 
+/* Note that all the following SYMBOL_* macros are used with the
+   SYMBOL argument being either a partial symbol, a minimal symbol or
+   a full symbol.  All three types have a ginfo field.  In particular
+   the SYMBOL_INIT_LANGUAGE_SPECIFIC, SYMBOL_INIT_DEMANGLED_NAME,
+   SYMBOL_DEMANGLED_NAME macros cannot be entirely substituted by
+   functions, unless the callers are changed to pass in the ginfo
+   field only, instead of the SYMBOL parameter.  */
+
 #define SYMBOL_NAME(symbol)            (symbol)->ginfo.name
 #define SYMBOL_VALUE(symbol)           (symbol)->ginfo.value.ivalue
 #define SYMBOL_VALUE_ADDRESS(symbol)   (symbol)->ginfo.value.address
@@ -151,22 +152,11 @@ extern void symbol_init_language_specific (struct general_symbol_info *symbol,
 extern void symbol_init_demangled_name (struct general_symbol_info *symbol,
                                        struct obstack *obstack);
 
-
-/* Macro that returns the demangled name for a symbol based on the language
-   for that symbol.  If no demangled name exists, returns NULL. */
-
-#define SYMBOL_DEMANGLED_NAME(symbol)                                  \
-  (SYMBOL_LANGUAGE (symbol) == language_cplus                          \
-   || SYMBOL_LANGUAGE (symbol) == language_java                                \
-   ? SYMBOL_CPLUS_DEMANGLED_NAME (symbol)                              \
-      : (SYMBOL_LANGUAGE (symbol) == language_objc                     \
-         ? SYMBOL_OBJC_DEMANGLED_NAME (symbol)                         \
-   : /* OBSOLETE (SYMBOL_LANGUAGE (symbol) == language_chill */                \
-     /* OBSOLETE ? SYMBOL_CHILL_DEMANGLED_NAME (symbol) */             \
-        NULL))
-
-/* OBSOLETE #define SYMBOL_CHILL_DEMANGLED_NAME(symbol) */
-/* OBSOLETE (symbol)->ginfo.language_specific.chill_specific.demangled_name */
+/* Return the demangled name for a symbol based on the language for
+   that symbol.  If no demangled name exists, return NULL. */
+#define SYMBOL_DEMANGLED_NAME(symbol) \
+  (symbol_demangled_name (&(symbol)->ginfo))
+extern char *symbol_demangled_name (struct general_symbol_info *symbol);
 
 #define SYMBOL_OBJC_DEMANGLED_NAME(symbol)                             \
    (symbol)->ginfo.language_specific.objc_specific.demangled_name
@@ -803,11 +793,13 @@ struct section_offsets
     ? (internal_error (__FILE__, __LINE__, "Section index is uninitialized"), -1) \
     : secoff->offsets[whichone])
 
-/* The maximum possible size of a section_offsets table.  */
-
-#define SIZEOF_SECTION_OFFSETS \
+/* The size of a section_offsets table for N sections.  */
+#define SIZEOF_N_SECTION_OFFSETS(n) \
   (sizeof (struct section_offsets) \
-   + sizeof (((struct section_offsets *) 0)->offsets) * (SECT_OFF_MAX-1))
+   + sizeof (((struct section_offsets *) 0)->offsets) * ((n)-1))
+
+/* The maximum possible size of a section_offsets table.  */
+#define SIZEOF_SECTION_OFFSETS (SIZEOF_N_SECTION_OFFSETS (SECT_OFF_MAX))
 
 /* Each source file or header is represented by a struct symtab. 
    These objects are chained through the `next' field.  */
@@ -1207,13 +1199,7 @@ struct symtab_and_line
   CORE_ADDR end;
 };
 
-#define INIT_SAL(sal) { \
-  (sal)->symtab  = 0;   \
-  (sal)->section = 0;   \
-  (sal)->line    = 0;   \
-  (sal)->pc      = 0;   \
-  (sal)->end     = 0;   \
-}
+extern void init_sal (struct symtab_and_line *sal);
 
 struct symtabs_and_lines
 {
@@ -1267,13 +1253,6 @@ extern struct symtab_and_line find_pc_line (CORE_ADDR, int);
 
 extern struct symtab_and_line find_pc_sect_line (CORE_ADDR, asection *, int);
 
-/* Given an address, return the nearest symbol at or below it in memory.
-   Optionally return the symtab it's from through 2nd arg, and the
-   address in inferior memory of the symbol through 3rd arg.  */
-
-extern struct symbol *find_addr_symbol (CORE_ADDR, struct symtab **,
-                                       CORE_ADDR *);
-
 /* Given a symtab and line number, return the pc there.  */
 
 extern int find_line_pc (struct symtab *, int, CORE_ADDR *);
This page took 0.024758 seconds and 4 git commands to generate.