re PR middle-end/50074 (gcc.dg/sibcall-6.c execution test on x86_64 with -fPIC)
authorJoern Rennecke <joern.rennecke@embecosm.com>
Sat, 26 Nov 2011 09:21:47 +0000 (09:21 +0000)
committerJoern Rennecke <amylaar@gcc.gnu.org>
Sat, 26 Nov 2011 09:21:47 +0000 (09:21 +0000)
        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

gcc/ChangeLog
gcc/calls.c

index 7dbd9a89c464a795177715c2de2f48e7347fd7a3..289ed64363300fa78a18c5cba89b5c61ba745cac 100644 (file)
@@ -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.
index 382de7fcdebedbc74b76ebc940c70a9c0905677d..316f1481ca0b68a58e57f19835a9e527d1605690 100644 (file)
@@ -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