* calls.c (load_register_parameters): Fix zero size sibcall logic.
From-SVN: r234332
This commit is contained in:
parent
09d8f35943
commit
07c10d8f2e
|
@ -1,3 +1,7 @@
|
|||
2016-03-18 Jason Merrill <jason@redhat.com>
|
||||
|
||||
* calls.c (load_register_parameters): Fix zero size sibcall logic.
|
||||
|
||||
2016-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
|
||||
|
||||
* config/i386/sse.md: Use vpbroadcastq for broadcasting DF
|
||||
|
|
|
@ -2083,9 +2083,9 @@ load_register_parameters (struct arg_data *args, int num_actuals,
|
|||
/* Check for overlap with already clobbered argument area,
|
||||
providing that this has non-zero size. */
|
||||
if (is_sibcall
|
||||
&& (size == 0
|
||||
|| mem_overlaps_already_clobbered_arg_p
|
||||
(XEXP (args[i].value, 0), size)))
|
||||
&& size != 0
|
||||
&& (mem_overlaps_already_clobbered_arg_p
|
||||
(XEXP (args[i].value, 0), size)))
|
||||
*sibcall_failure = 1;
|
||||
|
||||
if (size % UNITS_PER_WORD == 0
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
// Test for sibcall optimization with empty struct.
|
||||
// { dg-options "-O2" }
|
||||
// { dg-final { scan-assembler "jmp" { target i?86-*-* x86_64-*-* } } }
|
||||
|
||||
struct A { };
|
||||
void f(struct A);
|
||||
void g(struct A a) { f(a); }
|
Loading…
Reference in New Issue