btrace: fix test build error in gdb.btrace/instruction_history.c
[deliverable/binutils-gdb.git] / gdb / macrotab.h
index eeef7ee674fd52a04b1adf8d83d6046628740f27..ed863366e4cb21494297be0cacbc69a4693a45f0 100644 (file)
@@ -1,5 +1,5 @@
 /* Interface to C preprocessor macro tables for GDB.
-   Copyright (C) 2002-2013 Free Software Foundation, Inc.
+   Copyright (C) 2002-2016 Free Software Foundation, Inc.
    Contributed by Red Hat, Inc.
 
    This file is part of GDB.
@@ -22,6 +22,7 @@
 
 struct obstack;
 struct bcache;
+struct compunit_symtab;
 
 /* How do we represent a source location?  I mean, how should we
    represent them within GDB; the user wants to use all sorts of
@@ -125,7 +126,9 @@ struct macro_source_file
      a part of.  */
   struct macro_table *table;
 
-  /* A source file --- possibly a header file.  */
+  /* A source file --- possibly a header file.  This filename is relative to
+     the compilation directory (table->comp_dir), it exactly matches the
+     symtab->filename content.  */
   const char *filename;
 
   /* The location we were #included from, or zero if we are the
@@ -152,7 +155,8 @@ struct macro_source_file
    xmalloc if OBSTACK is zero.  Use BCACHE to store all macro names,
    arguments, definitions, and anything else that might be the same
    amongst compilation units in an executable file; if BCACHE is zero,
-   don't cache these things.
+   don't cache these things.  CUST is a pointer to the containing
+   compilation unit, or NULL if there isn't one.
 
    Note that, if either OBSTACK or BCACHE are non-zero, then removing
    information from the table may leak memory.  Neither obstacks nor
@@ -164,7 +168,8 @@ 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);
+                                     struct bcache *bcache,
+                                    struct compunit_symtab *cust);
 
 
 /* Free TABLE, and any macro definitions, source file structures,
@@ -347,5 +352,14 @@ void macro_for_each_in_scope (struct macro_source_file *file, int line,
                              macro_callback_fn fn,
                              void *user_data);
 
+/* 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.
+
+   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);
 
 #endif /* MACROTAB_H */
This page took 0.026158 seconds and 4 git commands to generate.