aboutsummaryrefslogtreecommitdiff
path: root/gcc/calls.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2012-02-06 13:33:05 +0000
committerJakub Jelinek <jakub@redhat.com>2012-02-06 13:33:05 +0000
commitc47dcffcfd467f4511f9f0147cd8adf20223824c (patch)
treee8130221fccd6c95f373dd8407bd131492de17a5 /gcc/calls.c
parent4fc62d47d2cfe0399319e0f41b41211aaa0c5ad2 (diff)
PR target/52129
* calls.c (mem_overlaps_already_clobbered_arg_p): If val is CONST_INT_P, subtract resp. add crtl->args.pretend_args_size to it. * gcc.c-torture/execute/pr52129.c: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@183933 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/calls.c')
-rw-r--r--gcc/calls.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/calls.c b/gcc/calls.c
index 943ab093c0f..53c03354726 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -1808,6 +1808,11 @@ mem_overlaps_already_clobbered_arg_p (rtx addr, unsigned HOST_WIDE_INT size)
return true;
else
i = INTVAL (val);
+#ifdef STACK_GROWS_DOWNWARD
+ i -= crtl->args.pretend_args_size;
+#else
+ i += crtl->args.pretend_args_size;
+#endif
#ifdef ARGS_GROW_DOWNWARD
i = -i - size;