* arm-tdep.c (push_stack_item): 'contents' now const.
authorTom Tromey <tromey@redhat.com>
Thu, 27 May 2010 19:06:12 +0000 (19:06 +0000)
committerTom Tromey <tromey@redhat.com>
Thu, 27 May 2010 19:06:12 +0000 (19:06 +0000)
(arm_push_dummy_call): Make 'val' const.  Use value_contents, not
value_contents_writeable.  Introduce new temporary.

gdb/ChangeLog
gdb/arm-tdep.c

index e0d8618cb731d4f337cc9f981c90659badaaa150..6ce98ba4624a7b1eb32ab9f17fb424b928d3b445 100644 (file)
@@ -1,3 +1,9 @@
+2010-05-27  Tom Tromey  <tromey@redhat.com>
+
+       * arm-tdep.c (push_stack_item): 'contents' now const.
+       (arm_push_dummy_call): Make 'val' const.  Use value_contents, not
+       value_contents_writeable.  Introduce new temporary.
+
 2010-05-27  Tom Tromey  <tromey@redhat.com>
 
        * findcmd.c (parse_find_args): Use value_contents, not
index c6c5acaa07eeb1f27eb42abe2673e1c1407dee8a..31f17f13e6c4e0c40f36cfb22708ed79dde4b63e 100644 (file)
@@ -1697,7 +1697,7 @@ struct stack_item
 };
 
 static struct stack_item *
-push_stack_item (struct stack_item *prev, void *contents, int len)
+push_stack_item (struct stack_item *prev, const void *contents, int len)
 {
   struct stack_item *si;
   si = xmalloc (sizeof (struct stack_item));
@@ -2038,7 +2038,7 @@ arm_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
       struct type *arg_type;
       struct type *target_type;
       enum type_code typecode;
-      bfd_byte *val;
+      const bfd_byte *val;
       int align;
       enum arm_vfp_cprc_base_type vfp_base_type;
       int vfp_base_count;
@@ -2048,7 +2048,7 @@ arm_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
       len = TYPE_LENGTH (arg_type);
       target_type = TYPE_TARGET_TYPE (arg_type);
       typecode = TYPE_CODE (arg_type);
-      val = value_contents_writeable (args[argnum]);
+      val = value_contents (args[argnum]);
 
       align = arm_type_align (arg_type);
       /* Round alignment up to a whole number of words.  */
@@ -2149,9 +2149,10 @@ arm_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
          CORE_ADDR regval = extract_unsigned_integer (val, len, byte_order);
          if (arm_pc_is_thumb (regval))
            {
-             val = alloca (len);
-             store_unsigned_integer (val, len, byte_order,
+             bfd_byte *copy = alloca (len);
+             store_unsigned_integer (copy, len, byte_order,
                                      MAKE_THUMB_ADDR (regval));
+             val = copy;
            }
        }