2012-03-01 Pedro Alves <palves@redhat.com>
[deliverable/binutils-gdb.git] / gdb / dwarf2loc.h
index 08849ed5474a6bbd367981608113c645b0db3abb..a7f835fe6a724b0d3390ee656ebc9a697b6a7af7 100644 (file)
@@ -1,7 +1,6 @@
 /* DWARF 2 location expression support for GDB.
 
-   Copyright (C) 2003, 2005, 2007, 2008, 2009, 2010, 2011
-   Free Software Foundation, Inc.
+   Copyright (C) 2003, 2005, 2007-2012 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -31,13 +30,20 @@ struct axs_value;
 /* This header is private to the DWARF-2 reader.  It is shared between
    dwarf2read.c and dwarf2loc.c.  */
 
+/* `set debug entry-values' setting.  */
+extern int entry_values_debug;
+
 /* Return the OBJFILE associated with the compilation unit CU.  If CU
    came from a separate debuginfo file, then the master objfile is
    returned.  */
 struct objfile *dwarf2_per_cu_objfile (struct dwarf2_per_cu_data *cu);
 
 /* Return the address size given in the compilation unit header for CU.  */
-CORE_ADDR dwarf2_per_cu_addr_size (struct dwarf2_per_cu_data *cu);
+int dwarf2_per_cu_addr_size (struct dwarf2_per_cu_data *cu);
+
+/* Return the DW_FORM_ref_addr size given in the compilation unit header for
+   CU.  */
+int dwarf2_per_cu_ref_addr_size (struct dwarf2_per_cu_data *cu);
 
 /* Return the offset size given in the compilation unit header for CU.  */
 int dwarf2_per_cu_offset_size (struct dwarf2_per_cu_data *cu);
@@ -80,10 +86,12 @@ struct value *dwarf2_evaluate_loc_desc (struct type *type,
 
 struct dwarf2_locexpr_baton
 {
-  /* Pointer to the start of the location expression.  */
+  /* Pointer to the start of the location expression.  Valid only if SIZE is
+     not zero.  */
   const gdb_byte *data;
 
-  /* Length of the location expression.  */
+  /* Length of the location expression.  For optimized out expressions it is
+     zero.  */
   unsigned long size;
 
   /* The compilation unit containing the symbol whose location
@@ -132,4 +140,23 @@ extern void dwarf2_compile_expr_to_ax (struct agent_expr *expr,
                                       const gdb_byte *op_end,
                                       struct dwarf2_per_cu_data *per_cu);
 
+/* Determined tail calls for constructing virtual tail call frames.  */
+
+struct call_site_chain
+  {
+    /* Initially CALLERS == CALLEES == LENGTH.  For partially ambiguous result
+       CALLERS + CALLEES < LENGTH.  */
+    int callers, callees, length;
+
+    /* Variably sized array with LENGTH elements.  Later [0..CALLERS-1] contain
+       top (GDB "prev") sites and [LENGTH-CALLEES..LENGTH-1] contain bottom
+       (GDB "next") sites.  One is interested primarily in the PC field.  */
+    struct call_site *call_site[1];
+  };
+
+struct call_site_stuff;
+extern struct call_site_chain *call_site_find_chain (struct gdbarch *gdbarch,
+                                                    CORE_ADDR caller_pc,
+                                                    CORE_ADDR callee_pc);
+
 #endif /* dwarf2loc.h */
This page took 0.026661 seconds and 4 git commands to generate.