#define yyerrflag and yynerrs to avoid global name conflicts.
[deliverable/binutils-gdb.git] / gdb / symtab.h
index 9e36c65c7888b278cd34be9b28f4d9fe0492d401..ac0b8bc2e0c2a761a68f1fff523bb2d31dc7bfd4 100644 (file)
@@ -555,6 +555,13 @@ struct symtab
     /* Full name of file as found by searching the source path.
        0 if not yet known.  */
     char *fullname;
+
+    /* Anything extra for this symtab.  This is for target machines
+       with special debugging info of some sort (which cannot just
+       be represented in a normal symtab).  */
+#if defined (EXTRA_SYMTAB_INFO)
+    EXTRA_SYMTAB_INFO
+#endif
   };
 
 /* Each source file that has not been fully read in is represented by
@@ -759,10 +766,26 @@ int current_source_line;
 
 /* The virtual function table is now an array of structures
    which have the form { int16 offset, delta; void *pfn; }. 
-   Gee, can we have more documentation than that?   FIXME.  -- gnu */
+
+   In normal virtual function tables, OFFSET is unused.
+   DELTA is the amount which is added to the apparent object's base
+   address in order to point to the actual object to which the
+   virtual function should be applied.
+   PFN is a pointer to the virtual function.  */
   
 #define VTBL_FNADDR_OFFSET 2
+
+/* Macro that yields non-zero value iff NAME is the prefix
+   for C++ operator names.  If you leave out the parenthesis
+   here you will lose!
+
+   Currently 'o' 'p' CPLUS_MARKER is used for both the symbol in the
+   symbol-file and the names in gdb's symbol table.  */
+#define OPNAME_PREFIX_P(NAME) ((NAME)[0] == 'o' && (NAME)[1] == 'p' \
+                              && (NAME)[2] == CPLUS_MARKER)
+
+#define VTBL_PREFIX_P(NAME) ((NAME)[3] == CPLUS_MARKER \
+                            && !strncmp ((NAME), "_vt", 3))
 \f
 /* Functions that work on the objects described above */
 
@@ -799,8 +822,15 @@ extern int contained_in();
 /* C++ stuff.  */
 extern struct type *lookup_reference_type ();
 extern struct type *lookup_member_type ();
+extern struct type *lookup_method_type ();
 extern struct type *lookup_class ();
 extern void smash_to_method_type ();
+void smash_to_member_type (
+#ifdef __STDC__
+                          struct type *, struct type *, struct type *
+#endif
+                          );
+extern struct type *allocate_stub_method ();
 /* end of C++ stuff.  */
 
 extern void free_all_symtabs ();
@@ -823,10 +853,11 @@ extern struct type *builtin_type_double;
    read-in.  */
 extern struct type *builtin_type_error;
 
-#ifdef LONG_LONG
 extern struct type *builtin_type_long_long;
 extern struct type *builtin_type_unsigned_long_long;
 
+/* LONG_LONG is defined if the host has "long long".  */
+#ifdef LONG_LONG
 #define BUILTIN_TYPE_LONGEST builtin_type_long_long
 #define BUILTIN_TYPE_UNSIGNED_LONGEST builtin_type_unsigned_long_long
 /* This should not be a typedef, because "unsigned LONGEST" needs
@@ -883,6 +914,16 @@ void symbol_file_add ();
 /* source.c */
 int identify_source_line ();
 void print_source_lines ();
+void forget_cached_source_info (
+#ifdef __STDC__
+                               void
+#endif
+                               );
+void select_source_symtab (
+#ifdef __STDC__
+                          struct symtab *
+#endif
+                          );
 
 char **make_symbol_completion_list ();
 
This page took 0.024268 seconds and 4 git commands to generate.