]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - gdb/macrotab.h
2.41 Release sources
[thirdparty/binutils-gdb.git] / gdb / macrotab.h
index 16e959a1dd8222b4761309a84fcbdece5e92badd..ecbf312aa67909fbb8c223deec1c7c75d3d677b5 100644 (file)
@@ -1,5 +1,5 @@
 /* Interface to C preprocessor macro tables for GDB.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2023 Free Software Foundation, Inc.
    Contributed by Red Hat, Inc.
 
    This file is part of GDB.
 #ifndef MACROTAB_H
 #define MACROTAB_H
 
-#include "common/function-view.h"
+#include "gdbsupport/function-view.h"
 
 struct obstack;
-struct bcache;
 struct compunit_symtab;
 
+namespace gdb {
+struct bcache;
+}
+
 /* How do we represent a source location?  I mean, how should we
    represent them within GDB; the user wants to use all sorts of
    ambiguous abbreviations, like "break 32" and "break foo.c:32"
@@ -47,20 +50,20 @@ struct compunit_symtab;
    number."  This is analogous to the way GCC reports errors in
    #include files:
 
-        $ gcc -c base.c
-        In file included from header2.h:8,
-                         from header1.h:3,
-                         from base.c:5:
-        header3.h:1: parse error before ')' token
-        $
+       $ gcc -c base.c
+       In file included from header2.h:8,
+                        from header1.h:3,
+                        from base.c:5:
+       header3.h:1: parse error before ')' token
+       $
 
    GCC tells you exactly what path of #inclusions led you to the
    problem.  It gives you complete information, in a way that the
    following would not:
 
-        $ gcc -c base.c
-        header3.h:1: parse error before ')' token
-        $
+       $ gcc -c base.c
+       header3.h:1: parse error before ')' token
+       $
 
    Converting all of GDB to use this is a big task, and I'm not really
    suggesting it should be a priority.  But this module's whole
@@ -92,7 +95,7 @@ struct macro_definition;
    line info, but not in macro info.  This means that GDB's symtabs
    (built from the former, among other things) may mention filenames
    that the #inclusion tree (built from the latter) doesn't have any
-   record of.  See macroscope.c:sal_macro_scope for how to accomodate
+   record of.  See macroscope.c:sal_macro_scope for how to accommodate
    this.
 
    It's worth noting that libcpp has a simpler way of representing all
@@ -170,7 +173,7 @@ struct macro_source_file
    the same source location (although 'gcc -DFOO -UFOO -DFOO=2' does
    do that in GCC 4.1.2.).  */
 struct macro_table *new_macro_table (struct obstack *obstack,
-                                     struct bcache *bcache,
+                                    gdb::bcache *bcache,
                                     struct compunit_symtab *cust);
 
 
@@ -192,7 +195,7 @@ void free_macro_table (struct macro_table *table);
    The macro table makes its own copy of FILENAME; the caller is
    responsible for freeing FILENAME when it is no longer needed.  */
 struct macro_source_file *macro_set_main (struct macro_table *table,
-                                          const char *filename);
+                                         const char *filename);
 
 
 /* Return the main source file of the macro table TABLE.  */
@@ -216,8 +219,8 @@ void macro_allow_redefinitions (struct macro_table *table);
    The macro table makes its own copy of INCLUDED; the caller is
    responsible for freeing INCLUDED when it is no longer needed.  */
 struct macro_source_file *macro_include (struct macro_source_file *source,
-                                         int line,
-                                         const char *included);
+                                        int line,
+                                        const char *included);
 
 /* Define any special macros, like __FILE__ or __LINE__.  This should
    be called once, on the main source file.  */
@@ -230,9 +233,9 @@ void macro_define_special (struct macro_table *table);
    path.  e.g., `stdio.h', not `/usr/include/stdio.h'.  If NAME
    appears more than once in the inclusion tree, return the
    least-nested inclusion --- the one closest to the main source file.  */
-struct macro_source_file *(macro_lookup_inclusion
-                           (struct macro_source_file *source,
-                            const char *name));
+struct macro_source_file *macro_lookup_inclusion
+                         (struct macro_source_file *source,
+                          const char *name);
 
 
 /* Record an object-like #definition (i.e., one with no parameter list).
@@ -241,7 +244,7 @@ struct macro_source_file *(macro_lookup_inclusion
    string is REPLACEMENT.  This function makes copies of NAME and
    REPLACEMENT; the caller is responsible for freeing them.  */
 void macro_define_object (struct macro_source_file *source, int line,
-                          const char *name, const char *replacement);
+                         const char *name, const char *replacement);
 
 
 /* Record an function-like #definition (i.e., one with a parameter list).
@@ -255,15 +258,15 @@ void macro_define_object (struct macro_source_file *source, int line,
    NAME, ARGV, and REPLACEMENT; the caller is responsible for freeing
    them.  */
 void macro_define_function (struct macro_source_file *source, int line,
-                            const char *name, int argc, const char **argv,
-                            const char *replacement);
+                           const char *name, int argc, const char **argv,
+                           const char *replacement);
 
 
 /* Record an #undefinition.
    Record in SOURCE's macro table that, at line number LINE in SOURCE,
    we removed the definition for the preprocessor symbol named NAME.  */
 void macro_undef (struct macro_source_file *source, int line,
-                  const char *name);
+                 const char *name);
 
 /* Different kinds of macro definitions.  */
 enum macro_kind
@@ -315,9 +318,9 @@ struct macro_definition
    effect at the end of the file.  The macro table owns the structure;
    the caller need not free it.  Return zero if NAME is not #defined
    at that point.  */
-struct macro_definition *(macro_lookup_definition
-                          (struct macro_source_file *source,
-                           int line, const char *name));
+struct macro_definition *macro_lookup_definition
+                        (struct macro_source_file *source,
+                         int line, const char *name);
 
 
 /* Return the source location of the definition for NAME in scope at
@@ -325,11 +328,11 @@ struct macro_definition *(macro_lookup_definition
    number of the definition, and return a source file structure for
    the file.  Return zero if NAME has no definition in scope at that
    point, and leave *DEFINITION_LINE unchanged.  */
-struct macro_source_file *(macro_definition_location
-                           (struct macro_source_file *source,
-                            int line,
-                            const char *name,
-                            int *definition_line));
+struct macro_source_file *macro_definition_location
+                         (struct macro_source_file *source,
+                          int line,
+                          const char *name,
+                          int *definition_line);
 
 /* Prototype for a callback callable when walking a macro table.  NAME
    is the name of the macro, and DEFINITION is the definition.  SOURCE
@@ -351,12 +354,11 @@ void macro_for_each_in_scope (struct macro_source_file *file, int line,
 
 /* Return FILE->filename with possibly prepended compilation directory name.
    This is raw concatenation without the "set substitute-path" and gdb_realpath
-   applications done by symtab_to_fullname.  Returned string must be freed by
-   xfree.
+   applications done by symtab_to_fullname.
 
    THis function ignores the "set filename-display" setting.  Its default
    setting is "relative" which is backward compatible but the former behavior
    of macro filenames printing was "absolute".  */
-extern char *macro_source_fullname (struct macro_source_file *file);
+extern std::string macro_source_fullname (struct macro_source_file *file);
 
 #endif /* MACROTAB_H */