aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/valops.c17
2 files changed, 11 insertions, 12 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index c0f110f..4490a2a 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2001-03-19 Andrew Cagney <ac131313@redhat.com>
+
+ From Mon Nov 20 13:59:29 2000 Andrew Cagney <cagney@b1.cygnus.com>:
+ * valops.c (hand_function_call): Simplify computation of the
+ address of the pushed argument.
+
2001-03-17 Andrew Cagney <ac131313@redhat.com>
* p-exp.y (parse_number): Avoid shift overflow when ``long''.
diff --git a/gdb/valops.c b/gdb/valops.c
index d417cdc..0ab0ae6 100644
--- a/gdb/valops.c
+++ b/gdb/valops.c
@@ -1530,26 +1530,19 @@ You must use a pointer to function type variable. Command ignored.", arg_name);
{
/* stack grows downward */
sp -= aligned_len;
+ /* ... so the address of the thing we push is the
+ stack pointer after we push it. */
+ addr = sp;
}
else
{
/* The stack grows up, so the address of the thing
we push is the stack pointer before we push it. */
addr = sp;
- }
- /* Push the structure. */
- write_memory (sp, VALUE_CONTENTS_ALL (args[i]), len);
- if (INNER_THAN (1, 2))
- {
- /* The stack grows down, so the address of the thing
- we push is the stack pointer after we push it. */
- addr = sp;
- }
- else
- {
- /* stack grows upward */
sp += aligned_len;
}
+ /* Push the structure. */
+ write_memory (addr, VALUE_CONTENTS_ALL (args[i]), len);
/* The value we're going to pass is the address of the
thing we just pushed. */
/*args[i] = value_from_longest (lookup_pointer_type (value_type),