aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJoern Rennecke <joern.rennecke@embecosm.com>2011-11-26 09:21:47 +0000
committerJoern Rennecke <amylaar@gcc.gnu.org>2011-11-26 09:21:47 +0000
commit4189fb53f29a76336dec42fa20572af538aeb055 (patch)
tree3a44dc3d6e8d3e7777e090a0953dd9d61d089826 /gcc
parentace7f915fc9703b6fc3e75a8dceef14de1ed8154 (diff)
downloadgcc-4189fb53f29a76336dec42fa20572af538aeb055.zip
gcc-4189fb53f29a76336dec42fa20572af538aeb055.tar.gz
gcc-4189fb53f29a76336dec42fa20572af538aeb055.tar.bz2
re PR middle-end/50074 (gcc.dg/sibcall-6.c execution test on x86_64 with -fPIC)
PR middle-end/50074 * calls.c (mem_overlaps_already_clobbered_arg_p): Return false if no outgoing arguments have been stored so far. From-SVN: r181738
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/calls.c2
2 files changed, 8 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7dbd9a8..289ed64 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2011-11-26 Joern Rennecke <joern.rennecke@embecosm.com>
+
+ PR middle-end/50074
+ * calls.c (mem_overlaps_already_clobbered_arg_p):
+ Return false if no outgoing arguments have been stored so far.
+
2011-11-25 Georg-Johann Lay <avr@gjlay.de>
* config/avr/avr.c (print_operand): Support code = 'i' for CONST_INT.
diff --git a/gcc/calls.c b/gcc/calls.c
index 382de7f..316f148 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -1668,6 +1668,8 @@ mem_overlaps_already_clobbered_arg_p (rtx addr, unsigned HOST_WIDE_INT size)
{
HOST_WIDE_INT i;
+ if (sbitmap_empty_p (stored_args_map))
+ return false;
if (addr == crtl->args.internal_arg_pointer)
i = 0;
else if (GET_CODE (addr) == PLUS