public inbox for archer-commits@sourceware.org
help / color / mirror / Atom feed
* [SCM]  archer-jankratochvil-entryval: Merge branch 'pending' into archer-jankratochvil-entryval
@ 2011-07-13 18:42 jkratoch
  0 siblings, 0 replies; only message in thread
From: jkratoch @ 2011-07-13 18:42 UTC (permalink / raw)
  To: archer-commits

The branch, archer-jankratochvil-entryval has been updated
       via  290289dd1b2623b33273ceb69f3e072b4f29f37c (commit)
       via  83bc367ac9f6e8d8220426b7eff49a8915e9f164 (commit)
       via  be204f01e52c6626a5fafce77ff4f0585e743c3f (commit)
       via  872b7668686ffae68f1f3397de9d68512679e8e7 (commit)
       via  273a2e8358e545b1740296485dc07cfa468fbe67 (commit)
       via  959c84add59f0b5f076c16ec0de0d86fe803d348 (commit)
       via  5051b741af115cf297fa03f91c9894bc3664eae3 (commit)
       via  aaf99e37f69b06a5964b2ed498ba31720422a932 (commit)
       via  0f17c0ef1d6ec07126a848695c7d22c7acd1412e (commit)
       via  fcc51a3385b147c074ff0abb0ddfcdece40d100e (commit)
       via  c4f0e1880e986f8a359b5f9a3d837587706cfd4a (commit)
      from  6902ddff68c140462dd20623462d6e2b894059c7 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email.

- Log -----------------------------------------------------------------
commit 290289dd1b2623b33273ceb69f3e072b4f29f37c
Merge: 0f17c0e 83bc367
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date:   Wed Jul 13 20:41:20 2011 +0200

    Merge branch 'pending' into archer-jankratochvil-entryval

commit 83bc367ac9f6e8d8220426b7eff49a8915e9f164
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date:   Wed Jul 13 20:39:12 2011 +0200

    [patch] Fix crash on empty DWARF expressions NULL DATA vs. zero SIZE

commit be204f01e52c6626a5fafce77ff4f0585e743c3f
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date:   Wed Jul 13 20:37:54 2011 +0200

    [patch] Fix DW_OP_call2 and DW_OP_call4 for max-cache-age 0 #2

commit 872b7668686ffae68f1f3397de9d68512679e8e7
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date:   Wed Jul 13 17:07:13 2011 +0000

    gdb/
    	Work around kgdb.
    	* remote.c (remote_get_trace_status): New variable ex.  Put
    	remote_get_noisy_reply into TRY_CATCH.  Call exception_fprintf for it.

commit 273a2e8358e545b1740296485dc07cfa468fbe67
Author: ratmice <ratmice>
Date:   Wed Jul 13 17:00:55 2011 +0000

    * gdb.python/py-objfile-script-gdb.py: Renamed to
    py-objfile-script-gdb.py.in.
    * gdb.python/py-objfile-script-gdb.py.in: Renamed from
    py-objfile-script-gdb.py.
    * gdb.python/py-objfile-script.exp: Update reference to
    py-objfile-script-gdb.py.

commit 959c84add59f0b5f076c16ec0de0d86fe803d348
Author: Tom Tromey <tromey@redhat.com>
Date:   Wed Jul 13 16:51:21 2011 +0000

    	* dwarf2expr.c (execute_stack_op) <DW_OP_GNU_regval_type>: Use
    	value_from_contents for final conversion.

commit 0f17c0ef1d6ec07126a848695c7d22c7acd1412e
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date:   Wed Jul 13 08:26:47 2011 +0200

    Revert "dwarf2_fetch_die_attr_block"
    
    This reverts commit b3de10b16493db76c499d759691cdd75c25a376e.

-----------------------------------------------------------------------

Summary of changes:
 bfd/version.h                                      |    2 +-
 gdb/ChangeLog                                      |   17 +++++
 gdb/dwarf2expr.c                                   |    4 +-
 gdb/dwarf2loc.c                                    |   68 ++++++++++++--------
 gdb/dwarf2loc.h                                    |   10 ++-
 gdb/dwarf2read.c                                   |   57 ++++++++++++-----
 gdb/remote.c                                       |   12 +++-
 gdb/testsuite/ChangeLog                            |   14 ++++
 gdb/testsuite/gdb.dwarf2/dw2-op-call.S             |   34 ++++++++++-
 gdb/testsuite/gdb.dwarf2/dw2-op-call.exp           |   15 +++--
 gdb/testsuite/gdb.dwarf2/implptr.exp               |    3 +
 ...e-script-gdb.py => py-objfile-script-gdb.py.in} |    0
 gdb/testsuite/gdb.python/py-objfile-script.exp     |    2 +-
 gdb/version.in                                     |    2 +-
 14 files changed, 181 insertions(+), 59 deletions(-)
 rename gdb/testsuite/gdb.python/{py-objfile-script-gdb.py => py-objfile-script-gdb.py.in} (100%)

First 500 lines of diff:
diff --git a/bfd/version.h b/bfd/version.h
index 934decb..80152ec 100644
--- a/bfd/version.h
+++ b/bfd/version.h
@@ -1,4 +1,4 @@
-#define BFD_VERSION_DATE 20110712
+#define BFD_VERSION_DATE 20110713
 #define BFD_VERSION @bfd_version@
 #define BFD_VERSION_STRING  @bfd_version_package@ @bfd_version_string@
 #define REPORT_BUGS_TO @report_bugs_to@
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 8ed7eaf..6d2ee2c 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,20 @@
+2011-07-13  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	Work around kgdb.
+	* remote.c (remote_get_trace_status): New variable ex.  Put
+	remote_get_noisy_reply into TRY_CATCH.  Call exception_fprintf for it.
+
+2011-07-13  Tom Tromey  <tromey@redhat.com>
+
+	* dwarf2expr.c (execute_stack_op) <DW_OP_GNU_regval_type>: Use
+	value_from_contents for final conversion.
+
+2011-07-13  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	Code cleanup.
+	* dwarf2loc.c (dwarf_expr_frame_base_1, dwarf2_evaluate_loc_desc_full):
+	Indent prototypes so they do not get into tags.
+
 2011-07-12  Jan Kratochvil  <jan.kratochvil@redhat.com>
 
 	Code cleanup making also optimized out values lazy.
diff --git a/gdb/dwarf2expr.c b/gdb/dwarf2expr.c
index c54907d..ee417bc 100644
--- a/gdb/dwarf2expr.c
+++ b/gdb/dwarf2expr.c
@@ -1393,7 +1393,9 @@ execute_stack_op (struct dwarf_expr_context *ctx,
 
 	    type = dwarf_get_base_type (ctx, type_die, 0);
 	    result = (ctx->read_reg) (ctx->baton, reg);
-	    result_val = value_from_ulongest (type, result);
+	    result_val = value_from_ulongest (address_type, result);
+	    result_val = value_from_contents (type,
+					      value_contents_all (result_val));
 	  }
 	  break;
 
diff --git a/gdb/dwarf2loc.c b/gdb/dwarf2loc.c
index 1b1deaf..bf55eb9 100644
--- a/gdb/dwarf2loc.c
+++ b/gdb/dwarf2loc.c
@@ -47,15 +47,15 @@
 
 extern int dwarf2_always_disassemble;
 
-static void
-dwarf_expr_frame_base_1 (struct symbol *framefunc, CORE_ADDR pc,
-			 const gdb_byte **start, size_t *length);
+static void dwarf_expr_frame_base_1 (struct symbol *framefunc, CORE_ADDR pc,
+				     const gdb_byte **start, size_t *length);
 
-static struct value *
-dwarf2_evaluate_loc_desc_full (struct type *type, struct frame_info *frame,
-			       const gdb_byte *data, unsigned short size,
-			       struct dwarf2_per_cu_data *per_cu,
-			       LONGEST byte_offset);
+static struct value *dwarf2_evaluate_loc_desc_full (struct type *type,
+						    struct frame_info *frame,
+						    const gdb_byte *data,
+						    unsigned short size,
+					      struct dwarf2_per_cu_data *per_cu,
+						    LONGEST byte_offset);
 
 /* A function for dealing with location lists.  Given a
    symbol baton (BATON) and a pc value (PC), find the appropriate
@@ -112,7 +112,10 @@ dwarf2_find_location_expression (struct dwarf2_loclist_baton *baton,
 
       /* An end-of-list entry.  */
       if (low == 0 && high == 0)
-	return NULL;
+	{
+	  *locexpr_length = 0;
+	  return NULL;
+	}
 
       /* Otherwise, a location expression entry.  */
       low += base_address;
@@ -212,7 +215,7 @@ dwarf_expr_frame_base_1 (struct symbol *framefunc, CORE_ADDR pc,
 			 const gdb_byte **start, size_t *length)
 {
   if (SYMBOL_LOCATION_BATON (framefunc) == NULL)
-    *start = NULL;
+    *length = 0;
   else if (SYMBOL_COMPUTED_OPS (framefunc) == &dwarf2_loclist_funcs)
     {
       struct dwarf2_loclist_baton *symbaton;
@@ -231,10 +234,10 @@ dwarf_expr_frame_base_1 (struct symbol *framefunc, CORE_ADDR pc,
 	  *start = symbaton->data;
 	}
       else
-	*start = NULL;
+	*length = 0;
     }
 
-  if (*start == NULL)
+  if (*length == 0)
     error (_("Could not find the frame base for \"%s\"."),
 	   SYMBOL_NATURAL_NAME (framefunc));
 }
@@ -283,14 +286,19 @@ per_cu_dwarf_call (struct dwarf_expr_context *ctx, size_t die_offset,
 		   void *baton)
 {
   struct dwarf2_locexpr_baton block;
+  struct cleanup *back_to;
+
+  block = dwarf2_fetch_die_location_block (die_offset, per_cu,
+					   get_frame_pc, baton);
 
-  block = dwarf2_fetch_die_attr_block (die_offset, per_cu, DW_AT_location,
-				       get_frame_pc, baton);
+  back_to = make_cleanup (xfree, (void *) block.data);
 
   /* DW_OP_call_ref is currently not supported.  */
   gdb_assert (block.per_cu == per_cu);
 
   dwarf_expr_eval (ctx, block.data, block.size);
+
+  do_cleanups (back_to);
 }
 
 /* Helper interface of per_cu_dwarf_call for dwarf2_evaluate_loc_desc.  */
@@ -1575,6 +1583,7 @@ indirect_pieced_value (struct value *value)
   struct dwarf_expr_piece *piece = NULL;
   struct value *result;
   LONGEST byte_offset;
+  struct cleanup *back_to;
 
   type = value_type (value);
   if (TYPE_CODE (type) != TYPE_CODE_PTR)
@@ -1618,15 +1627,18 @@ indirect_pieced_value (struct value *value)
   byte_offset = value_as_address (value);
 
   gdb_assert (piece);
-  baton = dwarf2_fetch_die_attr_block (piece->v.ptr.die, c->per_cu,
-				       DW_AT_location,
-				       get_frame_address_in_block_wrapper,
-				       frame);
+  baton = dwarf2_fetch_die_location_block (piece->v.ptr.die, c->per_cu,
+					   get_frame_address_in_block_wrapper,
+					   frame);
+
+  back_to = make_cleanup (xfree, (void *) baton.data);
 
   result = dwarf2_evaluate_loc_desc_full (TYPE_TARGET_TYPE (type), frame,
 					  baton.data, baton.size, baton.per_cu,
 					  byte_offset);
 
+  do_cleanups (back_to);
+
   return result;
 }
 
@@ -2739,13 +2751,14 @@ dwarf2_compile_expr_to_ax (struct agent_expr *expr, struct axs_value *loc,
 	  {
 	    struct dwarf2_locexpr_baton block;
 	    int size = (op == DW_OP_call2 ? 2 : 4);
+	    struct cleanup *back_to;
 
 	    uoffset = extract_unsigned_integer (op_ptr, size, byte_order);
 	    op_ptr += size;
 
-	    block = dwarf2_fetch_die_attr_block (uoffset, per_cu,
-						 DW_AT_location, get_ax_pc,
-						 expr);
+	    block = dwarf2_fetch_die_location_block (uoffset, per_cu,
+						     get_ax_pc, expr);
+	    back_to = make_cleanup (xfree, (void *) block.data);
 
 	    /* DW_OP_call_ref is currently not supported.  */
 	    gdb_assert (block.per_cu == per_cu);
@@ -2753,6 +2766,8 @@ dwarf2_compile_expr_to_ax (struct agent_expr *expr, struct axs_value *loc,
 	    dwarf2_compile_expr_to_ax (expr, loc, arch, addr_size,
 				       block.data, block.data + block.size,
 				       per_cu);
+
+	    do_cleanups (back_to);
 	  }
 	  break;
 
@@ -3430,7 +3445,7 @@ locexpr_tracepoint_var_ref (struct symbol *symbol, struct gdbarch *gdbarch,
   struct dwarf2_locexpr_baton *dlbaton = SYMBOL_LOCATION_BATON (symbol);
   unsigned int addr_size = dwarf2_per_cu_addr_size (dlbaton->per_cu);
 
-  if (dlbaton->data == NULL || dlbaton->size == 0)
+  if (dlbaton->size == 0)
     value->optimized_out = 1;
   else
     dwarf2_compile_expr_to_ax (ax, value, gdbarch, addr_size,
@@ -3464,11 +3479,8 @@ loclist_read_variable (struct symbol *symbol, struct frame_info *frame)
   CORE_ADDR pc = frame ? get_frame_address_in_block (frame) : 0;
 
   data = dwarf2_find_location_expression (dlbaton, &size, pc);
-  if (data == NULL)
-    val = allocate_optimized_out_value (SYMBOL_TYPE (symbol));
-  else
-    val = dwarf2_evaluate_loc_desc (SYMBOL_TYPE (symbol), frame, data, size,
-				    dlbaton->per_cu);
+  val = dwarf2_evaluate_loc_desc (SYMBOL_TYPE (symbol), frame, data, size,
+				  dlbaton->per_cu);
 
   return val;
 }
@@ -3635,7 +3647,7 @@ loclist_tracepoint_var_ref (struct symbol *symbol, struct gdbarch *gdbarch,
   unsigned int addr_size = dwarf2_per_cu_addr_size (dlbaton->per_cu);
 
   data = dwarf2_find_location_expression (dlbaton, &size, ax->scope);
-  if (data == NULL || size == 0)
+  if (size == 0)
     value->optimized_out = 1;
   else
     dwarf2_compile_expr_to_ax (ax, value, gdbarch, addr_size, data, data + size,
diff --git a/gdb/dwarf2loc.h b/gdb/dwarf2loc.h
index 4fc4b2c..94cb55e 100644
--- a/gdb/dwarf2loc.h
+++ b/gdb/dwarf2loc.h
@@ -54,9 +54,9 @@ const gdb_byte *dwarf2_find_location_expression
    size_t *locexpr_length,
    CORE_ADDR pc);
 
-struct dwarf2_locexpr_baton dwarf2_fetch_die_attr_block
+struct dwarf2_locexpr_baton dwarf2_fetch_die_location_block
   (unsigned int offset, struct dwarf2_per_cu_data *per_cu,
-   unsigned int attr_name, CORE_ADDR (*get_frame_pc) (void *baton),
+   CORE_ADDR (*get_frame_pc) (void *baton),
    void *baton);
 
 struct type *dwarf2_get_die_type (unsigned int die_offset,
@@ -80,10 +80,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
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index 2b1e153..e9a98f0 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -716,6 +716,8 @@ struct function_range
 struct dwarf_block
   {
     unsigned int size;
+
+    /* Valid only if SIZE is not zero.  */
     gdb_byte *data;
   };
 
@@ -888,6 +890,9 @@ static void dwarf2_locate_sections (bfd *, asection *, void *);
 static void dwarf2_create_include_psymtab (char *, struct partial_symtab *,
                                            struct objfile *);
 
+static void dwarf2_find_base_address (struct die_info *die,
+				      struct dwarf2_cu *cu);
+
 static void dwarf2_build_psymtabs_hard (struct objfile *);
 
 static void scan_partial_symbols (struct partial_die_info *,
@@ -1794,6 +1799,23 @@ create_quick_file_names_table (unsigned int nr_initial_entries)
 			    delete_file_name_entry, xcalloc, xfree);
 }
 
+/* Read in PER_CU->CU.  This function is unrelated to symtabs, symtab would
+   have to be created afterwards.  You should call age_cached_comp_units after
+   processing PER_CU->CU.  dw2_setup must have been already called.  */
+
+static void
+load_cu (struct dwarf2_per_cu_data *per_cu)
+{
+  if (per_cu->from_debug_types)
+    read_signatured_type_at_offset (per_cu->objfile, per_cu->offset);
+  else
+    load_full_comp_unit (per_cu, per_cu->objfile);
+
+  dwarf2_find_base_address (per_cu->cu->dies, per_cu->cu);
+
+  gdb_assert (per_cu->cu != NULL);
+}
+
 /* Read in the symbols for PER_CU.  OBJFILE is the objfile from which
    this CU came.  */
 
@@ -1807,10 +1829,7 @@ dw2_do_instantiate_symtab (struct objfile *objfile,
 
   queue_comp_unit (per_cu, objfile);
 
-  if (per_cu->from_debug_types)
-    read_signatured_type_at_offset (objfile, per_cu->offset);
-  else
-    load_full_comp_unit (per_cu, objfile);
+  load_cu (per_cu);
 
   process_queue (objfile);
 
@@ -4720,8 +4739,6 @@ process_full_comp_unit (struct dwarf2_per_cu_data *per_cu)
 
   cu->list_in_scope = &file_symbols;
 
-  dwarf2_find_base_address (cu->dies, cu);
-
   /* Do line number decoding in read_file_scope () */
   process_die (cu->dies, cu);
 
@@ -14079,33 +14096,36 @@ follow_die_ref (struct die_info *src_die, struct attribute *attr,
 }
 
 /* Return DWARF block and its CU referenced by OFFSET at PER_CU.  Returned
-   value is intended for DW_OP_call*.  */
+   value is intended for DW_OP_call*.  You must call xfree on returned
+   dwarf2_locexpr_baton->data.  */
 
 struct dwarf2_locexpr_baton
-dwarf2_fetch_die_attr_block (unsigned int offset,
-			     struct dwarf2_per_cu_data *per_cu,
-			     unsigned int attr_name,
-			     CORE_ADDR (*get_frame_pc) (void *baton),
-			     void *baton)
+dwarf2_fetch_die_location_block (unsigned int offset,
+				 struct dwarf2_per_cu_data *per_cu,
+				 CORE_ADDR (*get_frame_pc) (void *baton),
+				 void *baton)
 {
-  struct dwarf2_cu *cu = per_cu->cu;
+  struct dwarf2_cu *cu;
   struct die_info *die;
   struct attribute *attr;
   struct dwarf2_locexpr_baton retval;
 
   dw2_setup (per_cu->objfile);
 
+  if (per_cu->cu == NULL)
+    load_cu (per_cu);
+  cu = per_cu->cu;
+
   die = follow_die_offset (offset, &cu);
   if (!die)
     error (_("Dwarf Error: Cannot find DIE at 0x%x referenced in module %s"),
 	   offset, per_cu->cu->objfile->name);
 
-  attr = dwarf2_attr (die, attr_name, cu);
+  attr = dwarf2_attr (die, DW_AT_location, cu);
   if (!attr)
     {
       /* DWARF: "If there is no such attribute, then there is no effect.".  */
 
-      retval.data = NULL;
       retval.size = 0;
     }
   else if (attr_form_is_section_offset (attr))
@@ -14131,6 +14151,12 @@ dwarf2_fetch_die_attr_block (unsigned int offset,
       retval.size = DW_BLOCK (attr)->size;
     }
   retval.per_cu = cu->per_cu;
+
+  if (retval.data)
+    retval.data = xmemdup (retval.data, retval.size, retval.size);
+
+  age_cached_comp_units ();
+
   return retval;
 }
 
@@ -15237,7 +15263,6 @@ dwarf2_symbol_mark_computed (struct attribute *attr, struct symbol *sym,
 	  dwarf2_invalid_attrib_class_complaint ("location description",
 						 SYMBOL_NATURAL_NAME (sym));
 	  baton->size = 0;
-	  baton->data = NULL;
 	}
 
       SYMBOL_COMPUTED_OPS (sym) = &dwarf2_locexpr_funcs;
diff --git a/gdb/remote.c b/gdb/remote.c
index 19cc0b6..f9059e6 100644
--- a/gdb/remote.c
+++ b/gdb/remote.c
@@ -10045,11 +10045,21 @@ remote_get_trace_status (struct trace_status *ts)
   char *p;
   /* FIXME we need to get register block size some other way.  */
   extern int trace_regblock_size;
+  volatile struct gdb_exception ex;
 
   trace_regblock_size = get_remote_arch_state ()->sizeof_g_packet;
 
   putpkt ("qTStatus");
-  p = remote_get_noisy_reply (&target_buf, &target_buf_size);
+
+  TRY_CATCH (ex, RETURN_MASK_ERROR)
+    {
+      p = remote_get_noisy_reply (&target_buf, &target_buf_size);
+    }
+  if (ex.reason < 0)
+    {
+      exception_fprintf (gdb_stderr, ex, "qTStatus: ");
+      return -1;
+    }
 
   /* If the remote target doesn't do tracing, flag it.  */
   if (*p == '\0')
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 7c7d562..def70bc 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,17 @@
+2011-07-13  Matt Rice <ratmice@gmail.com>
+
+	* gdb.python/py-objfile-script-gdb.py: Renamed to
+	py-objfile-script-gdb.py.in.
+	* gdb.python/py-objfile-script-gdb.py.in: Renamed from
+	py-objfile-script-gdb.py.
+	* gdb.python/py-objfile-script.exp: Update reference to
+	py-objfile-script-gdb.py.
+
+2011-07-13  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* gdb.dwarf2/dw2-op-call.S (array1): Use the real label; do not
+	reference undefined label.
+
 2011-07-11  Jan Kratochvil  <jan.kratochvil@redhat.com>
 
 	* gdb.dwarf2/dw2-const.S (Pointer size): Change from 4 to 8.
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-op-call.S b/gdb/testsuite/gdb.dwarf2/dw2-op-call.S
index 5b5520c..0db493e 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-op-call.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-op-call.S
@@ -49,7 +49,7 @@ array3:	.2byte	3
 	.4byte		.L2byte_type-.Lcu1_begin	/* DW_AT_type */
 	.byte		2f - 1f			/* DW_AT_location */
 1:	.byte		3			/*   DW_OP_addr */
-	.4byte		array			/*     <addr> */
+	.4byte		array1			/*     <addr> */
 2:
 
 	.uleb128	3			/* Abbrev: DW_TAG_variable */
@@ -72,10 +72,30 @@ array3:	.2byte	3
 	.uleb128	array3-array1		/*     <uconst> */
 2:
 
+	.uleb128	3			/* Abbrev: DW_TAG_variable */
+	.ascii		"arraycallnoloc\0"	/* DW_AT_name */
+	.4byte		.L2byte_type-.Lcu1_begin /* DW_AT_type */
+	.byte		2f - 1f			/* DW_AT_location */
+1:	.byte		0x99			/*   DW_OP_call4 */
+	.4byte		.Larraynoloc-.Lcu1_begin /*     <current CU offset> */
+2:
+
+.Larraynoloc:
+	.uleb128	4			/* Abbrev: DW_TAG_variable-loclist */
+	.ascii		"arraynoloc\0"		/* DW_AT_name */
+	.4byte		.L2byte_type-.Lcu1_begin /* DW_AT_type */
+	.4byte		loclist			/* DW_AT_location */
+
 	.byte		0			/* End of children of CU */
 
 .Lcu1_end:
 
+/* Location list.  */
+	.section	.debug_loc
+loclist:
+	/* Location list end.  */
+	.4byte	0, 0
+
 /* Abbrev table */
 	.section .debug_abbrev
 .Labbrev1_begin:
@@ -115,5 +135,17 @@ array3:	.2byte	3
 	.byte		0x0			/* Terminator */
 	.byte		0x0			/* Terminator */
 
+	.uleb128	4			/* Abbrev code */
+	.uleb128	0x34			/* DW_TAG_variable-loclist */
+	.byte		0			/* has_children */
+	.uleb128	0x3			/* DW_AT_name */
+	.uleb128	0x8			/* DW_FORM_string */
+	.uleb128	0x49			/* DW_AT_type */
+	.uleb128	0x13			/* DW_FORM_ref4 */
+	.uleb128	0x2			/* DW_AT_location */
+	.uleb128	0x06			/* DW_FORM_data4 */
+	.byte		0x0			/* Terminator */
+	.byte		0x0			/* Terminator */
+
 	.byte		0x0			/* Terminator */


hooks/post-receive
--
Repository for Project Archer.


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2011-07-13 18:42 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-07-13 18:42 [SCM] archer-jankratochvil-entryval: Merge branch 'pending' into archer-jankratochvil-entryval jkratoch

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).